Récupérer plusieurs valeurs pour un même identifiant avec Index et Equiv

Bonjour,

Je cherche à récupérer des valeurs selon un identifiant avec INDEX et EQUIV.
Seulement pour un même identifiant j’ai plusieurs valeurs.
J’ai écumé vraiment beaucoup de discutions dans différents forum sans arriver à trouver ma solution.
pour simplifier voici un exemple:
J’ai une colonne A avec des identifiants.
Une colonne B avec des valeurs ( ce sont des noms de secteur, enfin peu importe, des nom).

Je voudrais récupérer sur une autre feuille du même classeur excel pour un identifiant donnée, les différents secteurs qui y sont associés.

Voici mon document excel.
J’espère que ma demande d’aide est compréhensible…

Merci par avance =)

plusieurs_valeurs_pour_1_identifiant.xlsx (11,0 Ko)

Bonjour @fnny_v,

Voici une proposition:

Voir aussi dans le “Gestionnaire de noms”.

En “H3”

=SI(COLONNES($G:G)<=NB.SI(Identifiant;$I$1);INDEX(Secteur;PETITE.VALEUR(SI(Identifiant=$I$1;LIGNE(INDIRECT("1:"&LIGNES(Secteur))));COLONNES($G:G)));"")

En “H4”

=SI(COLONNES($G:G)<=NB.SI(Identifiant;$I$1);INDEX(Aléa;PETITE.VALEUR(SI(Identifiant=$I$1;LIGNE(INDIRECT("1:"&LIGNES(Aléa))));COLONNES($G:G)));"")

2 formules a valider avec ctrl + maj + entrée

Puis les tirer vers la droite.

Fichier en retour ICI==> plusieurs_valeurs_pour_1_identifiant fnny_v.xlsx (13,3 Ko)

Cordialement.

1 J'aime

Salut MDO,
Tu es “reviendu”, on ne te voyais plus :grinning:

Bonjour @mdo100

Je vous remercie énormément pour cette réponse.
Je n’ai pas répondu tout de suite car j’essayais de comprendre la formule.

Malheureusement je suis un peu perdue.
Bon je n’ai aucun problème pour définir des noms à mes variables.
En revanche avec les formules PETITE.VALEUR et INDIRECT je ne comprends plus vraiment.
Je vois bien que cela remplace le Equiv qui fournit la ligne où se trouve le résultat.

J’ai essayé de décomposer chaque bout de la formule pour comprendre ce qui se passe exactement. Mais c’est assez flou pour moi.

Pouvez vous m’expliquer un peu plus si vous en avez le courage et le temps.

Merci d’avance

Re @fnny_v,

Pas facile d’expliquer, toutefois je vais tenter:

La partie:INDEX(Secteur;PETITE.VALEUR(SI(Identifiant=$I$1;LIGNE(INDIRECT(“1:”&LIGNES(Secteur))));COLONNES($G:G)))

ou

INDEX(Secteur;la formule qui retourne le bon numéro de ligne)

La formule étant:PETITE.VALEUR(SI(Identifiant=$I$1;LIGNE(INDIRECT(“1:”&LIGNES(Secteur))));COLONNES($G:G))

Les arguments de la fonction PETITE.VALEUR(matrice;k)

La matrice:

SI(Identifiant=$I$1;LIGNE(INDIRECT(“1:”&LIGNES(Secteur))))

k:

COLONNES($G:G)

Pour comprendre la matrice,Identifiant=$I$1est une matrice des valeurs de la plage “Identifiant”, de FAUX et VRAI (0 1) selon si la valeur est égal à I1

Pour k le rang de la donnée à renvoyerCOLONNES($G:G)

Tu peux aussi faire une évaluation de la formule:

  1. Sélectionner une formule “ici H3”
  2. Sélectionner l’onglet “Formules”.
  3. Évaluation de formule.
  4. Fenêtre “Évaluation de formule”.
  5. On voit la référence et la formule a évaluer.
  6. Cliquer sur “Évaluer” chaque clique correspond a une partie de la formule évaluée jusqu’au résultat.

J’espère que c’est plus clair pour toi, je ne peux pas mieux faire.

Cordialement.

Salut @Mimimathy,

Oui, un ch’ti peu vite fat aujourd’hui, car c’est pas trop la forme moi en ce moment. :fearful: .

C’était, un p’tit tour vite fait.

Amicalement.

Bonjour @mdo100 =)

Désolé, hier ensuite j’ai un peu lâché l’ordi.

Je n’avais pas pensé à regarder avec l’évaluation de formule.

J’ai fait tourner la formule un bon nombre de fois, et ça ma permis de bien saisir ce qui se passe. Cependant j’étais toujours un peu perdu avec : INDIRECT.

Je n’avais pas compris que le numéro de ligne n’est pas exactement celui de la feuille mais le numéro de ligne de la sélection (ici le numéro de ligne de la sélection secteur). Donc si les valeurs de secteurs vont de B2:B5. La ligne 5 correspond en fait à la quatrième ligne de la sélection des données Secteur.

Mais à la place de :

PETITE.VALEUR(SI(Identifiant=$I$1;LIGNE(INDIRECT(“1:”&LIGNES(Secteur))));COLONNES($G:G)))

On pourrais aussi simplement faire :
PETITE.VALEUR(SI(Identifiant=$I$1;LIGNE((secteur))-1);COLONNES($G:G))) ???

ça marche ici dans ce cas, après peut être que je ne prends pas conscience qu’il faut absolument utiliser INDIRECT si ma feuille était organisée un peu différemment.

En tout cas je te remercie d’avoir pris du temps pour détailler tout ça.

Je te souhaite une belle journée,
Cordialement

Bonjour @fnny_v,

Exact, et bien vu, cela simplifie la compréhension de la formule.

N’oublie pas:

Cordialement.

Parfait,
merci beaucoup encore une fois =)

Pardon… effectivement j’avais oublié.

Cordialement

Bonjour
Je suis nouveau dans le forum.
J’ai un problème similaire, j’ai appliqué la même formule mais le résultats n’est pas satisfaisant.
Besoin d’aide s’il vous plait

Exercice.xlsx (17,6 Ko)
J’aimerais rappeler toutes les activités d’une structure lorsque je saisi son nom dans la feuille de résultat.

Bonjour à tous,

Bonjour oboure, il est d’usage d’éviter de déterrer les anciens post. Il vaut mieux créer ton propre post.
Une proposition avec un TCD.
Cordialement.
Exercice.xlsx (22,0 Ko)

1 J'aime

Merci beaucoup Zebulon pour l’aide et pour le conseil. Avec le TCD ça me facilite la tâche parce que je ne maîtrise pas encore les formules.
Merci encore.
:white_check_mark: