Змест
Гэтыя прыклады навучаць вас, як рабіць ВПР па некалькіх крытэрыях, вяртаць пэўны асобнік або ўсе супадзенні, рабіць дынамічны ВПР на некалькіх аркушах і г.д.
Гэта другая частка серыі, якія дапамогуць вам выкарыстоўваць магчымасці 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 спосабы ўвесці формулу ў працоўны ліст:
- Увядзіце формулу ў першую ячэйку, націсніце Ctrl + Shift + Enter , а потым перацягніце яго ўніз да некалькіх вочак.
- Вылучыце некалькі суседніх вочак у адным слупку (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 у дзеянні:
Як дынамічна шукаць некалькі аркушаў у ВПР
Часам, у Вы можаце мець дадзеныя ў тым жа фармаце, падзеленыя на некалькі лістоў. І ваша мэта складаецца ў тым, каб атрымаць дадзеныя з пэўнага аркуша ў залежнасці ад значэння ключа ў дадзенай ячэйцы.
Гэта можа быць лягчэй зразумець з прыкладу. Дапусцім, у вас ёсць некалькі рэгіянальных справаздач аб продажах у аднолькавым фармаце, і вы хочаце атрымаць лічбы продажаў для пэўнага прадукту ў пэўным