Змест
Калі вам трэба знайсці даныя ў вашым аркушы, якія адпавядаюць пэўнаму запісу ключа, звычайна вы звяртаецеся да Google Sheets VLOOKUP. Але вось: VLOOKUP амаль адразу накладае на вас абмежаванні. Вось чаму вам лепш павялічыць рэсурсы для гэтай задачы, вывучыўшы INDEX MATCH.
INDEX MATCH у Google Sheets - гэта спалучэнне дзвюх функцый: INDEX і MATCH. Пры выкарыстанні ў тандэме яны дзейнічаюць як лепшая альтэрнатыва Google Sheets VLOOKUP. Давайце даведаемся аб іх магчымасцях разам у гэтым паведамленні ў блогу. Але спачатку я хацеў бы даць вам кароткі агляд іх уласных роляў у электронных табліцах.
Функцыя Google Sheets MATCH
Я хацеў бы пачаць з Google Sheets MATCH, таму што гэта вельмі проста. Ён скануе вашы даныя на прадмет пэўнага значэння і вяртае іх пазіцыю:
=MATCH(ключ_пошуку, дыяпазон, [тып_пошуку])- ключ_пошуку гэта той запіс, які вы шукаеце. Абавязкова.
- дыяпазон - гэта радок або слупок для пошуку. Абавязкова.
Заўвага. MATCH прымае толькі аднамерныя масівы: радок або слупок.
- тып_пошуку неабавязковы і вызначае, ці павінна быць супадзенне дакладным ці прыблізным. Калі прапушчана, па змаўчанні роўна 1:
- 1 азначае, што дыяпазон адсартаваны ў парадку ўзрастання. Функцыя атрымлівае найбольшае значэнне, меншае або роўнае вашаму ключу пошуку .
- 0 прымусіць функцыю шукаць дакладнае супадзенне ў выпадку, калі ваш дыяпазон не адпавядаеадсартаваны.
- -1 намякае, што запісы ранжыруюцца з выкарыстаннем сартавання па змяншэнні. У гэтым выпадку функцыя атрымлівае найменшае значэнне, большае або роўнае вашаму ключу пошуку .
Вось прыклад: атрымаць пазіцыю пэўнага ягада ў спісе ўсіх ягад, мне патрэбна наступная формула MATCH у маіх табліцах Google:
=MATCH("Blueberry", A1:A10, 0)
функцыя INDEX Google Sheets
У той час як MATCH паказвае, дзе шукаць ваша значэнне (яго месцазнаходжанне ў дыяпазоне), функцыя INDEX Google Sheets сама атрымлівае значэнне на падставе зрушэнняў радка і слупка:
=INDEX(спасылка, [радок], [слупок])- спасылка - гэта дыяпазон для пошуку. Абавязковы.
- радок - гэта колькасць радкоў для зрушэння ад самай першай ячэйкі вашага дыяпазону . Неабавязкова, 0, калі прапушчана.
- слупок , гэтак жа як і радок , гэта колькасць слупкоў са зрушэннем. Таксама неабавязковы, таксама 0, калі ён апушчаны.
Калі вы ўкажаце абодва неабавязковыя аргументы (радок і слупок), Google Sheets INDEX верне запіс з ячэйкі прызначэння:
=INDEX(A1:C10, 7, 1)
Прапусціце адзін з гэтых аргументаў, і функцыя атрымае ўвесь радок або слупок адпаведна:
=INDEX(A1:C10, 7)
Як выкарыстоўваць INDEX MATCH у Google Sheets — прыклады формул
Калі INDEX і MATCH выкарыстоўваюцца разам у электронных табліцах, яны найбольш магутныя. Яны цалкам могуць замяніць Google Sheets VLOOKUP і атрымаць неабходны запіс з табліцы на асновеваша ключавое значэнне.
Стварыце сваю першую формулу INDEX MATCH для Google Sheets
Выкажам здагадку, што вы хочаце атрымаць інфармацыю аб запасах журавіны з той самай табліцы, якую я выкарыстоўваў вышэй. Я толькі памяняў месцамі слупкі B і C (крыху пазней вы даведаецеся, чаму).
- Цяпер усе ягады пералічаны ў слупку C. Функцыя Google Sheets MATCH дапаможа вам знайсці дакладны радок журавіны: 8
=MATCH("Cranberry", C1:C10, 0)
- Змесціце ўсю гэтую формулу MATCH у радок аргумент у функцыі INDEX:
=INDEX(A1:C10, MATCH("Cranberry", C1:C10, 0))
Гэта верне ўвесь радок з журавінамі ў ім.
- Але паколькі ўсё, што вам патрэбна, гэта інфармацыя пра запас, укажыце таксама нумар слупка пошуку: 3
=INDEX(A1:C10, MATCH("Cranberry", C1:C10,0), 2)
- Вуаля !
- Вы можаце пайсці далей і адмовіцца ад апошняга індыкатара ў слупку ( 2 ). Вам гэта зусім не спатрэбіцца, калі вы выкарыстоўваеце толькі слупок пошуку ( B1:B10 ), а не ўсю табліцу ( A1:C10 ) у якасці першага аргумента:
=INDEX(B1:B10, MATCH("Cranberry", C1:C10, 0))
Савет. Больш зручным спосабам праверыць наяўнасць розных ягад было б размясціць іх у выпадальным спісе ( E2 ) і накіраваць сваю функцыю MATCH да ячэйкі з гэтым спісам:
=INDEX(B1:B10, MATCH(E2, C1:C10, 0))
Пасля выбару ягады адпаведнае значэнне зменіцца адпаведна:
Чаму INDEX MATCH у Google Sheets лепш, чым VLOOKUP
Вы ўжо ведаеце, што Google Sheets INDEX MATCH шукае ваша значэнне ў табліцы і вяртае іншы адпаведны запіс з таго жшэраг. І вы ведаеце, што Google Sheets VLOOKUP робіць тое ж самае. Дык навошта турбавацца?
Справа ў тым, што INDEX MATCH мае некаторыя асноўныя перавагі перад VLOOKUP:
- Левы бок магчымы пошук . Раней я памяняў слупкі месцамі, каб праілюстраваць гэта: функцыя INDEX MATCH у Google Sheets можа выглядаць злева ад слупка пошуку і сапраўды выглядае. VLOOKUP заўсёды выконвае пошук у самым першым слупку дыяпазону і шукае супадзенні справа ад яго — у адваротным выпадку ён атрымлівае толькі памылкі #N/A:
- Няма пераблытання спасылкі пры даданні новых слупкоў і перамяшчэнні існуючых. Калі вы дадаеце або перамяшчаеце слупкі, INDEX MATCH аўтаматычна адлюстроўвае змены без умяшання ў вынік. Паколькі вы выкарыстоўваеце спасылкі на слупкі, яны імгненна карэктуюцца Табліцамі Google:
Паспрабуйце зрабіць гэта з дапамогай VLOOKUP: для слупка пошуку патрабуецца парадкавы нумар, а не спасылкі на ячэйкі. Такім чынам, вы проста атрымаеце няправільнае значэнне, таму што іншы слупок займае тое ж месца — слупок 2 у маім прыкладзе:
- Улічвае рэгістр тэксту пры неабходнасці (падрабязней пра гэта справа ніжэй).
- Можа быць выкарыстаны для вертыкальнага пошуку на аснове некалькіх крытэраў.
Я запрашаю вас паглядзець у апошніх двух пунктах падрабязна ніжэй.
V-пошук з улікам рэгістра з INDEX MATCH у Google Табліцах
INDEX MATCH - гэта выбар, калі справа даходзіць да рэгістраадчувальнасць.
Дапусцім, што ўсе ягады рэалізуюцца двума спосабамі — рассыпнымі (узважваюцца на прылаўку) і расфасаванымі ў скрыні. Такім чынам, у спісе ёсць два варыянты кожнай ягады, напісаныя ў розных рэгістрах, кожная з якіх мае свой ідэнтыфікатар, які таксама адрозніваецца ў залежнасці ад рэгістра:
Такім чынам, як вы можаце знайсці інфармацыя аб складзе ягады, якая прадаецца пэўным чынам? VLOOKUP верне першае імя, якое знойдзе, незалежна ад рэгістра.
На шчасце, INDEX MATCH для Google Sheets можа зрабіць гэта правільна. Вам проста трэба будзе выкарыстаць адну дадатковую функцыю — FIND або EXACT.
Прыклад 1. FIND для Vlookup з улікам рэгістра
FIND — функцыя з улікам рэгістра ў Табліцах Google, што робіць яе выдатнай для вертыкальнага пошуку з улікам рэгістра:
=ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))
Давайце паглядзім, што адбываецца ў гэтай формуле:
- FIND скануе слупок C ( C2:C19 ) для запісу з E2 ( cherry ) з улікам яго рэгістра. Пасля знаходжання формула "пазначае" гэтую ячэйку лічбай — 1 .
- MATCH шукае гэтую пазнаку — 1 — у тым самым слупку ( C ) і перадае нумар свайго радка INDEX.
- INDEX пераходзіць да гэтага радка ў слупку B ( B2:B19 ) і атрымлівае неабходны запіс для вас.
- Калі вы скончыце будаваць формулу, націсніце Ctrl+Shift+Enter, каб дадаць ArrayFormula ў пачатак. Гэта неабходна, таму што без яго FIND не зможа шукаць у масівах (больш чым у адной ячэйцы). Ці вы можаце ўвесці' ArrayFormula ' з вашай клавіятуры.
Прыклад 2. EXACT для VLOokup з улікам рэгістра
Калі вы заменіце FIND на EXACT, апошні будзе шукаць запісы з сапраўды такімі ж сімваламі, уключаючы рэгістр тэксту.
Адзіная розніца ў тым, што EXACT "пазначае" супадзенне TRUE , а не лічбай 1 . Такім чынам, першы аргумент для MATCH павінен быць TRUE :
=ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0)))
Google Sheets INDEX MATCH з некалькімі крытэрамі
Што рабіць, калі ёсць некалькі ўмоў, на падставе якіх вы хочаце атрымаць запіс?
Давайце праверым цану вішні , якая прадаецца ў PP вёдрах і ўжо заканчваецца :
Я размясціў усе крытэрыі ў выпадальных спісах у слупку F. І гэта INDEX Google Sheets MATCH, які падтрымлівае некалькі крытэрыяў, а не VLOOKUP. Вось формула, якую вам трэба будзе выкарыстоўваць:
=ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))
Не панікуйце! :) Яго логіка насамрэч даволі простая:
- CONCATENATE(F2:F4) аб'ядноўвае ўсе тры запісы з вочак з крытэрамі ў адзін радок, як гэта:
CherryPP bucketRunning out
Гэта ключ пошуку для MATCH, або, іншымі словамі, тое, што вы шукаеце ў табліцы.
- A2:A24&C2:C24&D2:D24 складаюць дыяпазон для пошуку функцыі MATCH. Паколькі ўсе тры крытэрыі маюць месца ў тры асобныя слупкі, такім чынам вы аб'яднаеце іх:
CherryКардонны латокУ наяўнасці
Упакоўка CherryFilmНяма ў наяўнасці
Вядро CherryPPЗаканчваецца
і г.д. .
- Апошні аргумент у MATCH — 0 — дазваляе знайсці дакладнае супадзенне для CherryPP bucketRunning out сярод усіх гэтых радкоў аб'яднаных слупкоў. Як бачыце, гэта ў 3-м радку.
- І тады INDEX робіць сваю справу: ён атрымлівае запіс з 3-га радка слупка B.
- ArrayFormula выкарыстоўваецца, каб дазволіць іншым функцыям праца з масівамі.
Савет. Калі ваша формула не знойдзе супадзення, яна верне памылку. Каб пазбегнуць гэтага, вы можаце загарнуць усю гэту формулу ў IFERROR (зрабіць гэта першым аргументам) і ўвесці ўсё, што хочаце бачыць у ячэйцы замест памылак, у якасці другога аргумента:
=IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Not found")
Лепшая альтэрнатыва INDEX MATCH у Google Табліцах — некалькі супадзенняў VLOOKUP
Якую б функцыю пошуку вы не аддавалі перавагу, VLOOKUP або INDEX MATCH, ёсць лепшая альтэрнатыва абодвум.
Некалькі VLOOKUP Matches - гэта спецыяльны дадатак для Google Sheets, прызначаны для:
- пошуку без формул
- пошуку ва ўсіх напрамках
- пошуку па некалькіх умовах для розных тыпаў даных : тэкст, лічбы, даты, час, і г.д.
- абраць некалькі супадзенняў, колькі вам трэба (пры ўмове, што іх столькі ў вашай табліцы, вядома)
Інтэрфейс зразумелы, так што вам не прыйдзецца сумнявацца, што вы робіцеусё правільна:
- Выберыце зыходны дыяпазон.
- Усталюйце колькасць супадзенняў і слупкоў для вяртання.
- Дакладна наладзьце ўмовы з дапамогай загадзя вызначаных аператараў ( змяшчае, =, не пустое , паміж і г.д.).
Вы таксама зможаце:
- праглядзець вынік
- вырашыць, дзе яго размясціць
- і як: як формулу ці проста значэнні
Не прапусціце магчымасць праверыць надбудову. Ідзіце наперад і ўсталюйце яго з Google Workspace Marketplace. Яго старонка падручніка растлумачыць кожны варыянт у дэталях.
Мы таксама падрыхтавалі спецыяльнае навучальнае відэа:
Да сустрэчы ў каментарах ніжэй або ў наступным артыкуле ;)