Altnivela VLOOKUP en Excel: multobla, duobla, nesto

  • Kundividu Ĉi Tion
Michael Brown

Ĉi tiuj ekzemploj instruos vin kiel Vserĉu plurajn kriteriojn, resendi specifan okazon aŭ ĉiujn kongruojn, fari dinamikan Vserĉon en pluraj folioj, kaj pli.

Ĝi estas la dua parto de la serio, kiu helpos vin utiligi la potencon de Excel VLOOKUP. La ekzemploj implicas ke vi scias kiel ĉi tiu funkcio funkcias. Se ne, estas prudente komenci per la bazaj uzoj de VLOOKUP en Excel.

Antaŭ ol plu movi, mi mallonge memorigu al vi la sintakson:

VLOOKUP(serĉ_valoro, tabel_abelo, kol_index_num, [range_lookup] )

Nun, ke ĉiuj estas sur la sama paĝo, ni rigardu pli detale la altnivelajn VLOOKUP-formulekzemplojn:

    Kiel Vserĉi plurajn kriteriojn

    La Excel. VLOOKUP-funkcio estas vere helpema kiam temas pri serĉado tra datumbazo por certa valoro. Tamen al ĝi mankas grava funkcio - ĝia sintakso permesas nur unu serĉvaloron. Sed kio se vi volas rigardi supren kun pluraj kondiĉoj? Estas kelkaj malsamaj solvoj por vi elekti.

    Formulo 1. VSERĈO kun du kriterioj

    Supozi vi havas liston de mendoj kaj volas trovi la kvanton surbaze de 2 kriterioj, Klientonomo kaj Produkto . Komplika faktoro estas, ke ĉiu kliento mendis plurajn produktojn, kiel montrite en la suba tabelo:

    Kutima VLOOKUP-formulo ne funkcios en ĉi tiu situacio ĉar ĝi liveras la unuan trovitan. matĉo bazita sur aregionoj:

    Kiel en la antaŭa ekzemplo, ni komencas per difino de kelkaj nomoj:

    • Gamo A2:B5 en CA-folio estas nomita CA_Vendoj .
    • Gamo A2:B5 en FL-folio nomiĝas FL_Sales .
    • Gameto A2:B5 en KS-folio nomiĝas KS_Sales .

    Kiel vi povas vidi, ĉiuj nomitaj gamoj havas komunan parton ( Vendoj ) kaj unikajn partojn ( CA , FL , KS ). Bonvolu nepre nomi viajn intervalojn en simila maniero ĉar ĝi estas esenca por la formulo, kiun ni konstruos.

    Formulo 1. NEREKTA VSERĈO por dinamike eltiri datumojn de malsamaj folioj

    Se via tasko estas preni datumojn de pluraj folioj, VLOOKUP INDIREKTA formulo estas la plej bona solvo - kompakta kaj facile komprenebla.

    Por ĉi tiu ekzemplo, ni organizas la resuman tabelon tiamaniere:

    • Enigu la interesajn produktojn en A2 kaj A3. Tiuj estas niaj serĉaj valoroj.
    • Enigu la unikajn partojn de la nomitaj intervaloj en B1, C1 kaj D1.

    Kaj nun, ni kunligas la ĉelon enhavantan la unikan parton (B1) kun la komuna parto ("_Vendoj"), kaj nutras la rezultan ĉenon al INDIREKTA:

    INDIRECT(B$1&"_Sales")

    La INDIREKTA funkcio transformas la ĉenon en nomon, kiun Excel povas kompreni, kaj vi enmetas ĝin. la argumento table_array de VLOOKUP:

    =VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)

    La supra formulo iras al B2, kaj tiam vi kopiu ĝin malsupren kaj dekstren.

    Bonvolu. atentu ke, en la serĉvaloro ($A2),ni ŝlosis la kolumnan koordinaton kun absoluta ĉela referenco por ke la kolumno restu fiksa kiam la formulo estas kopiita dekstren. En la referenco B$1, ni ŝlosis la vicon ĉar ni volas, ke la kolumna koordinato ŝanĝiĝu kaj liveri taŭgan nomparton al INDIREKTO depende de la kolumno en kiu la formulo estas kopiita:

    Se via ĉefa tabelo estas organizita alimaniere, la serĉvaloroj en vico kaj unikaj partoj de la intervalnomoj en kolumno, tiam vi devus ŝlosi la vickoordinaton en la serĉvaloro (B$1) kaj la kolumna koordinato en la nompartoj ($A2):

    =VLOOKUP(B$1, INDIRECT($A2&"_Sales"), 2, FALSE)

    Formulo 2. VLOOKUP kaj nestitaj IF-oj por serĉi plurajn foliojn

    En situacio kiam vi havas nur du aŭ tri serĉfolioj, vi povas uzi sufiĉe simplan VLOOKUP-formulon kun nestitaj IF-funkcioj por elekti la ĝustan folion surbaze de la ŝlosila valoro en aparta ĉelo:

    =VLOOKUP($A2, IF(B$1="CA", CA_Sales, IF(B$1="FL", FL_Sales, IF(B$1="KS", KS_Sales,""))), 2, FALSE)

    Kie $A2 estas la serĉvaloro (eronomo) kaj B$1 estas la ŝlosilvaloro (stato):

    En ĉi tiu kazo, vi ne nepre bezonas difini nomojn kaj povas uzi eksteran referencoj por referenci al alia folio aŭ laborlibro.

    Por pli da formulo ekz mples, bonvolu vidi Kiel VLOOKUP tra pluraj folioj en Excel.

    Jen kiel uzi VLOOKUP en Excel. Mi dankas vin pro legado kaj esperas vidi vin en nia blogo venontsemajne!

    Praktiku laborlibron por elŝuto

    Altnivela VLOOKUP formulekzemploj (.xlsxdosiero)

    ununura serĉvaloro kiun vi specifas.

    Por venki ĉi tion, vi povas aldoni helpan kolumnon kaj kunligi la valorojn de du serĉkolumnoj ( Kliento kaj Produkto ) tie. Gravas, ke la helpa kolumno estu la plej maldekstra kolumno en la tabela tabelo ĉar tie Excel VLOOKUP ĉiam serĉas la serĉvaloron.

    Do, aldonu kolumnon maldekstre de via. tabelo kaj kopiu la suban formulon tra tiu kolumno. Ĉi tio plenigos la helpan kolumnon kun la valoroj de la kolumnoj B kaj C (la spacsignoj estas kunligitaj intere por pli bona legebleco):

    =B2&" "&C2

    Kaj poste uzu norman VLOOKUP-formulon kaj loku. ambaŭ kriterioj en la argumento serĉa_valoro , apartigitaj per spaco:

    =VLOOKUP("Jeremy Sweets", A2:D11, 4, FALSE)

    Aŭ, enigu la kriteriojn en apartaj ĉeloj (G1 kaj G2 en nia kazo) kaj kunligu tiujn. ĉeloj:

    =VLOOKUP(G1&" "&G2, A2:D11, 4, FALSE)

    Ĉar ni volas redoni valoron de kolumno D, kiu estas la kvara en la tabela tabelo, ni uzas 4 por col_index_num . La argumento range_lookup estas agordita al FALSE por Vserĉi ĝustan kongruon. La ekrankopio malsupre montras la rezulton:

    Se via serĉtabelo estas en alia folio , inkludu la nomon de la folio en via VLOOKUP-formulo. Ekzemple:

    =VLOOKUP(G1&" "&G2, Orders!A2:D11, 4, FALSE)

    Alternative, kreu nomitan gamon por la serĉtabelo (diru, Ordoj ) por fari la formulon pli facile legebla:

    =VLOOKUP(G1&" "&G2, Orders, 4, FALSE)

    Por pliaj informoj, bonvolu vidi KielVserĉo el alia folio en Excel.

    Noto. Por ke la formulo funkciu ĝuste, la valoroj en la helpa kolumno estu kunligitaj ĝuste same kiel en la argumento serĉa_valoro . Ekzemple, ni uzis spacan signon por apartigi la kriteriojn en kaj la helpkolumno (B2&" "&C2) kaj VLOOKUP formulo (G1&" "&G2).

    Formulo 2. Excel VLOOKUP kun pluraj kondiĉoj

    Teorie, vi povas uzi la supran aliron al VLookup pli ol du kriteriojn. Tamen, estas kelkaj avertoj. Unue, serĉvaloro estas limigita al 255 signoj, kaj due, la dezajno de la laborfolio eble ne permesas aldoni helpan kolumnon.

    Feliĉe, Microsoft Excel ofte provizas pli ol unu manieron fari la saman aferon. Por Vserĉu plurajn kriteriojn, vi povas uzi aŭ INDEX MATCH-kombinaĵo aŭ la funkcio XLOOKUP lastatempe enkondukita en Office 365.

    Ekzemple, por serĉi surbaze de 3 malsamaj valoroj ( Dato , Kulentonomo kaj Produkto ), uzu unu el la jenaj formuloj:

    =INDEX(D2:D11, MATCH(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), 0))

    =XLOOKUP(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), D2:D11)

    Kie:

    • G1 estas kriterio 1 (dato)
    • G2 estas kriterio 2 (klientonomo)
    • G3 estas kriterio 3 (produkto)
    • A2:A11 estas serĉo intervalo 1 (datoj)
    • B2:B11 estas serĉintervalo 2 (klientnomoj)
    • C2:C11 estas serĉintervalo 3 (produktoj)
    • D2:D11 estas la reveno intervalo (kvanto)

    Noto. En ĉiuj versioj krom Excel 365, INDEXMATCH devus esti enigita kiel CSE-tabelformulo premante Ctrl + Shift + Enter. En Excel 365, kiu subtenas dinamikajn tabelojn, ĝi ankaŭ funkcias kiel regula formulo.

    Por la detala klarigo de la formuloj, bonvolu vidi:

    • XLOOKUP kun multoblaj kriterioj
    • INDEX MATCH formulo kun pluraj kriterioj

    Kiel uzu VLOOKUP por akiri 2-an, 3-an aŭ n-an kongruon

    Kiel vi jam scias, Excel VLOOKUP povas alporti nur unu kongruan valoron, pli precize, ĝi resendas la unuan trovitan kongruon. Sed kio se estas pluraj kongruoj en via serĉa tabelo kaj vi volas ricevi la duan aŭ trian okazon? La tasko sonas sufiĉe komplika, sed la solvo ja ekzistas!

    Formulo 1. Vlookup N-a okazo

    Supozi vi havas klientajn nomojn en unu kolumno, la produktojn kiujn ili aĉetis en alia, kaj vi serĉas por trovi la 2-an aŭ 3-an produkton aĉetitan de donita kliento.

    La plej simpla maniero estas aldoni helpan kolumnon maldekstre de la tabelo kiel ni faris en la unua ekzemplo. Sed ĉi-foje, ni plenigos ĝin per klientaj nomoj kaj apernombroj kiel " John Doe1 ", " John Doe2 ", ktp.

    Por ricevi la aperon, uzu la funkcion COUNTIF kun miksa intervalreferenco (la unua referenco estas absoluta kaj la dua estas relativa kiel $B$2:B2). Ĉar la relativa referenco ŝanĝiĝas surbaze de pozicio de la ĉelo kie la formulo estas kopiita, en vico 3 ĝi fariĝos $B$2:B3, en vico 4 -$B$2:B4, kaj tiel plu.

    Ligita kun la klientonomo (B2), la formulo prenas ĉi tiun formon:

    =B2&COUNTIF($B$2:B2, B2)

    La supra formulo iras al A2 , kaj poste vi kopiu ĝin al tiom da ĉeloj kiom necesas.

    Post tio, enigu la celnomon kaj apernombron en apartaj ĉeloj (F1 kaj F2), kaj uzu la suban formulon por Vserĉi specifan aperon:

    =VLOOKUP(F1&F2, A2:C11, 3, FALSE)

    Formulo 2. Vserĉo 2-a okazo

    Se vi serĉas la 2-an okazon de la serĉvaloro, tiam vi povas fari sen la helpa kolumno. Anstataŭe, kreu la tabelan tabelon dinamike uzante la INDIREKTA funkcion kune kun MATCH:

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11"), 2, FALSE)

    Kie:

    • E1 estas la serĉvaloro
    • A2:A11 estas la serĉa intervalo
    • B11 estas la lasta (malsupre-dekstra) ĉelo de la serĉtabelo

    Bonvolu noti, ke la supra formulo estas skribita por specifa kazo kie datumĉeloj en la serĉtabelo komenciĝas en la vico 2. Se via tabelo estas ie en la mezo de la folio, uzu ĉi tiun universalan formulon, kie A1 estas la supra maldekstra ĉelo de la serĉtabelo enhavanta. kolumna kaplinio:

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+1+ROW(A1))&":B11"), 2, FALSE)

    Kiel ĉi tiu formulo funkcias

    Jen la ŝlosila parto de la formulo, kiu kreas dinamikan vserĉan gamon :

    INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11")

    La MATCH-funkcio agordita por ĝusta kongruo (0 en la lasta argumento) komparas la celnomon (E1) kun la listo de nomoj (A2:A11) kaj redonas la pozicion de la unua trovita. matĉo, kiu estas 3en nia kazo. Ĉi tiu nombro estos uzata kiel la komenca vica koordinato por la vserĉa gamo, do ni aldonas 2 al ĝi (+1 por ekskludi la unuan okazon kaj +1 por ekskludi vicon 1 kun la kolumnaj kaplinioj). Alternative, vi povas uzi 1+ROW(A1) por kalkuli la necesan alĝustigon aŭtomate surbaze de la pozicio de la kaplinio (A1 en nia kazo).

    Kiel rezulto, ni ricevas la sekvan tekstan ĉenon, kiu INDIREKTA konvertas al intervalreferenco:

    INDIRECT("A"&5&":B11") -> A5:B11

    Ĉi tiu intervalo iras al la argumento table_array de VLOOKUP devigante ĝin komenci serĉi en la vico 5, forlasante la unuan okazon de la serĉvaloro:

    VLOOKUP(E1, A5:B11, 2, FALSE)

    Kiel Vserĉi kaj redoni plurajn valorojn en Excel

    La Excel VLOOKUP funkcio estas desegnita por redoni nur unu kongruo. Ĉu ekzistas maniero por Vlookup plurajn okazojn? Jes, ekzistas, kvankam ne facila. Ĉi tio postulas kombinitan uzon de pluraj funkcioj kiel INDEX, SMALL kaj ROW estas tabelformulo.

    Ekzemple, la malsupre povas trovi ĉiujn aperon de la serĉvaloro F2 en la serĉintervalo B2:B16 kaj redoni multoblajn. kongruoj el kolumno C:

    {=IFERROR(INDEX($C$2:$C$11, SMALL(IF($F$1=$B$2:$B$11, ROW($C$2:$C$11)-1,""), ROW()-1)),"")}

    Estas 2 manieroj enigi la formulon en via laborfolio:

    1. Tajpu la formulon en la unua ĉelo, premu Ctrl + Shift + Enigu , kaj tiam trenu ĝin malsupren al kelkaj pliaj ĉeloj.
    2. Elektu plurajn apudajn ĉelojn en ununura kolumno (F1:F11 en la ekrankopio sube), tajpu la formulon kaj premu Ctrl +Maj + Enigu por kompletigi ĝin.

    Ĉiuokaze, la nombro da ĉeloj en kiuj vi enigas la formulon devus esti egala aŭ pli granda ol la maksimuma nombro da eblaj kongruoj.

    Por la detala klarigo de la formullogiko kaj pliaj ekzemploj, bonvolu vidi Kiel VLOOKUP plurajn valorojn en Excel.

    Kiel VLookup en vicoj kaj kolumnoj (dudirekta serĉo)

    Dudirekta serĉo (alinome matrica serĉo 2-dimenta serĉo ) estas eleganta vorto por serĉi valoron ĉe la intersekco de certa vico kaj kolumno. Estas kelkaj malsamaj manieroj fari dudimensian serĉon en Excel, sed ĉar la fokuso de ĉi tiu lernilo estas sur la funkcio VLOOKUP, ni nature uzos ĝin.

    Por ĉi tiu ekzemplo, ni prenos la sube. tabelo kun monataj vendoj kaj ellaboru VLOOKUP-formulon por retrovi la vendan ciferon por specifa objekto en difinita monato.

    Kun eronnomoj en A2:A9, monatnomoj en B1:F1, la cela objekto en I1 kaj la celmonato en I2, la formulo iras jene:

    =VLOOKUP(I1, A2:F9, MATCH(I2, A1:F1, 0), FALSE)

    Kiel ĉi tiu formulo funkcias

    La kerno de la formulo estas la norma VLOOKUP-funkcio, kiu serĉas ĝustan kongruon al la serĉvaloro en I1. Sed ĉar ni ne scias en kiu precize kolumno estas la vendoj por specifa monato, ni ne povas provizi la kolumnon-numeron rekte al la argumento col_index_num . Por trovi tiun kolumnon, ni uzas la sekvan MATCHfunkcio:

    MATCH(I2, A1:F1, 0)

    Tradukita en la anglan, la formulo diras: serĉu la I2-valoron en A1:F1 kaj redonu ĝian relativan pozicion en la tabelo. Provizante 0 al la 3-a argumento, vi instrukcias MATCH trovi la valoron ĝuste egala al la serĉvaloro (estas kiel uzi FALSE por la argumento range_lookup de VLOOKUP).

    Ekde Mar estas en la 4-a kolumno en la serĉa tabelo, la MATCH-funkcio liveras 4, kiu iras rekte al la argumento col_index_num de VLOOKUP:

    VLOOKUP(I1, A2:F9, 4, FALSE)

    Bonvolu atentu, ke kvankam la monataj nomoj komenciĝas en kolumno B, ni uzas A1:I1 por la serĉa tabelo. Ĉi tio estas farita por ke la nombro resendita de MATCH respondu al la pozicio de la kolumno en table_array de VLOOKUP.

    Por lerni pliajn manierojn fari matrican serĉon en Excel, bonvolu vidi INDEX MATCH MATCH. kaj aliaj formuloj por 2-dimensia serĉo.

    Kiel fari plurajn Vserĉon en Excel (nestita Vserĉo)

    Foje povas okazi, ke via ĉefa tabelo kaj serĉtabelo ne havas ununuran kolumnon en komuna, kiu malhelpas vin fari Vserĉon inter du tabeloj. Tamen ekzistas alia tabelo, kiu ne enhavas la informojn, kiujn vi serĉas, sed havas unu komunan kolumnon kun la ĉefa tabelo kaj alian komunan kolumnon kun la serĉtabelo.

    En la suba bildo ilustras la situacion:

    La celo estas kopii prezojn al la ĉefa tabelo bazita sur Identigiloj . La problemo estas, ke la tabelo enhavanta prezojn ne havas la Identigilojn , tio signifas, ke ni devos fari du Vserĉojn en unu formulo.

    Por komforto, ni kreu kelkajn unue nomitaj gamoj:

    • Serĉtabelo 1 nomiĝas Produktoj (D3:E10)
    • Serĉtabelo 2 nomiĝas Prezoj ( G3:H10 )

    La tabeloj povas esti en la sama aŭ malsamaj laborfolioj.

    Kaj nun ni faros la tiel nomatan duoblan Vserĉon. , alinome nestita Vserĉo .

    Unue, faru VLOOKUP-formulon por trovi la produktonomon en la Serĉtabelo 1 (nomita Produktoj ) bazita sur la ero id (A3):

    =VLOOKUP(A3, Products, 2, FALSE)

    Sekva, metu la supran formulon en la argumenton serĉa_valoro de alia funkcio VLOOKUP por tiri prezojn de Serĉtabelo 2 (nomita ). Prezoj ) surbaze de la produktonomo resendita de la nestita VLOOKUP:

    =VLOOKUP(VLOOKUP(A3, Products, 2, FALSE), Prices, 2, FALSE)

    La ekrankopio malsupre montras nian nestitan VLookup-formulon en ago:

    Kiel Vserĉi plurajn foliojn dinamike

    Kelkfoje, y Vi povas havi datumojn en la sama formato dividitaj en pluraj laborfolioj. Kaj via celo estas eltiri datumojn de specifa folio depende de la ŝlosila valoro en donita ĉelo.

    Ĉi tio povas esti pli facile komprenebla el ekzemplo. Ni diru, ke vi havas kelkajn regionajn vendajn raportojn en la sama formato, kaj vi serĉas akiri la vendajn ciferojn por specifa produkto en certaj

    Michael Brown estas diligenta teknologia entuziasmulo kun pasio por simpligi kompleksajn procezojn uzante programarajn ilojn. Kun pli ol jardeko da sperto en la teknologia industrio, li perfektigis siajn kapablojn en Microsoft Excel kaj Outlook, same kiel Google Sheets kaj Docs. La blogo de Mikaelo estas dediĉita al kunhavigi siajn sciojn kaj kompetentecon kun aliaj, provizante facilajn sekvajn konsiletojn kaj lernilojn por plibonigi produktivecon kaj efikecon. Ĉu vi estas sperta profesiulo aŭ komencanto, la blogo de Mikaelo ofertas valorajn komprenojn kaj praktikajn konsilojn por eltiri la plej multajn el ĉi tiuj esencaj programaj iloj.