Recherche de la derniere valeur dans liste

exnihilo -  
 Utilisateur anonyme -
Bonjour,

J'ai posé une question précédemment mais je n'avais pas été assez précis. Je repose en formulant mieux mon pb.

En fait, j'ai une feuille excel, qui liste des transactions financières. Chaque ligne représente une transaction. Cette feuille évolue tous les jours.

La feuille est organisée de la manière suivante : (en considérant le solde de chaque personne = 0)

Pseudo Date Mouvement (€) Solde courant (€)

titi 11/11/08 +80 +80
tata 11/11/08 +60 +60
titi 12/11/08 +80 +160
toto 13/11/08 +30 +30
tata 13/11/08 +20 +80
titi 14/11/08 +70 +230

Actuellement je calcule le solde courant avec un somme.si sur tous les mouvements mais la liste faisant plus
de 20000 lignes ca rame à fond. En fait mon souci est de rechercher, pour chaque ligne la précédente occurence
du pseudo pour ajouter le solde précédent au mouvement du jour.
RechercheV ne fonctionne pas.

Merci de votre aide

Alex
A voir également:

16 réponses

Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 447
 
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
1
Utilisateur anonyme
 
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
0
exnihilo
 
Merci pour cette solution. Le prb est que je ne maitrise absolument pas access, et je préfère donc rester sous excel. Merci
0
Utilisateur anonyme
 
Tiens, effectivement, vous aviez déjà sollicité des réponses que vous avez eues chére Ex-Nihilo
Au vue des solutions proposées (notamment le fichier joint) je ne vois pas où se situe le probléme avec la recherchev
Carpe Diem
0
Utilisateur anonyme
 
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 447
 
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
0
Raymond PENTIER Messages postés 71866 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
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.
0
exnihilo
 
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
0
exnihilo
 
Merci Vaucluse ! Je vais essayer avec le dernier cumul. Ca permettra peut etre de ne pas trop ralentir
0
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 447
 
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
0
Raymond PENTIER Messages postés 71866 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
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.
0
Utilisateur anonyme
 
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 !
0
exnihilo
 
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 !
0
Raymond PENTIER Messages postés 71866 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
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" !
0
exnihilo
 
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
0
Utilisateur anonyme
 
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 ?
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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
0
exnihilo
 
Dernière proposition testée : très astucieux, là encore je m'en souviendrais pour certaines applis mais dans le cas
présent ca rame encore plus ;-)
c'est décidé je bascule sous access...
0
Utilisateur anonyme
 
Bonsoir,
Avez-vous avancé dans votre recherche ?
0