Зміст
Коли вам потрібно знайти в аркуші дані, які відповідають певному ключовому запису, зазвичай ви звертаєтеся до Google Sheets VLOOKUP. Але ось тільки VLOOKUP майже одразу дає вам ляпаса обмеженнями. Тому краще збільшити ресурси для виконання завдання, вивчивши INDEX MATCH.
INDEX MATCH в Google Sheets - це комбінація двох функцій: INDEX і MATCH. При використанні в тандемі вони виступають кращою альтернативою VLOOKUP в Google Sheets. Давайте разом з'ясуємо їх можливості в цьому блозі. Але спочатку я хотів би провести невеликий екскурс по їх власним ролям в електронних таблицях.
Функція зіставлення таблиць Google Таблиць
Я хотів би почати з Google Sheets MATCH, тому що він дуже простий. Він сканує ваші дані на наявність певного значення і повертає його позицію:
=MATCH(ключ_пошуку, діапазон, [тип_пошуку])- ключ_пошуку це той запис, який ви шукаєте. Обов'язково.
- діапазон рядок або стовпець, в якому потрібно шукати. Обов'язковий для заповнення.
Примітка: MATCH приймає тільки одновимірні масиви: або рядок, або стовпець.
- тип_пошуку є необов'язковим і визначає, чи має збіг бути точним або наближеним. Якщо не вказано, то за замовчуванням дорівнює 1:
- 1 означає, що діапазон відсортовано за зростанням. Функція отримує найбільше значення, яке менше або дорівнює вашому ключ_пошуку .
- 0 змусить функцію шукати точний збіг, якщо ваш діапазон не відсортований.
- -1 підказує, що записи ранжуються з використанням сортування за спаданням. У цьому випадку функція отримує найменше значення, яке більше або дорівнює вашому ключ_пошуку .
Наведу приклад: щоб отримати позицію певної ягоди в списку всіх ягід, мені потрібна наступна формула МАТЧ в моїх Google Таблицях:
=MATCH("Blueberry", A1:A10, 0)
Функція ІНДЕКС Google Таблиць
У той час як функція MATCH показує, де шукати значення (його розташування в діапазоні), функція INDEX Google Sheets знаходить саме значення на основі його зміщення по рядках і стовпцях:
=INDEX(посилання, [рядок], [стовпець])- посилання це діапазон, в якому потрібно шукати. Обов'язково.
- ряд кількість рядків для зсуву від першої комірки діапазону. Необов'язкове, 0, якщо не вказано.
- колонка так само, як ряд Також необов'язково, також 0, якщо не вказано.
Якщо вказати обидва необов'язкові аргументи (рядок і стовпець), то функція ІНДЕКС Google Sheets поверне запис з комірки призначення:
=INDEX(A1:C10, 7, 1)
Пропустіть один з цих аргументів, і функція отримає весь рядок або стовпець відповідно:
=INDEX(A1:C10, 7)
Як використовувати ІНДЕКСНИЙ СПІВПАДАННЯ в Google Таблицях - приклади формул
Коли INDEX і MATCH використовуються разом в електронних таблицях, вони показують себе з найкращого боку. Вони можуть абсолютно замінити VLOOKUP в Google Sheets і отримати необхідний запис з таблиці на основі значення вашого ключа.
Створіть свою першу формулу INDEX MATCH для Google Sheets
Припустимо, ви хочете отримати інформацію про запаси журавлини з тієї ж таблиці, яку я використовував вище. Я лише поміняв місцями колонки B і C (ви дізнаєтесь чому трохи пізніше).
- Тепер всі ягоди перераховані в колонці С. Функція Google Sheets MATCH допоможе знайти точний рядок з журавлиною: 8
=MATCH("Журавлина", C1:C10, 0)
- Покладіть всю цю формулу МАТЧ на ряд у функції INDEX:
=INDEX(A1:C10, MATCH("Журавлина", C1:C10, 0))
Цей поверне весь ряд з журавлиною.
- Але оскільки вам потрібна лише інформація про запаси, вкажіть також номер стовпчика для пошуку: 3
=INDEX(A1:C10, MATCH("Журавлина", C1:C10,0), 2)
- Вуаля!
- Можна піти далі і відмовитися від останнього показника стовпчика ( 2 Вона взагалі не знадобиться, якщо ви використовуєте тільки стовпець пошуку ( B1:B10 ), а не всієї таблиці ( A1:C10 ) як перший аргумент:
=INDEX(B1:B10, MATCH("Журавлина", C1:C10, 0))
Порада. Більш зручним способом перевірки наявності різних ягід буде розміщення їх у випадаючому списку ( E2 ) і зверніться до функції МАТЧ до комірки з цим списком:
=INDEX(B1:B10, MATCH(E2, C1:C10, 0))
Як тільки ви виберете ягоду, відповідне значення зміниться відповідно:
Чому INDEX MATCH в Google Sheets краще, ніж VLOOKUP
Ви вже знаєте, що Google Sheets INDEX MATCH шукає ваше значення в таблиці і повертає інший пов'язаний запис з того ж рядка. І ви знаєте, що Google Sheets VLOOKUP робить те ж саме. Так навіщо турбуватися?
Річ у тім, що ЗБІГ ІНДЕКСІВ має деякі основні переваги над ВЛУКОПОМ:
- Можливий лівосторонній пошук Я поміняв місцями стовпці раніше, щоб проілюструвати це: функція INDEX MATCH в Google Sheets може шукати і шукає зліва від стовпця пошуку. VLOOKUP завжди шукає найперший стовпець діапазону і шукає збіги праворуч від нього - інакше він отримує тільки помилки #N/A:
- Відсутність переплутаних посилань при додаванні нових колонок та переміщенні існуючих. Якщо ви додаєте або переміщуєте стовпці, INDEX MATCH відобразить зміни автоматично, не втручаючись в результат. Оскільки ви використовуєте посилання на стовпці, вони миттєво коригуються Google Sheets:
Спробуйте зробити це за допомогою VLOOKUP: він вимагає номер замовлення, а не посилання на клітинки для стовпця пошуку. Таким чином, ви просто отримаєте неправильне значення, тому що інший стовпець займає те саме місце - стовпець 2 на моєму прикладі:
- Розглядає текстовий регістр у разі необхідності (детальніше про це нижче).
- Може використовуватися для вертикального пошуку за кількома критеріями.
Пропоную вам детально розглянути останні два пункти нижче.
V-пошук з урахуванням регістру та збігом за індексом в 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 ( вишня Після знаходження формула "позначає" цю комірку числом - "-", враховуючи її літерний регістр. 1 .
- МАТЧ-пошук по цій марці - 1 - у цій же колонці ( C ) і передає номер свого рядка в INDEX.
- ІНДЕКС зводиться до цього рядка в колонці В ( B2:B19 ) і виводить на екран потрібний вам запис.
- Після завершення побудови формули натисніть Ctrl+Shift+Enter, щоб додати на початку ArrayFormula. Це необхідно, оскільки без цього FIND не зможе шукати в масивах (більш ніж в одній комірці). Або ви можете набрати ' ArrayFormula ' з клавіатури.
Приклад 2. EXACT для чутливого до регістру Vlookup
Якщо замінити FIND на EXACT, то останній буде шукати записи з точно такими ж символами, включаючи їх регістр.
Різниця лише в тому, що ТОЧНО "відзначає" збіг з ПРАВДА а не кількість 1 Отже, першим аргументом на користь МАТЧ має бути ПРАВДА :
=ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0))))
Індексний пошук Google Таблиць за кількома критеріями
Що робити, якщо є кілька умов, за якими Ви хочете отримати запис?
Перевіримо ціну на вишня що продається в Відра ПП і вже є закінчується :
Всі критерії я розташував у випадаючих списках у колонці F. І саме Google Sheets INDEX MATCH підтримує декілька критеріїв, а не VLOOKUP. Ось формула, яку вам потрібно буде використати:
=ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))
Без паніки :) Його логіка насправді досить проста:
- КОНКАТЕНАТ(F2:F4) об'єднує всі три записи з комірок з критеріями в один рядок ось так:
Відро CherryPPЗакінчується
Це ключ_пошуку для MATCH, або, іншими словами, те, що ви шукаєте в таблиці.
- A2:A24&C2:C24&D2:D24 становлять діапазон Оскільки всі три критерії знаходяться в трьох окремих стовпчиках, таким чином ви об'єднуєте їх:
ВишняКартонний лотокНа складі
ВишняПлівкова упаковкаВідсутній на складі
Відро CherryPPЗакінчується
і т.д.
- Останній аргумент у МАТЧі - 0 - дає можливість знайти точну відповідність для Відро CherryPPЗакінчується серед усіх цих рядів об'єднаних стовпчиків. Як бачите, він знаходиться в 3-му ряду.
- А далі INDEX робить свою справу: витягує запис з 3-го рядка стовпчика B.
- ArrayFormula використовується для того, щоб дозволити іншим функціям працювати з масивами.
Порада: якщо ваша формула не знайде збігу, вона поверне помилку. Щоб уникнути цього, ви можете обернути всю цю формулу в IFERROR (зробити її першим аргументом) і ввести те, що ви хочете бачити в комірці замість помилок, як другий аргумент:
=IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Not found")
Краща альтернатива ІНДЕКСНОМУ СПІВПАДІННЮ в Google Таблицях - Множинні співпадіння в таблицях - VLOOKUP
Якій би функції пошуку ви не надавали перевагу, VLOOKUP або INDEX MATCH, є краща альтернатива для них обох.
Multiple VLOOKUP Matches - це спеціальне доповнення для Google Sheets, призначене для:
- пошук без формул
- огляд в усіх напрямках
- пошук за кількома умовами для різних типів даних: текст, цифри, дати, час, і т.д.
- витягніть кілька сірників, стільки, скільки вам потрібно (звісно, за умови, що у вашій таблиці є стільки сірників)
Інтерфейс зрозумілий, тому вам не доведеться сумніватися, чи все ви робите правильно:
- Виберіть діапазон джерела.
- Задати кількість збігів та стовпців для повернення.
- Налаштуйте умови за допомогою попередньо визначених операторів ( містить, =, не пустий , між тощо).
Ви також зможете:
- переглянути результат
- вирішити, де його розмістити
- і як: у вигляді формули чи просто значень
Не пропустіть можливість перевірити додаток - встановіть його з Google Workspace Marketplace, де на сторінці з інструкцією буде детально розказано про кожну опцію.
Ми також підготували спеціальне навчальне відео:
До зустрічі в коментарях нижче або в наступній статті ;)