Enhavtabelo
Ĉi tiu lernilo montras kiel uzi INDEX kaj MATCH en Excel kaj kiel ĝi estas pli bona ol VLOOKUP.
En kelkaj lastatempaj artikoloj, ni faris bonan klopodon klarigi la bazojn de VLOOKUP-funkcio al komencantoj kaj provizi pli kompleksajn VLOOKUP-formulekzemplojn al potencaj uzantoj. Kaj nun, mi provos, se ne malebligi vin uzi VLOOKUP, tiam almenaŭ montros al vi alternativan manieron fari vertikalan serĉon en Excel.
"Por kio mi bezonas tion?" vi eble demandas. Ĉar VLOOKUP havas multajn limojn, kiuj povas malhelpi vin akiri la deziratan rezulton en multaj situacioj. Aliflanke, la kombinaĵo INDEX MATCH estas pli fleksebla kaj havas multajn mirindajn funkciojn, kiuj faras ĝin pli bona ol VLOOKUP en multaj rilatoj.
Excel INDEX. kaj MATCH-funkcioj - la bazaĵoj
Ĉar la celo de ĉi tiu lernilo estas pruvi alternativan manieron fari vserĉon en Excel uzante kombinaĵon de INDEX kaj MATCH-funkcioj, ni ne multe pritraktos ilian sintakson kaj uzoj. Ni kovros nur la minimumon necesan por kompreni la ĝeneralan ideon kaj poste profunde rigardos formulajn ekzemplojn, kiuj malkaŝas ĉiujn avantaĝojn uzi INDEX MATCH anstataŭ VLOOKUP.
INDEX-funkcio - sintakso kaj uzado
La Excel INDEX-funkcio liveras valoron en tabelo bazita sur la vico kaj kolumno-nombroj kiujn vi specifita. La sintakso de la funkcio INDEX estas simpla:
( kriterio1= gamo1) * ( kriterio2= gamo2), 0))}Notu. Ĉi tio estas tabelformulo, kiu devas esti kompletigita per la ŝparvojo Ctrl + Shift + Enigu.
En la ekzemplotabelo malsupre, supozante, ke vi volas trovi la kvanton surbaze de 2 kriterioj, Kliento kaj Produkto .
La jena INDEX-MATCH-formulo funkcias tre bone:
=INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))
Kie C2:C10 estas la intervalo por redoni valoron, F1 estas kriterio1, A2:A10 estas la intervalo por kompari kontraŭ kriterio1, F2 estas kriterio 2, kaj B2:B10 estas la intervalo por kompari kontraŭ kriterio2.
Memoru enigi la formulon ĝuste premante Ctrl + Maj + Enigu , kaj Excel aŭtomate enmetos ĝin krampojn kiel montrite en la ekrankopio:
Se vi preferas ne uzi tabelajn formulojn en viaj laborfolioj, aldonu unu plian INDEX-funkcion al la formulo kaj kompletigu ĝin per kutima Enigu baton:
Kiel ĉi tiuj formuloj funkcias
La formuloj uzas la saman aliron kiel la baza funkcio INDEX MATCH kiu trarigardas ununura kolumno. Por taksi plurajn kriteriojn, vi kreas du aŭ pli da tabeloj de VERA kaj FALSA valoroj kiuj reprezentas kongruojn kaj ne-kongruojn por ĉiu individua kriterio, kaj poste multobligu la respondajn elementojn de ĉi tiuj tabeloj. La multiplika operacio konvertas VERA kaj FALSE en 1 kaj 0, respektive, kaj produktas tabelon kie 1 respondas al vicoj kiuj kongruas kun ĉiuj kriterioj.La MATCH-funkcio kun serĉvaloro de 1 trovas la unuan "1" en la tabelo kaj pasas ĝian pozicion al INDEX, kiu liveras valoron en ĉi tiu vico de la specifita kolumno.
La ne-tabelformulo dependas de la kapablo de la INDEX-funkcio pritrakti tabelojn denaske. La dua INDEX estas agordita kun 0 row_num tiel ke ĝi transdonos la tutan kolumnan tabelon al MATCH.
Tio estas altnivela klarigo de la logiko de la formulo. Por plenaj detaloj, bonvolu vidi Excel INDEX MATCH kun pluraj kriterioj.
Excel INDEX MATCH kun AVERAGE, MAX, MIN
Microsoft Excel havas specialajn funkciojn por trovi minimuman, maksimuman kaj mezan valoron en gamo. Sed kio se vi bezonas akiri valoron de alia ĉelo kiu estas asociita kun tiuj valoroj? En ĉi tiu kazo, uzu la funkcion MAX, MIN aŭ AVERAGE kune kun INDEX MATCH.
INDEX MATCH kun MAX
Por trovi la plej grandan valoron en kolumno D kaj redoni valoron el kolumno C en la saman vicon, uzu ĉi tiun formulon:
=INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))
INDEX MATCH kun MIN
Por lokalizi la plej malgrandan valoron en kolumno D kaj tiri rilatan valoron el kolumno C, uzu ĉi tiun. :
=INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))
INDEXA MATCH kun AVERAGE
Por ellabori la valoron plej proksiman al la mezumo en D2:D10 kaj akiri respondan valoron de kolumno C, ĉi tiu estas la formulo uzi:
=INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))
Laŭ kiel viaj datumoj estas organizitaj, liveru aŭ 1 aŭ -1 al la tria argumento (match_type) dela MATCH-funkcio:
- Se via serĉkolumno (kolumno D en nia kazo) estas ordigita ascendenta , metu 1. La formulo kalkulos la plej grandan valoron kiu estas malpli ol aŭ egala al la averaĝa valoro.
- Se via serĉkolumno estas ordigita malkreskanta , enigu -1. La formulo kalkulos la plej malgrandan valoron kiu estas pli granda ol aŭ egala al la averaĝa valoro.
- Se via serĉa tabelo enhavas valoron precize egala al la mezumo, vi povas enigi 0 por ĝusta kongruo. Neniu ordigo estas bezonata.
En nia ekzemplo, la populacioj en kolumno D estas ordigitaj en malkreskanta ordo, do ni uzas -1 por kongrua tipo. Kiel rezulto, ni ricevas "Tokio" ĉar ĝia loĝantaro (13,189,000) estas la plej proksima parenco kiu estas pli granda ol mezumo (12,269,006).
Vi eble scivolas scii tion. VLOOKUP povas fari tiajn kalkulojn ankaŭ, sed kiel tabelformulo: VLOOKUP kun AVERAGE, MAX, MIN.
Uzante INDEX MATCH kun IFNA / IFERROR
Kiel vi verŝajne rimarkis, se INDEX MATCH formulo en Excel ne povas trovi serĉan valoron, ĝi produktas eraron #N/A. Se vi volas anstataŭigi la norman erarnotacion per io pli signifa, envolvu vian INDEXMATACH-formulon en la IFNA-funkcion. Ekzemple:
=IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")
Kaj nun, se iu enigas serĉtabelon kiu ne ekzistas en la serĉa intervalo, la formulo eksplicite informos la uzanton ke neniu kongruo estastrovita:
Se vi ŝatus kapti ĉiujn erarojn, ne nur #N/A, uzu la funkcion IFERROR anstataŭ IFNA:
=IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, something went wrong!")
Bonvolu memori, ke en multaj situacioj povus esti malprudente kaŝvesti ĉiujn erarojn ĉar ili atentigas vin pri eblaj misfunkciadoj en via formulo.
Tiel uzi INDEX kaj MATCH en Excel. Mi esperas, ke niaj formulekzemploj pruvos utilaj por vi kaj antaŭĝojas vidi vin en nia blogo venontsemajne!
Praktiku laborlibron por elŝuto
Excel INDEX MATCH-ekzemploj (.xlsx-dosiero)
INDEX(tabelo, vico_num, [kolumno_num])Jen tre simpla klarigo pri ĉiu parametro:
- tabelo - gamo da ĉeloj kiujn vi volas redoni. valoro de.
- row_num - la vicnumero en tabelo el kiu vi volas redoni valoron. Se ellasita, la kolumno_num estas bezonata.
- column_num - la kolumnombro en tabelo el kiu vi volas redoni valoron. Se ellasita, row_num estas bezonata.
Por pliaj informoj, bonvolu vidi Excel-INDEX-funkcion.
Kaj jen ekzemplo de la INDEX-formulo en ĝia plej simpla formo:
=INDEX(A1:C10,2,3)
La formulo serĉas en ĉeloj A1 ĝis C10 kaj liveras valoron de la ĉelo en la 2-a vico kaj la 3-a kolumno, t.e. ĉelo C2.
Tre facila, ĉu ne? Tamen, kiam vi laboras kun realaj datumoj, vi apenaŭ iam scius, kiujn vicon kaj kolumnon vi volas, tie utilas la MATCH-funkcio.
MATCH-funkcio - sintakso kaj uzado
La Excel-MATCH-funkcio. serĉas serĉvaloron en gamo da ĉeloj kaj liveras la relativan pozicion de tiu valoro en la intervalo.
La sintakso de la MATCH-funkcio estas jena:
MATCH(serĉa_valoro , serĉo_tabelo, [match_type])- lookup_value - la nombro aŭ tekstvaloro kiun vi serĉas.
- lookup_array - gamo da ĉeloj estante serĉita.
- match_type - precizigas ĉu redoni ĝustan kongruon aŭ la plej proksiman kongruon:
- 1 aŭ preterlasita - trovas la plej grandan valoron kiu estas malpli ol aŭ egala al la serĉvaloro. Necesas ordigi la serĉan tabelon en pligranda ordo.
- 0 - trovas la unuan valoron kiu estas ĝuste egala al la serĉvaloro. En la kombinaĵo INDEX / MATCH, vi preskaŭ ĉiam bezonas precizan kongruon, do vi starigas la trian argumenton de via MATCH-funkcio al 0.
- -1 - trovas la plej malgrandan valoron kiu estas pli granda ol aŭ egala al serĉo_valoro. Necesas ordigi la serĉan tabelon en malkreskanta ordo.
Ekzemple, se la intervalo B1:B3 enhavas la valorojn "Nov-Jorko", "Parizo", "Londono", la suba formulo liveras la numeron 3, ĉar "Londono" estas la tria eniro en la intervalo:
=MATCH("London",B1:B3,0)
Por pliaj informoj, bonvolu vidi Excel-MATCH-funkcion.
Ĉe unuavide, la utileco de la MATCH-funkcio povas ŝajni dubinda. Kiu zorgas pri la pozicio de valoro en gamo? Kion ni volas scii estas la valoro mem.
Mi memorigu al vi, ke la relativa pozicio de la serĉvaloro (t.e. vico kaj kolumnombroj) estas ĝuste tio, kion vi bezonas provizi al la vica_num kaj kolumn_num argumentoj de la funkcio INDEX. Kiel vi memoras, Excel INDEX povas trovi la valoron ĉe la kuniĝo de donita vico kaj kolumno, sed ĝi ne povas determini, kiujn precize vico kaj kolumno vi volas.
Kiel uzi la funkcion INDEX MATCH en Excel
Nun kiam vi konas la bazojn, mi kredas, ke ĝi havasjam komencis kompreni kiel MATCH kaj INDEX funkcias kune. Resume, INDEX trovas la serĉvaloron laŭ kolumnoj kaj vicoj, kaj MATCH provizas tiujn nombrojn. Jen ĝi!
Por vertikala serĉo, vi uzas la MATCH-funkcion nur por determini la vicon-numeron kaj provizi la kolumnintervalon rekte al INDEX:
INDEX ( kolumno por redoni valoron de, MATCH ( serĉa valoro, kolumno por rigardi supre, 0))Ĉu vi ankoraŭ havas malfacilaĵojn por eltrovi tion? Povas esti pli facile kompreni el ekzemplo. Supozu, ke vi havas liston de naciaj ĉefurboj kaj ilia loĝantaro:
Por trovi la loĝantaron de certa ĉefurbo, diru la ĉefurbo de Japanio, uzu la jenan INDEXKOMATAN formulon:
=INDEX(C2:C10, MATCH("Japan", A2:A10, 0))
Nun, ni analizu, kion efektive faras ĉiu komponanto de ĉi tiu formulo:
- La MATCH-funkcio serĉas la serĉvaloron "Japanio" en la intervalo A2: A10, kaj resendas la numeron 3, ĉar "Japanio" estas tria en la serĉa tabelo.
- La vico-numero iras rekte al la argumento row_num de INDEX instrukciante ĝin redoni valoron de tiu. vico.
Do, la supra formulo iĝas simpla INDEXO(C2:C,3) kiu diras serĉi en ĉeloj C2 ĝis C10 kaj tiri la valoron el la 3-a ĉelo en tiu intervalo, t.e. C4 ĉar ni komencas kalkuli de la dua vico.
Ĉu vi ne volas malmolkodigi la urbon en la formulo? Enigu ĝin en iu ĉelo, diru F1, provizi la ĉelonreferenco al MATCH, kaj vi ricevos dinamikan serĉformulon:
=INDEX(C2:C10, MATCH(F1,A2:A10,0))
Grava noto! La nombro da vicoj en la argumento de INDEX devus kongrui kun la nombro da vicoj en la argumento lookup_array de MATCH, alie la formulo produktos malĝustan rezulton.
Atendu, atendu... kial ne; Ĉu ni simple uzas la sekvan formulon de Vserĉo? Kio utilas perdi tempon provi eltrovi la arkanajn tordiĝojn de Excel MATCH INDEX?
=VLOOKUP(F1, A2:C10, 3, FALSE)
En ĉi tiu kazo, tute ne gravas :) Ĉi tiu simpla ekzemplo estas nur por pruvaj celoj, por ke vi ekkomprenu kiel la funkcioj INDEX kaj MATCH funkcias kune. Aliaj ekzemploj kiuj sekvas sube montros al vi la realan potencon de ĉi tiu kombinaĵo, kiu facile eltenas multajn kompleksajn scenarojn kiam VLOOKUP stumblas.
Konsiletoj:
- En Excel 365 kaj Excel 2021, vi povas uzi pli modernan formulon INDEX XMATCH.
- Por Google Sheets, vidu formulekzemplojn kun INDEX MATCH en ĉi tiu artikolo.
INDEX MATCH kontraŭ VLOOKUP
Kiam decidante kiun funkcion uzi por vertikalaj serĉoj, plej multaj Excel-guruoj konsentas, ke INDEX MATCH estas multe pli bona ol VLOOKUP. Tamen, multaj homoj ankoraŭ restas kun VLOOKUP, unue, ĉar ĝi estas pli simpla kaj, due, ĉar ili ne plene komprenas ĉiujn avantaĝojn de uzado de la INDEX MATCH-formulo en Excel. Sen tia kompreno neniu pretas investi sian tempon por lernipli kompleksa sintakso.
Malsupre, mi montros la ĉefajn avantaĝojn de MATCH INDEX super VLOOKUP, kaj vi decidas ĉu ĝi estas inda aldono al via Excel-arsenalo.
4 ĉefaj kialoj por uzi INDEX MATCH anstataŭ VLOOKUP
- Dekstre al maldekstra serĉo. Kiel ĉiu edukita uzanto scias, VLOOKUP ne povas rigardi maldekstren, tio signifas, ke via serĉvaloro ĉiam loĝu en la plej maldekstra kolumno de la tablo. INDEX MATCH povas fari maldekstran serĉon facile! La sekva ekzemplo montras ĝin en ago: Kiel Vserĉu valoron maldekstre en Excel.
- Enmeti aŭ forigi kolumnojn sekure. VLOOKUP-formuloj rompiĝas aŭ liveras malĝustajn rezultojn kiam nova kolumno estas forigita de aŭ aldonita al serĉtabelo ĉar la sintakso de VLOOKUP postulas specifi la indeksnumeron de la kolumno el kiu vi volas eltiri la datumojn. Kompreneble, kiam vi aldonas aŭ forigas kolumnojn, la indeksa nombro ŝanĝiĝas.
Kun INDEX MATCH, vi specifas la revenkolumnan gamon, ne indeksan numeron. Kiel rezulto, vi rajtas enmeti kaj forigi tiom da kolumnoj kiom vi volas sen zorgi pri ĝisdatigo de ĉiu rilata formulo.
- Neniu limo por la grandeco de serĉvaloro. Kiam vi uzas la funkcion VLOOKUP, la totala longo de viaj serĉkriterioj ne povas superi 255 signojn, alie vi havos la #VALORO. ! eraro. Do, se via datumaro enhavas longajn ŝnurojn, INDEX MATCH estas la sola funkciantasolvo.
- Pli alta pretiga rapideco. Se viaj tabeloj estas relative malgrandaj, apenaŭ estos grava diferenco en Excel-agado. Sed se viaj laborfolioj enhavas centojn aŭ milojn da vicoj, kaj sekve centojn aŭ milojn da formuloj, MATCH INDEX funkcios multe pli rapide ol VLOOKUP ĉar Excel devos prilabori nur la serĉon kaj redoni kolumnojn prefere ol la tuta tabela tabelo.
La efiko de VLOOKUP al la agado de Excel povas esti precipe rimarkinda se via laborlibro enhavas kompleksajn tabelformulojn kiel VLOOKUP kaj SUM. La punkto estas, ke kontroli ĉiun valoron en la tabelo postulas apartan vokon de la funkcio VLOOKUP. Do, ju pli da valoroj enhavas via tabelo kaj ju pli da tabelformuloj vi havas en laborlibro, des pli malrapide Excel plenumas.
Excel INDEX MATCH - ekzemploj de formuloj
Konante la kialoj por lerni la funkcion MATCH INDEX, ni iru al la plej interesa parto kaj vidu kiel vi povas apliki la teoriajn sciojn en la praktiko.
INDEX MATCH formulo por rigardi supren de dekstre al maldekstre
Kiel jam menciita, VLOOKUP ne povas rigardi ĝian maldekstren. Do, krom se viaj serĉaj valoroj estas la plej maldekstra kolumno, ne estas ŝanco, ke Vlookup-formulo alportos al vi la rezulton, kiun vi volas. La funkcio INDEX MATCH en Excel estas pli diverstalenta kaj ne vere zorgas kie troviĝas la serĉaj kaj revenaj kolumnoj.
Por ĉi tiu ekzemplo,ni aldonos la Rank-kolumnon maldekstre de nia specimena tabelo kaj provos eltrovi kiel la rusa ĉefurbo, Moskvo, rangas laŭ populacio.
Kun la serĉvaloro en G1, uzu la sekvan formulon por serĉi en C2:C10 kaj redonu respondan valoron de A2:A10:
=INDEX(A2:A10,MATCH(G1,C2:C10,0))
Konsileto. Se vi planas uzi vian INDEX MATCH-formulon por pli ol unu ĉelo, nepre ŝlosu ambaŭ intervalojn per absolutaj ĉelaj referencoj (kiel $A$2:$A$10 kaj $C$2:4C$10) por ke ili ne distordiĝos kiam kopiante la formulon.
INDEX MATCH MATCH por serĉi en vicoj kaj kolumnoj
En la supraj ekzemploj, ni uzis INDEX MATCH kiel la anstataŭaĵon por klasika VLOOKUP por redoni valoron de antaŭdifinita unu-kolumno gamo. Sed kio se vi bezonas serĉi en pluraj vicoj kaj kolumnoj? Alivorte, kio se vi volas fari la tiel nomatan matricon aŭ dudirektan serĉon?
Ĉi tio povas soni malfacila, sed la formulo estas tre simila al la baza funkcio INDEX MATCH de Excel, kun nur unu diferenco. Divenu kion?
Simple, uzu du MATCH-funkciojn – unu por ricevi vican numeron kaj la alian por akiri kolumnon. Kaj mi gratulas tiujn el vi, kiuj bone divenis :)
INDEXO (tabelo, MATCH ( vserĉa valoro, kolumno por rigardi, 0), MATCH ( serĉvaloro, vico por rigardi supre, 0))Kaj nun, bonvolu rigardi la suban tabelon kaj ni konstruu INDEXKOMATAN MATACHONformulo por trovi la loĝantaron (en milionoj) en donita lando por difinita jaro.
Kun la cellando en G1 (vserĉa valoro) kaj la celjaro en G2 (hlookup valoro), la formulo prenas ĉi tiun formon. :
=INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))
Kiel ĉi tiu formulo funkcias
Kiam vi bezonas kompreni kompleksan Excel-formulon, disigu ĝin en pli malgrandajn partojn kaj vidu kion faras ĉiu individua funkcio:
MATCH(G1,A2:A11,0)
– serĉas tra A2:A11 la valoron en ĉelo G1 ("Ĉinio") kaj resendas ĝian pozicion, kiu estas 2.
MATCH(G2,B1:D1,0))
– serĉas tra. B1:D1 por ricevi la pozicion de la valoro en ĉelo G2 ("2015"), kiu estas 3.
La supraj vico kaj kolumnombroj iras al la respondaj argumentoj de la INDEX-funkcio:
INDEX(B2:D11, 2, 3)
Kiel rezulto, vi ricevas valoron ĉe la intersekco de la 2-a vico kaj 3-a kolumno en la intervalo B2:D11, kiu estas la valoro en ĉelo D3. Facila? Jes!
Excel INDEX MATCH por serĉi plurajn kriteriojn
Se vi havis ŝancon legi nian lernilon de Excel VLOOKUP, vi verŝajne jam testis formulon por VLookup kun pluraj kriterioj. Tamen, grava limigo de tiu aliro estas la neceso aldoni helpan kolumnon. La bona novaĵo estas, ke la funkcio INDEX MATCH de Excel ankaŭ povas serĉi per du aŭ pli da kriterioj, sen modifi aŭ restrukturi viajn fontajn datumojn!
Jen la ĝenerala INDEX MATCH-formulo kun pluraj kriterioj:
{=INDEX( revena_gamo, MATCH(1,