VLOOKUP yfir mörg blöð í Excel með dæmum

  • Deildu Þessu
Michael Brown

Kennslan sýnir hvernig á að nota VLOOKUP aðgerðina til að afrita gögn úr öðru vinnublaði eða vinnubók, Vlookup í mörgum blöðum og fletta upp á virkan hátt til að skila gildum frá mismunandi blöðum í mismunandi reiti.

Þegar flett er upp einhverjum upplýsingum í Excel er það sjaldgæft tilvik þegar öll gögnin eru á sama blaði. Oftar verður þú að leita í mörgum blöðum eða jafnvel mismunandi vinnubókum. Góðu fréttirnar eru þær að Microsoft Excel býður upp á fleiri en eina leið til að gera þetta og slæmu fréttirnar eru þær að allar leiðirnar eru aðeins flóknari en venjuleg VLOOKUP formúla. En með aðeins smá þolinmæði munum við finna út úr þeim :)

    Hvernig á að VLOOKUP á milli tveggja blaða

    Til að byrja, við skulum rannsaka einfaldasta tilvikið - með því að nota VLOOKUP til að afrita gögn úr öðru vinnublaði. Það er mjög svipað venjulegri VLOOKUP formúlu sem leitar á sama vinnublaði. Munurinn er sá að þú setur nafn blaðsins inn í töflufylki rökin til að segja formúlunni þinni í hvaða vinnublaði uppflettisviðið er staðsett.

    Almenna formúlan fyrir VLOOKUP frá öðru blaði er sem hér segir:

    VLOOKUP(útlitsgildi, Sheet!svið, col_index_num, [sviðsleit])

    Sem dæmi skulum við draga sölutölurnar úr skýrslu Jan í Samantekt blað. Fyrir þetta skilgreinum við eftirfarandi rök:

    • Upplitsgildi eru í dálki A á Yfirlit blaði og viðVLOOKUP:

      VLOOKUP($A2, 'West'!$A$2:$C$6 , 2, FALSE)

      Að lokum, þessi mjög staðlaða VLOOKUP formúla leitar að A2 gildinu í fyrsta dálknum á bilinu A2:C6 á West blaði og skilar samsvörun úr 2. dálki. Það er það!

      Dynamísk VLOOKUP til að skila gögnum úr mörgum blöðum inn í mismunandi frumur

      Í fyrsta lagi skulum við skilgreina hvað nákvæmlega orðið „dýnamískt“ þýðir í þessu samhengi og hvernig þessi formúla verður frábrugðin þeim fyrri.

      Ef þú ert með stóra klumpa af gögnum á sama sniði sem skiptast á marga töflureikna, gætirðu viljað draga upplýsingar úr mismunandi blöðum í mismunandi reiti. Myndin hér að neðan sýnir hugmyndina:

      Ólíkt fyrri formúlunum sem sóttu gildi úr tilteknu blaði byggt á einstöku auðkenni, í þetta skiptið erum við að leita að því að draga gildi úr nokkrum blöðum á a. tíma.

      Það eru tvær mismunandi lausnir fyrir þetta verkefni. Í báðum tilfellum þarftu að gera smá undirbúningsvinnu og búa til nafngreind svið fyrir gagnafrumur í hverju uppflettiblaði. Fyrir þetta dæmi skilgreindum við eftirfarandi svið:

      • East_Sales - A2:B6 á East blaðinu
      • North_Sales - A2: B6 á Norðurblaði
      • Suðursala - A2:B6 á Suðurblaði
      • Vestursala - A2:B6 á Vesturblaði

      VLOOKUP og hreiðrað IF

      Ef þú hefur hæfilegan fjölda blaða til að fletta upp geturðu notað hreiðrað IF-aðgerðirtil að velja blaðið út frá leitarorðum í forskilgreindum hólfum (reitur B1 til D1 í okkar tilfelli).

      Með uppflettigildi í A2 er formúlan eftirfarandi:

      =VLOOKUP($A2, IF(B$1="east", East_Sales, IF(B$1="north", North_Sales, IF(B$1="south", South_Sales, IF(B$1="west", West_Sales)))), 2, FALSE)

      Þýtt á ensku, IF-hlutinn hljóðar svo:

      Ef B1 er Austur skaltu leita á sviðinu sem heitir East_Sales ; ef B1 er Norður skaltu leita á sviðinu sem heitir Norður_Sala ; ef B1 er Suður skaltu leita á sviðinu sem heitir South_Sales ; og ef B1 er Vestur skaltu leita í sviðinu sem heitir West_Sales .

      Bilið sem IF skilar fer í töflufylki í VLOOKUP, sem dregur samsvarandi gildi úr 2. dálki á samsvarandi blaði.

      Snjöll notkun á blönduðum tilvísunum fyrir uppflettingargildið ($A2 - algildur dálkur og hlutfallsleg röð) og rökrétt próf á IF (B$1 - hlutfallslegur dálkur) og alger röð) gerir kleift að afrita formúluna í aðrar frumur án nokkurra breytinga - Excel stillir tilvísanir sjálfkrafa út frá hlutfallslegri staðsetningu raða og dálks.

      Svo, við sláum formúlunni inn í B2, afritum hana til hægri og niður í eins marga dálka og raðir og þörf krefur, og fáðu eftirfarandi niðurstöðu:

      ÓBEIN ÚTLIT

      Þegar unnið er með mörg blöð gætu mörg hreiður stig gert formúluna líka langur og erfiður aflestrar. Miklu betri leið er að búa til dynamic vlookup range með hjálp INDIRECT:

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

      Hér sameinum við tilvísunina í reitinn sem inniheldureinstaka hluti af nafngreindu sviði (B1) og sameiginlega hlutanum (_Sales). Þetta framleiðir textastreng eins og "East_Sales", sem INDIRECT breytir í sviðsheitið sem Excel er skiljanlegt.

      Þar af leiðinni færðu þétta formúlu sem virkar fallega á hvaða fjölda blaða sem er:

      Svona á að fletta á milli blaða og skráa í Excel. Ég þakka þér fyrir lesturinn og vonast til að sjá þig á blogginu okkar í næstu viku!

      Æfingabók til niðurhals

      Vlookup mörg blöð dæmi (.xlsx skrá)

      vísa til fyrsta gagnahólfsins, sem er A2.
    • Table_array er bilið A2:B6 á Jan blaðinu. Til að vísa í það skaltu setja forskeyti sviðstilvísunarinnar með nafni blaðsins og síðan upphrópunarmerki: Jan!$A$2:$B$6.

      Vinsamlegast athugaðu að við læsum sviðinu með algerum frumutilvísunum til að koma í veg fyrir að það breytist þegar formúlan er afrituð í aðrar frumur.

      Col_index_num er 2 vegna þess að við viljum afrita gildi úr dálki B, sem er 2. dálkur í töflufylkingunni.

    • Range_lookup er stillt á FALSE til að fletta upp nákvæmri samsvörun.

    Þegar rökin eru sett saman fáum við þessa formúlu:

    =VLOOKUP(A2, Jan!$A$2:$B$6, 2, FALSE)

    Dragðu formúluna niður í dálkinn og þú færð þessa niðurstöðu:

    Í a á svipaðan hátt geturðu leitað að gögnum úr feb og mar blöðunum:

    =VLOOKUP(A2, Feb!$A$2:$B$6, 2, FALSE)

    =VLOOKUP(A2, Mar!$A$2:$B$6, 2, FALSE)

    Ábendingar og athugasemdir:

    • Ef nafn blaðsins inniheldur bil eða stafrófslausa stafi verður það að vera innan gæsalappa, eins og 'Jan Sales'!$A$2:$B$6 . Fyrir frekari upplýsingar, vinsamlegast sjá Hvernig á að vísa til annars blaðs í Excel.
    • Í stað þess að slá inn nafn blaðs beint í formúlu geturðu skipt yfir í uppflettivinnublaðið og valið svið þar. Excel mun setja inn tilvísun með réttri setningafræði sjálfkrafa, sem sparar þér vandræðin við að athuga nafnið og bilanaleit.

    Vútlit úr annarri vinnubók

    Til VLOOKUP á milli tveggjavinnubækur, settu skráarnafnið inn í hornklofa, á eftir nafni blaðsins og upphrópunarmerki.

    Til dæmis, til að leita að A2 gildi á bilinu A2:B6 á Jan blaði í Sales_reports.xlsx vinnubókina, notaðu þessa formúlu:

    =VLOOKUP(A2, [Sales_reports.xlsx]Jan!$A$2:$B$6, 2, FALSE)

    Fyrir allar upplýsingar, vinsamlegast sjá VLOOKUP úr annarri vinnubók í Excel.

    Vlookup across mörg blöð með IFERROR

    Þegar þú þarft að fletta upp á milli fleiri en tveggja blaða er auðveldasta lausnin að nota VLOOKUP ásamt IFERROR. Hugmyndin er að hreiðra um nokkur IFERROR aðgerðir til að athuga mörg vinnublöð eitt í einu: ef fyrsta VLOOKUP finnur ekki samsvörun á fyrsta blaði, leitaðu í næsta blaði, og svo framvegis.

    IFERROR(VLOOKUP(…), IFERROR(VLOOKUP(…), …, " Finnst ekki "))

    Til að sjá hvernig þessi nálgun virkar á raunverulegum gögnum skulum við íhuga eftirfarandi dæmi. Hér fyrir neðan er Yfirlit taflan sem við viljum fylla út vöruheiti og upphæðir með því að fletta upp pöntunarnúmerinu í West og East blöðum:

    Fyrst ætlum við að draga hlutina. Fyrir þetta fyrirmælum við VLOOKUP formúlunni að leita að pöntunarnúmerinu í A2 á East blaði og skila gildinu úr dálki B (2. dálkur í töflufylki A2:C6). Ef nákvæm samsvörun finnst ekki skaltu leita í West blaðinu. Ef báðar Vlookups mistakast, skilaðu „Ekki fannst“.

    =IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 2, FALSE), "Not found"))

    Til að skila upphæðinni,breyttu einfaldlega dálkvísitölunni í 3:

    =IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 3, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 3, FALSE), "Not found"))

    Ábending. Ef þörf krefur geturðu tilgreint mismunandi töflufylki fyrir mismunandi VLOOKUP aðgerðir. Í þessu dæmi eru bæði uppflettiblöðin með sama fjölda lína (A2:C6), en vinnublöðin þín geta verið mismunandi að stærð.

    Vlookup í mörgum vinnubókum

    Til að fletta á milli tveggja eða fleiri vinnubóka skaltu setja nafn vinnubókarinnar innan hornklofa og setja það á undan nafni blaðsins. Til dæmis, hér er hvernig þú getur Vlookup í tvær mismunandi skrár ( Bók1 og Bók2 ) með einni formúlu:

    =IFERROR(VLOOKUP(A2, [Book1.xlsx]East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, [Book2.xlsx]West!$A$2:$C$6, 2, FALSE),"Not found"))

    Gerðu dálkavísitölu virka í Vlookup marga dálka

    Í aðstæðum þegar þú þarft að skila gögnum úr nokkrum dálkum gæti það sparað þér tíma að gera col_index_num virkan. Það eru nokkrar breytingar sem þarf að gera:

    • Fyrir col_index_num frumbreytuna, notaðu COLUMNS fallið sem skilar fjölda dálka í tilteknu fylki: COLUMNS($A$1 :B$1). (Línuhnitin skiptir ekki öllu máli, það getur verið hvaða röð sem er.)
    • Í lookup_value röksemdinni skaltu læsa dálktilvísuninni með $ tákninu ($A2), svo hún haldist lagað þegar formúlan er afrituð yfir í aðra dálka.

    Í kjölfarið færðu eins konar kraftmikla formúlu sem dregur út samsvarandi gildi úr mismunandi dálkum, allt eftir því í hvaða dálk formúlan er afrituð:

    =IFERROR(VLOOKUP($A2, East!$A$2:$C$6, COLUMNS($A$1:B$1), FALSE), IFERROR(VLOOKUP($A2, West!$A$2:$C$6, COLUMNS($A$1:B$1), FALSE), "Not found"))

    Þegar það er slegið inn í dálk B, COLUMNS($A$1:B$1)metur til 2 sem segir VLOOKUP að skila gildi úr 2. dálki í töflufylkingunni.

    Þegar það er afritað í dálk C (þ.e.a.s. þú hefur dregið formúluna frá B2 til C2), breytist B$1 í C$1 vegna þess að dálkvísunin er afstæð. Þar af leiðandi metur COLUMNS($A$1:C$1) til 3 og neyðir VLOOKUP til að skila gildi úr 3. dálki.

    Þessi formúla virkar frábærlega fyrir 2 - 3 uppflettingarblöð. Ef þú ert með fleiri verða endurteknar IFERRORs of fyrirferðarmiklar. Næsta dæmi sýnir aðeins flóknari en miklu glæsilegri nálgun.

    Vlookup mörg blöð með ÓBEINU

    Ein leið í viðbót til að Vlookup á milli margra blaða í Excel er að nota blöndu af VLOOKUP og ÓBEINAR aðgerðir. Þessi aðferð krefst smá undirbúnings, en á endanum muntu hafa þéttari formúlu fyrir Vlookup í hvaða fjölda töflureikna sem er.

    Almenn formúla til að Vlookup yfir blöð er sem hér segir:

    VLOOKUP( upplitsgildi , INDIRECT("'"&INDEX( Upplitsblöð , MATCH(1, --(COUNTIF(INDIRECT("'" & Upplitsblöð & " '! uppflettingarsvið "), upplitsgildi )>0), 0)) & "'! töflufylki "), col_index_num , FALSE)

    Hvar:

    • Upplitsblöð - nafngreint svið sem samanstendur af nöfnum uppflettiblaða.
    • Upplitsgildi - gildi til að leita að.
    • Lookup_range - dálkasviðið í uppflettiblöðunum þar sem leitað er að uppflettingunnigildi.
    • Table_array - gagnasviðið í uppflettiblöðunum.
    • Col_index_num - númer dálksins í töflufylki sem á að skila gildi.

    Til að formúlan virki rétt skaltu hafa eftirfarandi fyrirvara í huga:

    • Þetta er fylkisformúla, sem þarf að ljúka með því að ýta á Ctrl + Shift + Enter lyklar saman.
    • Öll blöð verða að hafa sömu röð dálka .
    • Þar sem við notum eina töflufylki fyrir öll uppflettiblöð, tilgreindu stærsta svið ef blöðin þín eru með mismunandi fjölda raða.

    Hvernig á að nota formúluna til að fletta yfir blöð

    Til að fletta upp mörgum blöðum í einu skaltu framkvæma þessar skref:

    1. Skrifaðu niður öll nöfn uppflettiblaða einhvers staðar í vinnubókinni þinni og nefndu það svið ( Upplitsblöð í okkar tilfelli).

  • Breyttu almennu formúlunni fyrir gögnin þín. Í þessu dæmi munum við vera:
    • leit að A2 gildi ( leitargildi )
    • á bilinu A2:A6 ( leitarsvið ) í fjögur vinnublöð ( Austur , Norður , Suður og Vestur ), og
    • dragið samsvarandi gildi úr dálki B, sem er dálkur 2 ( col_index_num ) á gagnasviðinu A2:C6 ( table_array ).

    Með ofangreindum rökum tekur formúlan þessa lögun:

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets&"'!$A$2:$A$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), 2, FALSE)

    Vinsamlegast athugið að við læsum báðum sviðum ($A$2:$A$6 og $A$2:$C$6) með algerum frumutilvísunum.

  • Sláðu inn formúluí efsta reitnum (B2 í þessu dæmi) og ýttu á Ctrl + Shift + Enter til að ljúka því.
  • Tvísmelltu eða dragðu fyllihandfangið til að afrita formúluna niður í dálkinn.
  • Sem Niðurstaðan höfum við formúluna til að fletta upp pöntunarnúmerinu í 4 blöðum og sækja samsvarandi vöru. Ef tiltekið pöntunarnúmer finnst ekki birtist #N/A villa eins og í línu 14:

    Til að skila upphæðinni skaltu einfaldlega skipta út 2 fyrir 3 í col_index_num rök þar sem upphæðir eru í 3. dálki töflufylkisins:

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 3, FALSE)

    Ef þú vilt skipta út venjulegu #N/A villumerki fyrir þinn eigin texta, formúluna inn í IFNA fallið:

    =IFNA(VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 3, FALSE), "Not found")

    Skátu upp mörg blöð á milli vinnubóka

    Þessa almennu formúlu (eða hvaða afbrigði sem er) er líka hægt að nota til að fletta upp mörgum blöðum í öðru vinnubók . Fyrir þetta skaltu sameina heiti vinnubókarinnar inni í INDIRECT eins og sýnt er í formúlunni hér að neðan:

    =IFNA(VLOOKUP($A2, INDIRECT("'[Book1.xlsx]" & INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'[Book1.xlsx]" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 2, FALSE), "Not found")

    Vútlit á milli blaða og skila mörgum dálkum

    Ef þú vilt draga gögn úr nokkrum dálka, getur fjölfrumufylkisformúla gert það í einu lagi. Til að búa til slíka formúlu, gefðu upp fylkisfasta fyrir col_index_num röksemdin.

    Í þessu dæmi viljum við skila vöruheitunum (dálki B) og upphæðum (dálki C), sem eru 2. og 3. dálkur í töflufylkingunni, í sömu röð. Svo er nauðsynlegt fylki{2,3}.

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets &"'!$A$2:$C$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), {2,3}, FALSE)

    Til að slá inn formúluna rétt í mörgum hólfum þarftu að gera þetta:

    • Í fyrstu röð, veldu allar frumurnar sem á að fylla út (B2:C2 í dæminu okkar).
    • Sláðu inn formúluna og ýttu á Ctrl + Shift + Enter . Þetta færir sömu formúlu inn í valda reiti, sem mun skila mismunandi gildi í hverjum dálki.
    • Dragðu formúluna niður í þær línur sem eftir eru.

    Hvernig þessi formúla virkar

    Til að skilja betur rökfræðina skulum við skipta þessari grunnformúlu niður í einstakar aðgerðir:

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets&"'!$A$2:$A$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), 2, FALSE)

    Að vinna innanfrá og út, hér er það sem formúlan gerir:

    COUNTIF og INDIRECT

    Í stuttu máli byggir INDIRECT tilvísanir fyrir öll uppflettiblöð og COUNTIF telur tilvik uppflettingarinnar gildi (A2) í hverju blaði:

    --(COUNTIF( INDIRECT("'"&Lookup_sheets&"'!$A$2:$A$6"), $A2)>0)

    Nánar:

    Fyrst skaltu sameina sviðsheitið (Lookup_sheets) og sviðstilvísunina ($A$2: $A$6), sem bætir við frávikum og upphrópunarmerki á réttum stöðum til að gera ytri tilvísun, og færir textastrenginn sem myndast í INDIRECT aðgerðina til að vísa á virkan hátt í uppflettiblöðin:

    INDIRECT({"'East'!$A$2:$A$6"; "'South'!$A$2:$A$6"; "'North'!$A$2:$A$6"; "'West'!$A$2:$A$6"})

    COUNTIF athugar hvern reit á bilinu A2:A6 á hverju uppflettiblaði á móti gildinu í A2 á aðal blað og skilar fjölda leikja fyrir hvert blað. Í gagnasafninu okkar er pöntunarnúmerið í A2 (101) að finna á West blaðinu, sem er í 4.nefnt svið, þannig að COUNTIF skilar þessu fylki:

    {0;0;0;1}

    Næst berðu saman hverja einingu ofangreindrar fylkis með 0:

    --({0; 0; 0; 1}>0)

    Þetta gefur fylki af TRUE (stærra en 0) og FALSE (jafnt 0) gildum, sem þú þvingar upp í 1 og 0 með því að nota tvöfaldan unary (--), og færð eftirfarandi fylki sem niðurstöðu:

    {0; 0; 0; 1}

    Þessi aðgerð er auka varúðarráðstöfun til að takast á við aðstæður þegar uppflettiblað inniheldur nokkur tilvik af uppflettigildinu, en þá myndi COUNTIF skila tölu sem er stærri en 1, á meðan við viljum aðeins 1 og 0 í endanleg fylki (eftir augnablik, þú munt skilja hvers vegna).

    Eftir allar þessar umbreytingar lítur formúlan okkar svona út:

    VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, {0;0;0;1} , 0)) &"'!$A$2:$C$6"), 2, FALSE)

    INDEX og MATCH

    Á þessum tímapunkti stígur klassísk INDEX MATCH samsetning inn:

    INDEX(Lookup_sheets, MATCH(1, {0;0;0;1}, 0))

    MATCH fallið sem er stillt fyrir nákvæma samsvörun (0 í síðustu röksemdum) leitar að gildinu 1 í fylkinu { 0;0;0;1} og skilar stöðu sinni, sem er 4:

    INDEX(Lookup_sheets, 4)

    INDEX fallið notar töluna sem skilað er með MATCH sem línunúmerarrök (row_num), og skilar 4. gildinu í nefndu sviði Útlitsblöð , sem er West .

    Svo, formúlan minnkar enn frekar til:

    VLOOKUP($A2, INDIRECT("'"&" West "&"'!$A$2:$C$6"), 2, FALSE)

    VLOOKUP og INDIRECT

    INDIRECT aðgerðin vinnur úr textastrengnum inni í honum:

    INDIRECT("'"&"West"&"'!$A$2:$C$6")

    Og breytir honum inn í tilvísun sem fer í table_array rökin fyrir

    Michael Brown er hollur tækniáhugamaður með ástríðu fyrir því að einfalda flókna ferla með hugbúnaðarverkfærum. Með meira en áratug af reynslu í tækniiðnaðinum hefur hann aukið færni sína í Microsoft Excel og Outlook, sem og Google Sheets og Docs. Blogg Michael er tileinkað því að deila þekkingu sinni og sérfræðiþekkingu með öðrum, veita auðveld ráð og leiðbeiningar til að bæta framleiðni og skilvirkni. Hvort sem þú ert vanur fagmaður eða byrjandi, þá býður blogg Michaels upp á dýrmæta innsýn og hagnýt ráð til að fá sem mest út úr þessum nauðsynlegu hugbúnaðarverkfærum.