
Generisk formel
=XLOOKUP(neworder,oldorder,XLOOKUP(val,lookup,results))
Sammanfattning
XLOOKUP kan användas för att ordna om kolumner genom att häcka en XLOOKUP i en annan. I exemplet som visas är formeln i G9:
=XLOOKUP(G8:J8,B4:E4,XLOOKUP(G5,E5:E15,B5:E15))
Som returnerar en matchning på värdet i G5, med alla fyra fälten i en annan sekvens.
Förklaring
Denna formel använder XLOOKUP två gånger genom att häcka en XLOOKUP inuti en annan. Den första (inre) XLOOKUP används för att utföra en exakt matchning av värdet i G5:
XLOOKUP(G5,E5:E15,B5:E15)
- Lookup_value kommer från cell G5
- Lookup_array är E5: E15 (koder)
- Return_array är B5: E15 (alla fält)
- Match_mode tillhandahålls inte och är som standard 1 (exakt matchning)
- Sökläget tillhandahålls inte och är som standard 1 (första till sista)
Resultatet är en matchning på "AX-160", returnerad som en matris med alla fyra fälten i den ursprungliga ordningen:
(160,130,60,"AX-160")
Detta resultat levereras direkt till den andra (yttre) XLOOKUP som argument för returmatris. Uppslagsvärdet tillhandahålls som ett intervall som representerar den nya ordningen på fält, och uppslagsmatrisen är det intervall som innehåller den ursprungliga fältnamnsordningen.
=XLOOKUP(G8:J8,B4:E4,(160,130,60,"AX-160"))
- Lookup_value är intervallet G8: J8 (ny fältordning)
- Lookup_array är intervallet B4: E4 (gammal fältordning)
- Return_array är resultatet från den första XLOOKUP
Det här är det knepiga. Vi skickar in flera uppslagsvärden, så XLOOKUP internt beräknar flera matchningspositioner. För varje värde i det nya fältordern kommer XLOOKUP att hitta en position inom det gamla fältordern och använda denna position för att hämta ett värde från returmatrisen (värdena som returneras av den första XLOOKUP-funktionen). Resultatet är det ursprungliga sökresultatet med fält ordnade i den nya ordningen.