A voir également:
- Recherche de la derniere valeur dans liste
- Liste déroulante excel - Guide
- Recherche musique - Guide
- Google recherche par image - Guide
- Liste de diffusion whatsapp - Guide
- Pourquoi la derniére connexion ne s'affiche pas a coté de certains contacts dans messenger - Forum Facebook
16 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 395
16 nov. 2008 à 17:10
16 nov. 2008 à 17:10
Bonsoir
Peut être que cet exemple correspond à ce que vous souhaitez... mais sur 20000 lignes, l'affichage à chaque entrée risque de prendre du temps.
Moi, je n'ai traité que 2 à 23
Crdlmnt
http://www.cijoint.fr/cjlink.php?file=cj200811/cijaZAhVJC.xls
Peut être que cet exemple correspond à ce que vous souhaitez... mais sur 20000 lignes, l'affichage à chaque entrée risque de prendre du temps.
Moi, je n'ai traité que 2 à 23
Crdlmnt
http://www.cijoint.fr/cjlink.php?file=cj200811/cijaZAhVJC.xls
Utilisateur anonyme
16 nov. 2008 à 13:48
16 nov. 2008 à 13:48
Bonjour,
Ce n'est peut-être pas ce que vous attendiez, voici tout de même ce que je ferai à votre place compte tenu du nombre de ligne qui va crescendo
Votre feuille excel devient une table attachée dans access,
Je fais un requête de selection avec regroupement sur pseudo et somme sur le montant pour obtenir la somme globale à date : j'obtiens le total par pseudo toute date comprise
Je fais une seconde requête de selection avec regroupement sur pseudo et dernier sur montant, j'obtiens le dernier montant par pseudo
Je fais une derniere requete ou je soustrait à la premiére la seconde par le lien sur pseudo
J'exporte vers excel cette dernière.
Le suel et unique interêt, c'est que cela fonctionne tout seul
Ce n'est peut-être pas ce que vous attendiez, voici tout de même ce que je ferai à votre place compte tenu du nombre de ligne qui va crescendo
Votre feuille excel devient une table attachée dans access,
Je fais un requête de selection avec regroupement sur pseudo et somme sur le montant pour obtenir la somme globale à date : j'obtiens le total par pseudo toute date comprise
Je fais une seconde requête de selection avec regroupement sur pseudo et dernier sur montant, j'obtiens le dernier montant par pseudo
Je fais une derniere requete ou je soustrait à la premiére la seconde par le lien sur pseudo
J'exporte vers excel cette dernière.
Le suel et unique interêt, c'est que cela fonctionne tout seul
Merci pour cette solution. Le prb est que je ne maitrise absolument pas access, et je préfère donc rester sous excel. Merci
Utilisateur anonyme
16 nov. 2008 à 15:11
16 nov. 2008 à 15:11
Toutes vos données sont sur une seule feuille sur qutre colonnes ?
Votre calcul actuel (somme.si) est sur cette même feuille ou sur une autre ?
Votre calcul actuel (somme.si) est sur cette même feuille ou sur une autre ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 395
16 nov. 2008 à 15:59
16 nov. 2008 à 15:59
Bonjour ou re
Il s'agit apparement du temps de calcul.!
je me suis une nouvelle fois interressé au problème, mais je ne vois pas ce que l'on peut faire de mieux que somme.si, sachant que dans tous les cas, un fichier de 20000 lignes ne se traitera pas en 1/4 de seconde et qu'il faudra bien, quelque soit la formule aller chercher la dernière ligne .
Je peux juste proposer une solution qui donnera en continu dans le tableau le cumul correspondant à chaque nom, en ligne avec uniquement le dernier rentré.
Mais dans tous les cas, le temps de calcul sera le même voire plus long puisque les formules sont beaucoup plus complexes qu'un simple "somme.si" dans un récapitulatif
Crdlmnt
Il s'agit apparement du temps de calcul.!
je me suis une nouvelle fois interressé au problème, mais je ne vois pas ce que l'on peut faire de mieux que somme.si, sachant que dans tous les cas, un fichier de 20000 lignes ne se traitera pas en 1/4 de seconde et qu'il faudra bien, quelque soit la formule aller chercher la dernière ligne .
Je peux juste proposer une solution qui donnera en continu dans le tableau le cumul correspondant à chaque nom, en ligne avec uniquement le dernier rentré.
Mais dans tous les cas, le temps de calcul sera le même voire plus long puisque les formules sont beaucoup plus complexes qu'un simple "somme.si" dans un récapitulatif
Crdlmnt
Raymond PENTIER
Messages postés
58330
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 mars 2024
17 087
16 nov. 2008 à 16:25
16 nov. 2008 à 16:25
Combien y a-t-il de pseudos pour 20000 lignes ? autour de 10000, de 1000, de 100, de 10 ?
Parce que a prori la meilleure méthode est d'utiliser l'assistant Données/Sous-total, mais s'il y a 5000 pseudos on obtiendra un affichage de 25000 lignes, ce qui est beaucoup, alors qu'avec 200 pseudos on n'aurait que 20200 lignes.
D'autre part, faut-il afficher en permanence les cumuls de chaque pseudo, ou pourrais-tu te satisfaire de 2 cases fixes, l'une où tu choisis le peudo, l'autre où tu lis le solde ? C'est nettement plus facile, avec une liste déroulante dans la première et une formule RECHERCHEV dans la seconde.
Parce que a prori la meilleure méthode est d'utiliser l'assistant Données/Sous-total, mais s'il y a 5000 pseudos on obtiendra un affichage de 25000 lignes, ce qui est beaucoup, alors qu'avec 200 pseudos on n'aurait que 20200 lignes.
D'autre part, faut-il afficher en permanence les cumuls de chaque pseudo, ou pourrais-tu te satisfaire de 2 cases fixes, l'une où tu choisis le peudo, l'autre où tu lis le solde ? C'est nettement plus facile, avec une liste déroulante dans la première et une formule RECHERCHEV dans la seconde.
Pour cocotehier : si je repose la question c'est que la réponse reçue ne répondait pas à mon
pb. En particulier, je souhaiterais que le solde apparaissent automatiquement sur chaque ligne.
Cela dit, la méthode donnée est excellente pour d'autres applis et je la garde dans un coin de
mémoire :-)
Pour Raymond : il y a peu près 200 membres (pseudos) -> il me faut le solde en permance ligne
à ligne
Merci de votre aide
pb. En particulier, je souhaiterais que le solde apparaissent automatiquement sur chaque ligne.
Cela dit, la méthode donnée est excellente pour d'autres applis et je la garde dans un coin de
mémoire :-)
Pour Raymond : il y a peu près 200 membres (pseudos) -> il me faut le solde en permance ligne
à ligne
Merci de votre aide
Merci Vaucluse ! Je vais essayer avec le dernier cumul. Ca permettra peut etre de ne pas trop ralentir
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 395
16 nov. 2008 à 17:19
16 nov. 2008 à 17:19
Beuhhhh
Le dernier cumul à des chances d'être plus complexe que ligne à ligne, la formule est plus complexe!.
Essayez les deux!
Crdlmnt
PS: dans ces options, le nombre et la date de création des pseudos est évidemment sans importance
Le dernier cumul à des chances d'être plus complexe que ligne à ligne, la formule est plus complexe!.
Essayez les deux!
Crdlmnt
PS: dans ces options, le nombre et la date de création des pseudos est évidemment sans importance
Raymond PENTIER
Messages postés
58330
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 mars 2024
17 087
16 nov. 2008 à 17:30
16 nov. 2008 à 17:30
La réflexion menée par Vaucluse au post 5 est tout-à-fait opportune et pertinente ; je l'approuve absolument.
Tu ne nous a pas dit quelle était ta formule avec SOMME.SI ; alors à tout hasard, et en cas de besoin, je la donne ici :
en D2 ► =SOMME.SI(A$2:A2;A:A;C$2:C2) à recopier vers le bas.
Aucune autre formule ou méthode ne sera plus rapide ...
Donc si tu ne veux ni utiliser Access, ni te contenter d'une lecture ponctuelle sur 2 cases, ni passer de 20000 à 20200 lignes, et pourtant aller plus vite, il ne te reste qu'à augmenter la mémoire vive de ta machine.
Je suppose que, de toi-même, tu as déjà pris toutes les mesures nécessaires pour gagner de la place et de la vitesse d'exécution : défragmentation du disque dur, suppression des cookies et fichiers temporaires, fermeture de toutes les autres applications pendant que ce fichier tourne ... ?
Cordialement.
Tu ne nous a pas dit quelle était ta formule avec SOMME.SI ; alors à tout hasard, et en cas de besoin, je la donne ici :
en D2 ► =SOMME.SI(A$2:A2;A:A;C$2:C2) à recopier vers le bas.
Aucune autre formule ou méthode ne sera plus rapide ...
Donc si tu ne veux ni utiliser Access, ni te contenter d'une lecture ponctuelle sur 2 cases, ni passer de 20000 à 20200 lignes, et pourtant aller plus vite, il ne te reste qu'à augmenter la mémoire vive de ta machine.
Je suppose que, de toi-même, tu as déjà pris toutes les mesures nécessaires pour gagner de la place et de la vitesse d'exécution : défragmentation du disque dur, suppression des cookies et fichiers temporaires, fermeture de toutes les autres applications pendant que ce fichier tourne ... ?
Cordialement.
Utilisateur anonyme
16 nov. 2008 à 17:31
16 nov. 2008 à 17:31
Pour l'avenir, écrivez-le lorsque la solution ne vous convient pas au lieu de faire un second post.. ;-)
Ensuite, la fin justifie les moyens : Access ! sauf si évidement vous avez le temps...j'ai le même probléme que vous sur un détail de mon job (6.000.000 de lignes et je traite cela en 2'27"" chrono) et plein de chose à faire plus importantes.
Bon courage !
Ensuite, la fin justifie les moyens : Access ! sauf si évidement vous avez le temps...j'ai le même probléme que vous sur un détail de mon job (6.000.000 de lignes et je traite cela en 2'27"" chrono) et plein de chose à faire plus importantes.
Bon courage !
cocotehier : vous avez raison. C'est juste que qq un a écrit fermeture du post. J'ai cru par erreur qu'il n'était plus
actif. Désolé
pour vaucluse : pas forcement car la formule de somme.si est d'une complexité exponentielle et si excel
est bien programmé, alors il ne fera le calcul que si la condition est remplie. Cela peut donc tourner
plus rapidement que le bestial somme.si sans condition !
en tout merci à tous !
je fais des tests dans la semaine
sinon je vais peut etre me mettre à Access !
actif. Désolé
pour vaucluse : pas forcement car la formule de somme.si est d'une complexité exponentielle et si excel
est bien programmé, alors il ne fera le calcul que si la condition est remplie. Cela peut donc tourner
plus rapidement que le bestial somme.si sans condition !
en tout merci à tous !
je fais des tests dans la semaine
sinon je vais peut etre me mettre à Access !
Raymond PENTIER
Messages postés
58330
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 mars 2024
17 087
16 nov. 2008 à 17:40
16 nov. 2008 à 17:40
Je vois que Vaucluse a fait une nouvelle proposition pendant que je répondais.
Elle est plus élégante, dans la mesure où l'affichage est très aéré.
Mais chaque cellule de la colonne E étant 2 fois plus complexe qu'à la colonne D, le temps de calcul sera au moins doublé, ce qui est à l'opposé de ce que désire exnihilo ! D'ailleurs Vaucluse le signale bien ...
En effet les cellules E2 à A18 n'affichent rien, c'est vrai, mais c'est parce qu'elles ont, chacune, effectué 2 tests (SI, NB.SI) dont le résultat est l'affichage d'un caractère "vide" !
Elle est plus élégante, dans la mesure où l'affichage est très aéré.
Mais chaque cellule de la colonne E étant 2 fois plus complexe qu'à la colonne D, le temps de calcul sera au moins doublé, ce qui est à l'opposé de ce que désire exnihilo ! D'ailleurs Vaucluse le signale bien ...
En effet les cellules E2 à A18 n'affichent rien, c'est vrai, mais c'est parce qu'elles ont, chacune, effectué 2 tests (SI, NB.SI) dont le résultat est l'affichage d'un caractère "vide" !
Bon c'est un peu plus rapide mais pas suffisamment de gain. Je vais donc passer à Access. Va falloir que je me forme. Cocotehier auriez vous svp un lien vers des tutos access ?
Merci
Merci
Oui,
http://www.commentcamarche.net/forum/affich 6758358 microsoft office access
Mais je peux aussi vous aider, pouvez vous déposé votre modéle de fichier excel - dans lequel se trouve les 4 colonnes évoquées initialement d'un part et ajouter une feuille dans laquelle vous pourriez ecrire un ligne exemple du resultat attendu s'il vous plait ?
http://www.commentcamarche.net/forum/affich 6758358 microsoft office access
Mais je peux aussi vous aider, pouvez vous déposé votre modéle de fichier excel - dans lequel se trouve les 4 colonnes évoquées initialement d'un part et ajouter une feuille dans laquelle vous pourriez ecrire un ligne exemple du resultat attendu s'il vous plait ?
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 208
16 nov. 2008 à 18:19
16 nov. 2008 à 18:19
Bonsoir,
autre proposition, en E2:
=MAX(($A$1:A1=A2)*LIGNE($A$1:A1))
formule matricielle à valider par Shift+Ctrl+Enter (se retrouve entourée de { })
Te retourne 0 si le nom est non trouvé ou le n° de ligne de la dernière occurence du nom en A2 (pour revenir à ton idée de récupérer le solde de cette ligne...)
Solde en D2 devient :
=SI(E2;INDEX(D:D;E2)+C2;C2)
Formules à recopier vers le bas.
Aucune idée de s'il y aura un gain de temps, tu nous diras ;-)
exemple
eric
autre proposition, en E2:
=MAX(($A$1:A1=A2)*LIGNE($A$1:A1))
formule matricielle à valider par Shift+Ctrl+Enter (se retrouve entourée de { })
Te retourne 0 si le nom est non trouvé ou le n° de ligne de la dernière occurence du nom en A2 (pour revenir à ton idée de récupérer le solde de cette ligne...)
Solde en D2 devient :
=SI(E2;INDEX(D:D;E2)+C2;C2)
Formules à recopier vers le bas.
Aucune idée de s'il y aura un gain de temps, tu nous diras ;-)
exemple
eric