Excel-formel: Omvendt VLOOKUP-eksempel -

Innholdsfortegnelse

Generisk formel

=VLOOKUP(A1,CHOOSE((3,2,1),col1,col2,col3),3,0)

Sammendrag

For å reversere en VLOOKUP - dvs. for å finne den opprinnelige oppslagsverdien ved hjelp av et VLOOKUP-formelresultat - kan du bruke en vanskelig formel basert på CHOOSE-funksjonen, eller mer enkle formler basert på INDEX og MATCH eller XLOOKUP som forklart nedenfor. I eksemplet vist er formelen i H10:

=VLOOKUP(G10,CHOOSE((3,2,1),B5:B8,C5:C8,D5:D8),3,0)

Med dette oppsettet finner VLOOKUP alternativet knyttet til en kostnad på 3000, og returnerer "C".

Merk: dette er et mer avansert emne. Hvis du nettopp har kommet i gang med VLOOKUP, start her.

Introduksjon

En nøkkelbegrensning for VLOOKUP er at den bare kan slå opp verdier til høyre. Kolonnen med oppslagsverdier må med andre ord være til venstre for verdiene du vil hente med VLOOKUP. Som et resultat, med standardkonfigurasjon, er det ingen måte å bruke VLOOKUP til å "se til venstre" og reversere den opprinnelige oppslaget.

Fra synspunktet til VLOOKUP kan vi visualisere problemet slik:

Løsningen som er forklart nedenfor, bruker CHOOSE-funksjonen til å omorganisere bordet inne i VLOOKUP.

Forklaring

Fra begynnelsen er formelen i H5 en normal VLOOKUP-formel:

=VLOOKUP(G5,B5:D8,3,0) // returns 3000

Ved å bruke G5 som oppslagsverdi ("C"), og dataene i B5: D8 som tabellmatrise, utfører VLOOKUP et oppslag på verdier i kolonne B, og returnerer tilsvarende verdi fra kolonne 3 (kolonne D), 3000. Merk null (0) er gitt som det siste argumentet for å tvinge en nøyaktig samsvar.

Formelen i G10 trekker ganske enkelt resultatet fra H5:

=H5 // 3000

For å utføre en omvendt oppslag er formelen i H10:

=VLOOKUP(G10,CHOOSE((3,2,1),B5:B8,C5:C8,D5:D8),3,0)

Den vanskelige biten er CHOOSE-funksjonen, som brukes til å omorganisere tabellmatrisen slik at Cost er den første kolonnen, og Option er den siste:

CHOOSE((3,2,1),B5:B8,C5:C8,D5:D8) // reorder table 3, 2, 1

VELG-funksjonen er designet for å velge en verdi basert på en numerisk indeks. I dette tilfellet leverer vi tre indeksverdier i en matrisekonstant:

(3,2,1) // array constant

Med andre ord ber vi om kolonne 3, deretter kolonne 2, deretter kolonne 1. Dette følges av de tre områdene som representerer hver kolonne i tabellen i den rekkefølgen de vises på regnearket.

Med denne konfigurasjonen returnerer CHOOSE alle tre kolonnene i en enkelt 2D-matrise slik:

(1000,"Silver","A";2000,"Gold","B";3000,"Platinum","C";5000,"Diamond","D")

Hvis vi visualiserer denne matrisen som en tabell på regnearket, har vi:

Merk: overskriftene er ikke en del av matrisen og vises her kun for klarhet.

Effektivt har vi byttet kolonne 1 og 3. Den omorganiserte tabellen returneres direkte til VLOOKUP, som samsvarer med 3000, og returnerer den tilsvarende verdien fra kolonne 3, "C".

Med INDEX og MATCH

Ovennevnte løsning fungerer bra, men det er vanskelig å anbefale siden de fleste brukere ikke forstår hvordan formelen fungerer. En bedre løsning er INDEX og MATCH, med en formel som denne:

=INDEX(B5:B8,MATCH(G10,D5:D8,0))

Her finner MATCH-funksjonen verdien 3000 i D5: D8, og returnerer sin posisjon, 3:

MATCH(G10,D5:D8,0) // returns 3

Merk: MATCH er konfigurert for en nøyaktig samsvar ved å sette det siste argumentet til null (0).

MATCH returnerer et resultat direkte til INDEX som radnummer, så formelen blir:

=INDEX(B5:B8,3) // returns "C"

og INDEX returnerer verdien fra tredje rad i B5: B8, "C".

Denne formelen viser hvordan INDEX og MATCH kan være mer fleksible enn VLOOKUP.

Med XLOOKUP

XLOOKUP gir også en veldig god løsning. Tilsvarende formel er:

=XLOOKUP(G10,D5:D8,B5:B8) // returns "C"

Med en oppslagsverdi fra G10 (3000), alookup array av D5: D8 (kostnader) og et resultat array av B5: B8 (opsjoner), lokaliserer XLOOKUP 3000 i oppslag array, og returnerer det tilsvarende elementet fra resultat arrayet, "C". Fordi XLOOKUP utfører en eksakt samsvar som standard, er det ikke nødvendig å angi samsvarsmodus eksplisitt.

Interessante artikler...