EXCEL: RecherchV et renvoie de plusieur valeur
Fermé
DiiDii
-
3 déc. 2014 à 13:27
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 - 3 déc. 2014 à 21:56
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 - 3 déc. 2014 à 21:56
A voir également:
- EXCEL: RecherchV et renvoie de plusieur valeur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
1 réponse
via55
Messages postés
14495
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
7 novembre 2024
2 734
3 déc. 2014 à 21:56
3 déc. 2014 à 21:56
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
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
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