Пашыраны ВПР у Excel: множны, двайны, укладзены

  • Падзяліцца Гэтым
Michael Brown

Гэтыя прыклады навучаць вас, як рабіць ВПР па некалькіх крытэрыях, вяртаць пэўны асобнік або ўсе супадзенні, рабіць дынамічны ВПР на некалькіх аркушах і г.д.

Гэта другая частка серыі, якія дапамогуць вам выкарыстоўваць магчымасці Excel VLOOKUP. Прыклады паказваюць, што вы ведаеце, як працуе гэтая функцыя. Калі няма, то разумна пачаць з базавага выкарыстання VLOOKUP у Excel.

Перш чым рухацца далей, дазвольце мне коратка нагадаць вам сінтаксіс:

VLOOKUP(значэнне_пошуку, масіў_табліцы, нумар_індэкса_слупка, [прагляд_дыяпазону] )

Цяпер, калі ўсе на адной старонцы, давайце больш уважліва разгледзім прыклады пашыранай формулы VLOOKUP:

    Як зрабіць VLOOKUP па некалькіх крытэрыях

    Excel Функцыя VLOOKUP вельмі карысная, калі справа даходзіць да пошуку пэўнага значэння ў базе дадзеных. Аднак у ім адсутнічае важная асаблівасць - яго сінтаксіс дазваляе толькі адно значэнне пошуку. Але што, калі вы хочаце знайсці некалькі ўмоў? Ёсць некалькі розных рашэнняў на выбар.

    Формула 1. VLOOKUP з двума крытэрамі

    Выкажам здагадку, што ў вас ёсць спіс заказаў і вы хочаце знайсці колькасць на аснове 2 крытэрыяў, Імя кліента і Прадукт . Ускладняючым фактарам з'яўляецца тое, што кожны кліент заказваў некалькі прадуктаў, як паказана ў табліцы ніжэй:

    Звычайная формула VLOOKUP не будзе працаваць у гэтай сітуацыі, таму што яна вяртае першы знойдзены адпаведнасць на аснове aрэгіёны:

    Як і ў папярэднім прыкладзе, мы пачынаем з вызначэння некалькіх назваў:

    • Дыяпазон A2:B5 на аркушы CA называецца CA_Sales .
    • Дыяпазон A2:B5 на аркушы FL называецца FL_Sales .
    • Дыяпазон A2:B5 на аркушы KS называецца KS_Sales .

    Як бачыце, усе названыя дыяпазоны маюць агульную частку ( Sales ) і унікальныя часткі ( CA , FL , KS ). Калі ласка, не забудзьцеся назваць свае дыяпазоны падобным чынам, бо гэта вельмі важна для формулы, якую мы збіраемся пабудаваць.

    Формула 1. УСКОСНАЯ ВЫГЛЯД для дынамічнага атрымання даных з розных аркушаў

    Калі ваша задача для атрымання дадзеных з некалькіх аркушаў, формула VLOOKUP INDIRECT з'яўляецца лепшым рашэннем - кампактная і лёгкая для разумення.

    У гэтым прыкладзе мы арганізуем зводную табліцу такім чынам:

    • Увядзіце цікавыя прадукты ў A2 і A3. Гэта нашы значэнні пошуку.
    • Увядзіце ўнікальныя часткі названых дыяпазонаў у B1, C1 і D1.

    А цяпер мы злучаем ячэйку, якая змяшчае ўнікальную частку (B1) з агульнай часткай ("_Sales") і перадаць атрыманы радок у INDIRECT:

    INDIRECT(B$1&"_Sales")

    Функцыя INDIRECT пераўтворыць радок у імя, якое Excel можа зразумець, і вы змяшчаеце яго ў аргумент table_array VLOOKUP:

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

    Прыведзеная вышэй формула пераходзіць да B2, а затым вы капіюеце яе ўніз і направа.

    Калі ласка звярніце ўвагу, што ў значэнні пошуку ($A2),мы заблакавалі каардынаты слупка з абсалютнай спасылкай на ячэйку, так што слупок застаецца фіксаваным, калі формула капіюецца справа. У спасылцы B$1 мы заблакіравалі радок, таму што мы хочам, каб каардынаты слупка змяніліся і паставілі адпаведную частку імя ў INDIRECT у залежнасці ад слупка, у які капіюецца формула:

    Калі ваша галоўная табліца арганізавана па-іншаму, значэнні пошуку ў радку і ўнікальныя часткі імёнаў дыяпазонаў у слупку, то вы павінны зафіксаваць каардынаты радка ў значэнні пошуку (B$1) і каардынаты слупка ў частках назвы ($A2):

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

    Формула 2. VLOOKUP і ўкладзеныя IF для пошуку некалькіх аркушаў

    У сітуацыі, калі ў вас ёсць толькі два ці тры аркушы пошуку, вы можаце выкарыстоўваць даволі простую формулу VLOOKUP з укладзенымі функцыямі IF, каб выбраць правільны аркуш на аснове значэння ключа ў пэўнай ячэйцы:

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

    Дзе $A2 гэта значэнне пошуку (імя элемента), а B$1 - значэнне ключа (стан):

    У гэтым выпадку вам неабавязкова вызначаць імёны і можна выкарыстоўваць знешні спасылкі для спасылкі на іншы аркуш або кнігу.

    Для дадатковай формулы exa mples, глядзіце, як выкарыстоўваць ВПР на некалькіх аркушах у Excel.

    Вось як выкарыстоўваць ВПР у Excel. Я дзякую вам за чытанне і спадзяюся ўбачыць вас у нашым блогу на наступным тыдні!

    Практычны сшытак для спампоўкі

    Пашыраныя прыклады формул VLOOKUP (.xlsxфайл)

    адзінае значэнне пошуку, якое вы вызначаеце.

    Каб пераадолець гэта, вы можаце дадаць дапаможны слупок і аб'яднаць значэнні з двух слупкоў пошуку ( Кліент і Прадукт ). Важна, каб дапаможны слупок быў самым левым слупком у таблічным масіве, таму што менавіта ў ім Excel VLOOKUP заўсёды шукае значэнне пошуку.

    Такім чынам, дадайце слупок злева ад вашага і скапіруйце прыведзеную ніжэй формулу ў гэты слупок. Гэта запоўніць дапаможны слупок значэннямі з слупкоў B і C (прабел аб'яднаны паміж імі для лепшай чытальнасці):

    =B2&" "&C2

    І затым выкарыстоўвайце стандартную формулу VLOOKUP і змясціце абодва крытэрыі ў аргуменце lookup_value , падзеленыя прабелам:

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

    Або ўвядзіце крытэрыі ў асобныя ячэйкі (G1 і G2 у нашым выпадку) і аб'яднайце іх ячэек:

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

    Паколькі мы хочам вярнуць значэнне са слупка D, які з'яўляецца чацвёртым у таблічным масіве, мы выкарыстоўваем 4 для col_index_num . Аргумент range_lookup мае значэнне FALSE для дакладнага супадзення Vlookup. На скрыншоце ніжэй паказаны вынік:

    Калі ваша табліца пошуку знаходзіцца на іншым аркушы , уключыце назву аркуша ў вашу формулу VLOOKUP. Напрыклад:

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

    У якасці альтэрнатывы стварыце найменны дыяпазон для табліцы пошуку (скажам, Заказы ), каб зрабіць формулу лягчэйшай для чытання:

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

    Для атрымання дадатковай інфармацыі, калі ласка, глядзіце, якПошук з іншага аркуша ў Excel.

    Заўвага. Каб формула працавала правільна, значэнні ў дапаможным слупку павінны быць аб'яднаны сапраўды гэтак жа, як і ў аргуменце lookup_value . Напрыклад, мы выкарыстоўвалі прабел для падзелу крытэрыяў як у дапаможным слупку (B2&" "&C2), так і ў формуле VLOOKUP (G1&" "&G2).

    Формула 2. Excel VLOOKUP з некалькімі ўмовамі

    Тэарэтычна вы можаце выкарыстоўваць прыведзены вышэй падыход да VLOOKUP больш чым па двух крытэрах. Аднак ёсць пара агаворак. Па-першае, значэнне пошуку абмежавана 255 сімваламі, а па-другое, дызайн аркуша можа не дазваляць дадаць дапаможны слупок.

    На шчасце, Microsoft Excel часта дае больш чым адзін спосаб зрабіць адно і тое ж. Для Vlookup па некалькіх крытэрыях вы можаце выкарыстоўваць камбінацыю INDEX MATCH або функцыю XLOOKUP, нядаўна прадстаўленую ў Office 365.

    Напрыклад, для пошуку на аснове 3 розных значэнняў ( Дата , Імя кліента і Прадукт ), выкарыстоўвайце адну з наступных формул:

    =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)

    Дзе:

    • G1 - крытэрый 1 (дата)
    • G2 - крытэрый 2 (імя кліента)
    • G3 - гэта крытэрый 3 (прадукт)
    • A2:A11 - пошук дыяпазон 1 (даты)
    • B2:B11 - гэта дыяпазон пошуку 2 (імёны кліентаў)
    • C2:C11 - гэта дыяпазон пошуку 3 (прадукты)
    • D2:D11 - гэта вяртанне дыяпазон (колькасць)

    Заўвага. Ва ўсіх версіях, акрамя Excel 365, INDEXMATCH трэба ўвесці як формулу масіва CSE, націснуўшы Ctrl + Shift + Enter. У Excel 365, які падтрымлівае дынамічныя масівы, ён таксама працуе як звычайная формула.

    Для падрабязнага тлумачэння формул глядзіце:

    • XLOOKUP з некалькімі крытэрыямі
    • Формула INDEX MATCH з некалькімі крытэрыямі

    Як выкарыстоўвайце VLOOKUP, каб атрымаць 2-е, 3-е або n-е супадзенне

    Як вы ўжо ведаеце, Excel VLOOKUP можа атрымаць толькі адно адпаведнае значэнне, дакладней, яно вяртае першае знойдзенае супадзенне. Але што, калі ёсць некалькі супадзенняў у вашым масіве пошуку, і вы хочаце атрымаць другі або трэці асобнік? Задача гучыць даволі складана, але рашэнне існуе!

    Формула 1. Vlookup N-ы асобнік

    Выкажам здагадку, што ў вас ёсць імёны кліентаў у адным слупку, прадукты, якія яны набылі, у іншым, і вы шукаеце каб знайсці 2-і ці 3-ці прадукт, набыты дадзеным кліентам.

    Самы просты спосаб - дадаць дапаможны слупок злева ад табліцы, як мы зрабілі ў першым прыкладзе. Але на гэты раз мы запоўнім яго імёнамі кліентаў і нумарамі ўваходжанняў, напрыклад " Джон Доу1 ", " Джон Доу2 " і г.д.

    Каб атрымаць ўваходжанне, выкарыстоўваць функцыю COUNTIF са спасылкай змешанага дыяпазону (першая спасылка абсалютная, а другая адносная, як $B$2:B2). Паколькі адносная спасылка змяняецца ў залежнасці ад пазіцыі ячэйкі, у якую капіюецца формула, у радку 3 яна стане $B$2:B3, у радку 4 -$B$2:B4 і гэтак далей.

    Злучаная з імем кліента (B2), формула прымае наступны выгляд:

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

    Вышэйзгаданая формула пераходзіць да A2 , а затым вы скапіруеце яго ў столькі ячэек, колькі неабходна.

    Пасля гэтага ўвядзіце мэтавае імя і нумар ўваходжання ў асобныя ячэйкі (F1 і F2) і выкарыстоўвайце наступную формулу для Vlookup канкрэтнага ўваходжання:

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

    Формула 2. Другі выпадак ВПР

    Калі вы шукаеце 2-і асобнік значэння пошуку, вы можаце абыходзіцца без дапаможнага слупка. Замест гэтага стварыце таблічны масіў дынамічна, выкарыстоўваючы функцыю INDIRECT разам з MATCH:

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

    Дзе:

    • E1 з'яўляецца пошукавым значэннем
    • A2:A11 - гэта дыяпазон пошуку
    • B11 - апошняя (правая ніжняя) ячэйка табліцы пошуку

    Звярніце ўвагу, што прыведзеная вышэй формула напісана для канкрэтнага выпадку, калі ячэйкі дадзеных у табліцы пошуку пачынаюцца ў радку 2. Калі ваша табліца знаходзіцца дзесьці пасярэдзіне аркуша, выкарыстоўвайце гэту універсальную формулу, дзе A1 - верхняя левая ячэйка табліцы пошуку, якая змяшчае загаловак слупка:

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

    Як працуе гэтая формула

    Вось ключавая частка формулы, якая стварае дыяпазон дынамічнага прагляду :

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

    Функцыя MATCH, наладжаная на дакладнае супадзенне (0 у апошнім аргументе), параўноўвае мэтавае імя (E1) са спісам імёнаў (A2:A11) і вяртае пазіцыю першага знойдзенага матч, які 3у нашым выпадку. Гэты лік будзе выкарыстоўвацца ў якасці пачатковай каардынаты радка для дыяпазону ВПР, таму мы дадаем да яго 2 (+1, каб выключыць першы асобнік, і +1, каб выключыць радок 1 з загалоўкамі слупкоў). Акрамя таго, вы можаце выкарыстоўваць 1+ROW(A1), каб аўтаматычна вылічыць неабходную карэкціроўку ў залежнасці ад пазіцыі радка загалоўка (у нашым выпадку A1).

    У выніку мы атрымаем наступны тэкставы радок, які INDIRECT пераўтвараецца ў спасылку на дыяпазон:

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

    Гэты дыяпазон пераходзіць у аргумент table_array функцыі VLOOKUP, прымушаючы яго пачынаць пошук у радку 5, апускаючы першы асобнік шуканае значэнне:

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

    Як зрабіць VLOOkup і вярнуць некалькі значэнняў у Excel

    Функцыя Excel VLOOKUP прызначана для вяртання толькі аднаго супадзення. Ці ёсць спосаб Vlookup некалькіх асобнікаў? Так, ёсць, хоць і няпросты. Гэта патрабуе камбінаванага выкарыстання некалькіх функцый, такіх як INDEX, SMALL і ROW - формула масіва.

    Напрыклад, ніжэй можна знайсці ўсе ўваходжанні значэння пошуку F2 у дыяпазоне пошуку B2:B16 і вярнуць некалькі супадае са слупка C:

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

    Ёсць 2 спосабы ўвесці формулу ў працоўны ліст:

    1. Увядзіце формулу ў першую ячэйку, націсніце Ctrl + Shift + Enter , а потым перацягніце яго ўніз да некалькіх вочак.
    2. Вылучыце некалькі суседніх вочак у адным слупку (F1:F11 на скрыншоце ніжэй), увядзіце формулу і націсніце Ctrl +Shift + Enter, каб завяршыць.

    У любым выпадку, колькасць вочак, у якія вы ўводзіце формулу, павінна быць роўнай або большай за максімальную колькасць магчымых супадзенняў.

    Падрабязнае тлумачэнне логікі формулы і дадатковыя прыклады глядзіце ў раздзеле Як ВПР у некалькіх значэннях у Excel.

    Як ВПР у радках і слупках (двухбаковы пошук)

    Двухбаковы пошук (ён жа матрычны пошук або 2-мерны пошук ) - гэта мудрагелістае слова для пошуку значэння на скрыжаванні пэўны радок і слупок. Ёсць некалькі розных спосабаў выканання двухмернага пошуку ў Excel, але паколькі ў цэнтры ўвагі гэтага ўрока знаходзіцца функцыя VLOOKUP, мы, натуральна, будзем выкарыстоўваць яе.

    Для гэтага прыкладу мы возьмем наступнае: табліцу з штомесячнымі продажамі і распрацуйце формулу VLOOKUP, каб атрымаць лічбу продажаў для пэўнага тавару ў дадзеным месяцы.

    З назвамі тавараў у A2:A9, назвамі месяцаў у B1:F1, мэтавым таварам у I1 і мэтавы месяц у I2, формула выглядае наступным чынам:

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

    Як працуе гэтая формула

    Ядро формулы гэта стандартная функцыя VLOOKUP, якая шукае дакладнае супадзенне значэнню пошуку ў I1. Але паколькі мы не ведаем, у якім менавіта слупку знаходзяцца продажы за пэўны месяц, мы не можам даць нумар слупка непасрэдна ў аргумент col_index_num . Каб знайсці гэты слупок, мы выкарыстоўваем наступны MATCHfunction:

    MATCH(I2, A1:F1, 0)

    У перакладзе на англійскую мову формула кажа: знайдзіце значэнне I2 у A1:F1 і вярніце яго адносную пазіцыю ў масіве. Пастаўляючы 0 у трэці аргумент, вы загадваеце MATCH знайсці значэнне, дакладна роўнае значэнню пошуку (гэта падобна на выкарыстанне FALSE для аргумента range_lookup VLOOKUP).

    Паколькі Mar знаходзіцца ў 4-м слупку ў масіве пошуку, функцыя MATCH вяртае 4, які пераходзіць непасрэдна да аргументу col_index_num VLOOKUP:

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

    Калі ласка звярніце ўвагу, што хоць назвы месяцаў пачынаюцца ў слупку B, мы выкарыстоўваем A1:I1 для масіва пошуку. Гэта робіцца для таго, каб лік, які вяртаецца MATCH, адпавядаў пазіцыі слупка ў table_array VLOOKUP.

    Каб даведацца больш спосабаў выканання пошуку матрыц у Excel, глядзіце INDEX MATCH MATCH і іншыя формулы для 2-мернага пошуку.

    Як зрабіць некалькі ВПР у Excel (укладзенае ВПР)

    Часам можа здарыцца так, што ваша асноўная табліца і табліца пошуку не маюць ніводнага слупка ў агульны, які перашкаджае вам рабіць ВПР паміж двума табліцамі. Аднак існуе іншая табліца, якая не ўтрымлівае інфармацыі, якую вы шукаеце, але мае адзін агульны слупок з асноўнай табліцай і другі агульны слупок з табліцай пошуку.

    На малюнку ніжэй паказана сітуацыя:

    Мэта складаецца ў тым, каб скапіяваць цэны ў галоўную табліцу на аснове Ідэнтыфікатары элементаў . Праблема ў тым, што табліца, якая змяшчае цэны, не мае ідэнтыфікатараў тавараў , што азначае, што нам трэба будзе зрабіць два ВПР у адной формуле.

    Для зручнасці давайце створым пару спачатку названыя дыяпазоны:

    • Табліца пошуку 1 называецца Прадукты (D3:E10)
    • Табліца пошуку 2 называецца Цэны ( G3:H10 )

    Табліцы могуць знаходзіцца ў адным або розных аркушах.

    А цяпер мы выканаем так званы двайны ВПР , ён жа укладзены VLOOKUP .

    Спачатку стварыце формулу VLOOKUP, каб знайсці назву прадукту ў табліцы пошуку 1 (пад назвай Прадукты ) на аснове элемента ідэнтыфікатар (A3):

    =VLOOKUP(A3, Products, 2, FALSE)

    Затым увядзіце прыведзеную вышэй формулу ў аргумент lookup_value іншай функцыі VLOOKUP, каб атрымаць цэны з табліцы пошуку 2 (пад назвай Цэны ) у залежнасці ад назвы прадукту, якую вяртае ўкладзеная VLOOKUP:

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

    На скрыншоце ніжэй паказана наша ўкладзеная формула VLOOKUP у дзеянні:

    Як дынамічна шукаць некалькі аркушаў у ВПР

    Часам, у Вы можаце мець дадзеныя ў тым жа фармаце, падзеленыя на некалькі лістоў. І ваша мэта складаецца ў тым, каб атрымаць дадзеныя з пэўнага аркуша ў залежнасці ад значэння ключа ў дадзенай ячэйцы.

    Гэта можа быць лягчэй зразумець з прыкладу. Дапусцім, у вас ёсць некалькі рэгіянальных справаздач аб продажах у аднолькавым фармаце, і вы хочаце атрымаць лічбы продажаў для пэўнага прадукту ў пэўным

    Майкл Браўн - адданы энтузіяст тэхналогій, які любіць спрашчэнне складаных працэсаў з дапамогай праграмных інструментаў. Маючы больш чым дзесяцігадовы досвед працы ў індустрыі тэхналогій, ён удасканальваў свае навыкі ў Microsoft Excel і Outlook, а таксама ў Google Sheets і Docs. Блог Майкла прысвечаны таму, каб падзяліцца сваімі ведамі і вопытам з іншымі, даючы простыя ў выкананні парады і падручнікі для павышэння прадукцыйнасці і эфектыўнасці. Незалежна ад таго, з'яўляецеся вы дасведчаным прафесіяналам або пачаткоўцам, блог Майкла прапануе каштоўную інфармацыю і практычныя парады, каб атрымаць максімальную аддачу ад гэтых неабходных праграмных інструментаў.