Excel formula: Povratni primer VLOOKUP -

Kazalo

Splošna formula

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

Povzetek

Če želite razveljaviti VLOOKUP - tj. Najti prvotno vrednost iskanja z rezultatom formule VLOOKUP - lahko uporabite zapleteno formulo, ki temelji na funkciji IZBOR, ali bolj enostavne formule, ki temeljijo na INDEX in MATCH ali XLOOKUP, kot je razloženo spodaj. V prikazanem primeru je formula v H10:

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

S to nastavitvijo VLOOKUP najde možnost, povezano s stroški 3000, in vrne "C".

Opomba: to je bolj napredna tema. Če šele začenjate z VLOOKUP-om, začnite tukaj.

Uvod

Ključna omejitev VLOOKUP-a je, da lahko išče vrednosti le desno. Z drugimi besedami, stolpec z iskalnimi vrednostmi mora biti levo od vrednosti, ki jih želite pridobiti z VLOOKUP. Kot rezultat, s standardno konfiguracijo ni mogoče uporabiti VLOOKUP za "pogled levo" in obrnitev prvotnega iskanja.

Z vidika VLOOKUP-a si lahko težavo predstavimo tako:

Spodaj razložena rešitev uporablja funkcijo CHOOSE za preureditev tabele znotraj VLOOKUP.

Pojasnilo

Od začetka je formula v H5 običajna formula VLOOKUP:

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

Z uporabo G5 kot iskalne vrednosti ("C") in podatkov v B5: D8 kot polja tabele, VLOOKUP izvede iskanje vrednosti v stolpcu B in vrne ustrezno vrednost iz stolpca 3 (stolpec D), 3000. Obvestilo nič (0) je naveden kot zadnji argument za vsiljevanje natančnega ujemanja.

Formula v G10 preprosto potegne rezultat iz H5:

=H5 // 3000

Za izvedbo povratnega iskanja je formula v H10:

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

Prefinjen bit je funkcija CHOOSE, ki se uporablja za preurejanje polja tabele tako, da je Cost prvi stolpec, Option pa zadnji:

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

Funkcija CHOOSE je namenjena izbiri vrednosti na podlagi številskega indeksa. V tem primeru podajamo tri vrednosti indeksa v konstanti matrike:

(3,2,1) // array constant

Z drugimi besedami, prosimo za stolpec 3, nato stolpec 2, nato stolpec 1. Temu sledijo trije obsegi, ki predstavljajo vsak stolpec tabele v vrstnem redu, kot so prikazani na delovnem listu.

S to konfiguracijo CHOOSE vrne vse tri stolpce v enem samem 2D matriku, kot je ta:

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

Če to matriko vizualiziramo kot tabelo na delovnem listu, imamo:

Opomba: naslovi niso del polja in so tukaj prikazani samo zaradi jasnosti.

V bistvu smo zamenjali stolpca 1 in 3. Reorganizirana tabela se vrne neposredno v VLOOKUP, ki se ujema s 3000, in vrne ustrezno vrednost iz stolpca 3, "C".

Z KAZALOM in UTEKOM

Zgornja rešitev deluje dobro, vendar jo je težko priporočiti, saj večina uporabnikov ne bo razumela, kako formula deluje. Boljša rešitev sta INDEX in MATCH z uporabo formule, kot je ta:

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

Tu funkcija MATCH najde vrednost 3000 v D5: D8 in vrne svoj položaj 3:

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

Opomba: MATCH je nastavljen za natančno ujemanje z nastavitvijo zadnjega argumenta na nič (0).

MATCH vrne rezultat neposredno v INDEX kot številko vrstice, zato formula postane:

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

in INDEX vrne vrednost iz tretje vrstice B5: B8, "C".

Ta formula prikazuje, kako sta INDEX in MATCH lahko bolj prilagodljiva kot VLOOKUP.

Z XLOOKUP

XLOOKUP ponuja tudi zelo dobro rešitev. Enakovredna formula je:

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

Z iskalno vrednostjo iz G10 (3000), vsemi iskalnimi polji D5: D8 (stroški) in rezultatskim poljem B5: B8 (možnosti), XLOOKUP najde 3000 v iskalnem polju in vrne ustrezen element iz polja z rezultati, "C". Ker XLOOKUP privzeto izvede natančno ujemanje, načina ujemanja ni treba izrecno nastaviti.

Zanimive Članki...