
Formule générique
=XLOOKUP(neworder,oldorder,XLOOKUP(val,lookup,results))
Sommaire
XLOOKUP peut être utilisé pour réorganiser les colonnes, en imbriquant un XLOOKUP dans un autre. Dans l'exemple illustré, la formule dans G9 est:
=XLOOKUP(G8:J8,B4:E4,XLOOKUP(G5,E5:E15,B5:E15))
Ce qui renvoie une correspondance sur la valeur dans G5, avec les 4 champs dans une séquence différente.
Explication
Cette formule utilise XLOOKUP deux fois, en imbriquant une XLOOKUP dans une autre. Le premier XLOOKUP (interne) est utilisé pour effectuer une recherche de correspondance exacte sur la valeur dans G5:
XLOOKUP(G5,E5:E15,B5:E15)
- La valeur lookup_value provient de la cellule G5
- Le lookup_array est E5: E15 (codes)
- Le return_array est B5: E15 (tous les champs)
- Le match_mode n'est pas fourni et sa valeur par défaut est 1 (correspondance exacte)
- Le search_mode n'est pas fourni et vaut par défaut 1 (du premier au dernier)
Le résultat est une correspondance sur "AX-160", renvoyée sous la forme d'un tableau des quatre champs dans l'ordre d'origine:
(160,130,60,"AX-160")
Ce résultat est livré directement au deuxième XLOOKUP (externe) comme argument de tableau de retour. La valeur de recherche est fournie sous la forme d'une plage représentant le nouvel ordre des champs et le tableau de recherche est la plage contenant l'ordre des noms de champ d'origine.
=XLOOKUP(G8:J8,B4:E4,(160,130,60,"AX-160"))
- La valeur lookup_value est la plage G8: J8 (nouvel ordre des champs)
- Le lookup_array est la plage B4: E4 (ancien ordre des champs)
- Le return_array est le résultat du premier XLOOKUP
C'est la partie la plus délicate. Nous transmettons plusieurs valeurs de recherche, donc XLOOKUP calculera en interne plusieurs positions de correspondance. Pour chaque valeur de la nouvelle plage d'ordre des champs, XLOOKUP trouvera une position dans l'ancienne plage d'ordre des champs et utilisera cette position pour récupérer une valeur dans le tableau de retour (les valeurs renvoyées par la première fonction XLOOKUP). Le résultat est le résultat de la recherche d'origine avec les champs organisés dans le nouvel ordre.