EXCEL: RecherchV et renvoie de plusieur valeur
DiiDii
-
via55 Messages postés 14393 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14393 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un tableau (TABLEAU1) qui ressemble a ceci:
1 a A
2 a A
2 b B
3 d A
4 c A
5 b A
5 c B
5 d C
6 a A
J'ai un tableau (TABLEAU2) avec ceci:
1
2
3
4
5
6
J'aimerai créer une formule en colonne 2 du tableau TABLEAU2 pour qui me permetrais d'afficher ceci:
1 A
2 A B
3 A
4 A
5 A B C
6 A
J'ai essayé avec EQUIV et INDEX en formule matricielle mais cela n'a pas foncitonné.
J'ai aussi essayé avec des recherchV mais sans succes.
Merci par avance de votre aide
DiiDii
J'ai un tableau (TABLEAU1) qui ressemble a ceci:
1 a A
2 a A
2 b B
3 d A
4 c A
5 b A
5 c B
5 d C
6 a A
J'ai un tableau (TABLEAU2) avec ceci:
1
2
3
4
5
6
J'aimerai créer une formule en colonne 2 du tableau TABLEAU2 pour qui me permetrais d'afficher ceci:
1 A
2 A B
3 A
4 A
5 A B C
6 A
J'ai essayé avec EQUIV et INDEX en formule matricielle mais cela n'a pas foncitonné.
J'ai aussi essayé avec des recherchV mais sans succes.
Merci par avance de votre aide
DiiDii
1 réponse
-
Bonsoir
1° Nommer la plage de la 1ere colonne du 1er tableau codes et nommer la plage de la 3eme colonne du même tableau valeurs
2° En supposant le 2eme tableau commençant par exemple en E2 (le nombre 1 est en E2), en F2 mettre la formule suivante :
=SI(COLONNES($F:F)<=NB.SI(codes;$E2);INDEX(valeurs;PETITE.VALEUR(SI(codes=$E2;LIGNE(INDIRECT("1:"&LIGNES(codes))));COLONNES($F:F)));"")
Formule matricielle à valider par CTRL + MAJ +ENTREE (elle se met alors automatiquement entre [ ] )
Etirer la formule vers la droite et vers le bas
Si par contre tu veux tous les résultats dans la même cellule il faut passer par une fonction personnalisée telle celle donnée par Jacques Boisgontier :
ALT + F11 pour ouvrie Editeur VBA
Insertion puis Module
Copier coller le code suivant dans la page
Function Tous(v, champRech As Range, ChampRetour As Range) a = champRech temp = "" For i = 1 To champRech.Count If a(i, 1) = v Then temp = temp & ChampRetour(i) & " " End If Next i Tous = Left(temp, Len(temp) - 1) End Function
Fermer l'éditeur
La fonction est maintenant accessible dans n'importe quelle cellule comme toute focntion Excell avec la syntaxe = Tous(code recherché,plage de recherche, plage des valeurs à renvoyer)
Donc en ayant nommé les plages du 1er tableau comme précédemment, en F2 du 2eme tableau la formule sera = Tous(E2;codes;valeurs)
A étirer au bas de la colonne
Cdlmnt