[excel]recherche dans un tableau
-----coco-----
Messages postés
87
Statut
Membre
-
wilfried_42 Messages postés 912 Statut Contributeur -
wilfried_42 Messages postés 912 Statut Contributeur -
Bonjour,
voila, j'ai un tableau que je vais appeler général, et un autre que je vais appeler récap.
dans mon tableau general, j'ai des colonnes nom, produit et prix.
vous l'avez peut-etre deja compris, mais en fete, je cherche une formule, fonction ou tout ce qui peut marche pour que, dans mon tableau recap, par exemple j'entre Jean en A1, et toutes les lignes où, il y a Jean dans la colonne nom, se copie sur ma feuille...
j'ai deja essayer avec recherchev() et rechercheh(), mais il ne peut m'en donner qu'une seule ligne...
merci beaucoup a ceux qui me repondrons et a ceux qui auront chercher...
voila, j'ai un tableau que je vais appeler général, et un autre que je vais appeler récap.
dans mon tableau general, j'ai des colonnes nom, produit et prix.
vous l'avez peut-etre deja compris, mais en fete, je cherche une formule, fonction ou tout ce qui peut marche pour que, dans mon tableau recap, par exemple j'entre Jean en A1, et toutes les lignes où, il y a Jean dans la colonne nom, se copie sur ma feuille...
j'ai deja essayer avec recherchev() et rechercheh(), mais il ne peut m'en donner qu'une seule ligne...
merci beaucoup a ceux qui me repondrons et a ceux qui auront chercher...
A voir également:
- [excel]recherche dans un tableau
- Trier un tableau excel - Guide
- Tableau word - Guide
- Imprimer un tableau excel - Guide
- Liste déroulante excel - Guide
- Tableau ascii - Guide
9 réponses
re:
il existe des formules matricielles.
exemple : =Petite.valeur(si(Feuil2!A1:A100=Feuil1!A1;ligne(A1:A100);9^9);ligne()-1)
te donnera, ligne apres ligne les diferents index d'une valeur en Feuil1!A1 sur une liste de valeur en Feuil2!A:A100
c'est pour cela que je t'ai demandé de joindre ton classeur
il existe des formules matricielles.
exemple : =Petite.valeur(si(Feuil2!A1:A100=Feuil1!A1;ligne(A1:A100);9^9);ligne()-1)
te donnera, ligne apres ligne les diferents index d'une valeur en Feuil1!A1 sur une liste de valeur en Feuil2!A:A100
c'est pour cela que je t'ai demandé de joindre ton classeur
Ton tableau général en Feuil1
En feuil2, cellule A1 ta référence : Jean
En A2 : Formule Matricielle à valider an Appuyant simultanément sur Ctrl + Maj + Entrée
---------- Si la validation est correcte, des {} encadreront automatiquement la formule
En A2 :
Tirer la formule vers la droite et vers le bas
Explication :
Si(Feui1!$A$1:$A$100=$A$1; ligne($A$1:$A$100);9^9) va creer une matrice avec les n° de ligne si la valeur est bonne et va mettre 9^9 si la valeur n'est pas bonne
cette matrice sera utilisée par petite.valeur
Petite.Valeur(matrice; ligne()-1) ' La formule etant en A2, Ligne() aura la Valeur 2, -1 Donne 1 . En tirant la formule vers le bas, les valeur seront successivement 1,2,3........... donc on recuperera dans l'odre du tableau les différentes lignes
Decaler(Feuil1!$A$1:$A$100;0;colonne()-1) ' Permet seulement de definir dans quelle colonne on va récuperer le renseignement, ce la permet seulement de n'avoir qu'une formule pour toutes les colonnes
En final on aura : Index(Montablo;petite.valeur(MaMatrice;Ligne))
je ne sais pas si je suis tres clair, M'enfin
La formule donnée n'est pas testée
Pour joindre un fichier tu le places sur cjoint.com et tu postes le lien ici
En feuil2, cellule A1 ta référence : Jean
En A2 : Formule Matricielle à valider an Appuyant simultanément sur Ctrl + Maj + Entrée
---------- Si la validation est correcte, des {} encadreront automatiquement la formule
En A2 :
=Index(Decaler(Feuil1!$A$1:$A$100;0;colonne()-1);Petite.valeur(Si(Feui1!$A$1:$A$100=$A$1; ligne($A$1:$A$100);9^9);ligne()-1))
Tirer la formule vers la droite et vers le bas
Explication :
Si(Feui1!$A$1:$A$100=$A$1; ligne($A$1:$A$100);9^9) va creer une matrice avec les n° de ligne si la valeur est bonne et va mettre 9^9 si la valeur n'est pas bonne
cette matrice sera utilisée par petite.valeur
Petite.Valeur(matrice; ligne()-1) ' La formule etant en A2, Ligne() aura la Valeur 2, -1 Donne 1 . En tirant la formule vers le bas, les valeur seront successivement 1,2,3........... donc on recuperera dans l'odre du tableau les différentes lignes
Decaler(Feuil1!$A$1:$A$100;0;colonne()-1) ' Permet seulement de definir dans quelle colonne on va récuperer le renseignement, ce la permet seulement de n'avoir qu'une formule pour toutes les colonnes
En final on aura : Index(Montablo;petite.valeur(MaMatrice;Ligne))
je ne sais pas si je suis tres clair, M'enfin
La formule donnée n'est pas testée
Pour joindre un fichier tu le places sur cjoint.com et tu postes le lien ici
bonjour
avec des formules c'est faisable, elles son neanmoins complexes à réaliser, il serait souhaitable que tu postes un exemple de ton fichier (sans donnée confidentielle) afin d'avoir la structure.
@ te lire
avec des formules c'est faisable, elles son neanmoins complexes à réaliser, il serait souhaitable que tu postes un exemple de ton fichier (sans donnée confidentielle) afin d'avoir la structure.
@ te lire
d'abord merci,
je suis d'accord, j'ai essayé avec des formules, mais excel n'accepte pas d'ambrication a plus de 64 etages
je suis d'accord, j'ai essayé avec des formules, mais excel n'accepte pas d'ambrication a plus de 64 etages
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai mon tableau general :
. . . . . . A . . . . . . . B . . . . . . .C
1 . . . . Jean . . . . livres . . . .15
2 . . . . Martin . . . cahier . . .10
3 . . . . Jean . . . . truc . . . . . 5
4 ....
mais il y a plus de 100 lignes et plusieurs fois le meme nom, c'est pour ca que je cherche comment faire un recapitulatif :
. . . . . .A . . . . . . . .B . . . . . . .C
1. . . Jean
2
3. . . Jean. . . . . livres . . . . .15
4 . . .Jean . . . . .truc. . . . . . . 5
5...
le Jean en A1 de ce tableau, c'est moi qui l'est marquer, et l'ordinateur m'a mis les lignes 3 et 4...excusez les points, mais il n'accepte pas les espaces repetes.
en gros ca ressemble a ca...
. . . . . . A . . . . . . . B . . . . . . .C
1 . . . . Jean . . . . livres . . . .15
2 . . . . Martin . . . cahier . . .10
3 . . . . Jean . . . . truc . . . . . 5
4 ....
mais il y a plus de 100 lignes et plusieurs fois le meme nom, c'est pour ca que je cherche comment faire un recapitulatif :
. . . . . .A . . . . . . . .B . . . . . . .C
1. . . Jean
2
3. . . Jean. . . . . livres . . . . .15
4 . . .Jean . . . . .truc. . . . . . . 5
5...
le Jean en A1 de ce tableau, c'est moi qui l'est marquer, et l'ordinateur m'a mis les lignes 3 et 4...excusez les points, mais il n'accepte pas les espaces repetes.
en gros ca ressemble a ca...
re:
tu aurais pu le voir, suite au copier coller de la formule, un tiret est inserrer dans vale-ur, et les noms de feuille ne sont pas les mêmes c'est tout
ton fichier en retour
https://www.cjoint.com/?bjvjDRZpWW
tu aurais pu le voir, suite au copier coller de la formule, un tiret est inserrer dans vale-ur, et les noms de feuille ne sont pas les mêmes c'est tout
ton fichier en retour
https://www.cjoint.com/?bjvjDRZpWW
re:
je viens de regarder le fichier que je t'ai envoyé, la formule fonctionne !
mais comme je te l'ai dit, une formule matricielle est délicate à adapter c'est pour cela que je t'ai demander de poster un fichier exemple gardant la même structure que le réel....
La formule que je t'ai donnée crée une matrice en fonction de plusieurs critères, d'une part tes propres matrice et d'autre part la cellule où elle se trouve (ligne(), colonne()). en fonction de la cellule où elle se trouve, le résultat est différent. comme tu peux le voir dans la formule fournie dans le fichier, bien qu'elles soient identiques, le résultat en fonction de leurs positions est différent.
@ te lire
je viens de regarder le fichier que je t'ai envoyé, la formule fonctionne !
mais comme je te l'ai dit, une formule matricielle est délicate à adapter c'est pour cela que je t'ai demander de poster un fichier exemple gardant la même structure que le réel....
La formule que je t'ai donnée crée une matrice en fonction de plusieurs critères, d'une part tes propres matrice et d'autre part la cellule où elle se trouve (ligne(), colonne()). en fonction de la cellule où elle se trouve, le résultat est différent. comme tu peux le voir dans la formule fournie dans le fichier, bien qu'elles soient identiques, le résultat en fonction de leurs positions est différent.
@ te lire
j'ai essaye d'adapter ta formule, et je tombe sur une erreur 501 ??