oguruma
XLDnaute Occasionnel
Bonjour,
J'ai été confronté ces derniers temps à cette situation et je vous fais part via un petit exemple qui pour une fois se passera de fonctions et d'un fichier joint :
L'astuce se trouve dans cette ligne par exemple : t_Position_1 = List.PositionOf(List01, "L2", Occurrence.First, (current, value) => value = current{0}),
List01 : liste à parcourir
"L2" : élément recherché dans l'une des sous-listes
Occurrence.First : on fixe la première occurrence des sous-listes (voir documentation pwq pour plus de détail)
(current, value) => value = current{0} : et en fait toute la magie se trouve dans cette fonction qui va examiner chaque sous-liste afin de vérifier que le 1er élément trouvé correspond bien à la valeur recherchée.
Si trouvée, on a la position de la sous-liste dans la liste et on récupère le second élément soit l'indice 1 de la liste.
Pour récupérer la valeur : Value_1=List01{t_Position_1}{1},
Pour List02 le principe est le même. Cet exemple montre la possibilité de faire une recherche sur une clef numérique. Le nombre d'éléments dans les sous-listes peut être variable selon vos besoins.
Value_2=List02{t_Position_2}{2},
Si nécessaire je vous laisse traduire tout ceci dans une fonction. Appuyez-vous sur mes posts précédents pour la syntaxe d'une fonction.
J'ai été confronté ces derniers temps à cette situation et je vous fais part via un petit exemple qui pour une fois se passera de fonctions et d'un fichier joint :
PowerQuery:
List01={{"L1","Sub1"}, {"L2","Sub2"}, {"L3","Sub3"}},
t_Position_1 = List.PositionOf(List01, "L2", Occurrence.First, (current, value) => value = current{0}),
Value_1=List01{t_Position_1}{1},
List02={{1,"Sub10"}, {2,"Sub20"}, {3,"Sub30","Sub31","Sub32"}},
t_Position_2 = List.PositionOf(List02, 3, Occurrence.First, (current, value) => value = current{0}),
Value_2=List02{t_Position_2}{2},
L'astuce se trouve dans cette ligne par exemple : t_Position_1 = List.PositionOf(List01, "L2", Occurrence.First, (current, value) => value = current{0}),
List01 : liste à parcourir
"L2" : élément recherché dans l'une des sous-listes
Occurrence.First : on fixe la première occurrence des sous-listes (voir documentation pwq pour plus de détail)
(current, value) => value = current{0} : et en fait toute la magie se trouve dans cette fonction qui va examiner chaque sous-liste afin de vérifier que le 1er élément trouvé correspond bien à la valeur recherchée.
Si trouvée, on a la position de la sous-liste dans la liste et on récupère le second élément soit l'indice 1 de la liste.
Pour récupérer la valeur : Value_1=List01{t_Position_1}{1},
Pour List02 le principe est le même. Cet exemple montre la possibilité de faire une recherche sur une clef numérique. Le nombre d'éléments dans les sous-listes peut être variable selon vos besoins.
Value_2=List02{t_Position_2}{2},
Si nécessaire je vous laisse traduire tout ceci dans une fonction. Appuyez-vous sur mes posts précédents pour la syntaxe d'une fonction.