Re : Récupérer chaque occurence d'une liste sans utiliser filtre, ou TCD
Bonjour,
Intéressé par le sujet, j'ai analysé le fichier proposé par benoua et j'en ai extrait la formule
=INDEX(listeVille;MIN(SI(NB.SI(G$12:G12;listeVille)=0;LIGNE(INDIRECT("1:"&LIGNES(listeVille)));LIGNES(listeVille))))&""
Puis j'ai essayé de la comprendre en la "décortiquant":
LIGNES(listeVille) compte le nombre de ligne de la liste
INDEX fait référence à la liste de 24 lignes et se sert du reste de la formule comme no_lig (N° de ligne)
MIN cherche le minimum résultat de la formule "SI"
NB.SI compte le nombre de valeurs contenues dans la plage G$12:G12 (avec un incrément) qui répondent au critère listeVille. Là, déjà, je ne comprends pas comment une liste peut être le critère de NB.SI. Pouvez-vous m'expliquer ?
Avec INDIRECT, ça se corse: en effet, cette fonction s'accompagne normalement d'une syntaxe faisant référence à une cellule (par exemple D5), mais ici, la syntaxe est INDIRECT(1:24) [puisqu'il y a 24 lignes] Comment cela focntionne t'il ?
LIGNE détermine le N° de la ligne obtenu à partir de la formule LIGNE(INDIRECT("1:"&LIGNES(listeVille))). Dans le cas où le test "SI" est vrai, ce sera ce N° de ligne qui sera le résultat, sinon, on aura 24. Mais à quoi sert alors le "MIN" ?
Enfin, je ne comprends pas non plus ce que vient faire le &"" en fin de formule.
Une fois la formule écrite, elle est validée par CTRL + MAJ + ENTREE, ce qui lui ajoute { } de part et d'autre. Est-ce que cela signifie que la formule change alors de "statut" ?
Merci d'avance pour vos réponses