Функція ПОИСК в Excel з прикладами формул

  • Поділитися Цим
Michael Brown

У посібнику пояснюються векторна та масивна форми функції ПОИСК в Excel, а також демонструються типові та нетривіальні застосування ПОИСК в Excel на прикладах формул.

Одне з найчастіших питань, яке час від часу задає кожен користувач Excel, звучить так: " Як знайти значення на одному аркуші і витягнути відповідне значення на інший аркуш? "Звичайно, варіацій базового сценарію може бути безліч: можливо, ви шукаєте не точний збіг, а найближчий збіг, можливо, ви хочете шукати по вертикалі в стовпці або по горизонталі в рядку, оцінювати один або кілька критеріїв і т.д. Однак суть одна - вам потрібно знати, як шукати в Excel.

Microsoft Excel надає кілька різних способів пошуку. Для початку давайте вивчимо функцію, яка призначена для обробки найпростіших випадків вертикального і горизонтального пошуку. Як неважко здогадатися, мова йде про функцію ПОИСК.

    Функція ПОИСК в Excel - синтаксис і застосування

    На найпростішому рівні функція ПОИСК в Excel здійснює пошук значення в одному стовпчику або рядку і повертає відповідне значення з тієї ж позиції в іншому стовпчику або рядку.

    Існує дві форми ЗВЕРНЕННЯ в Excel: Вектор і Масив Нижче пояснюється кожна форма окремо.

    Функція ПОИСК в Excel - векторна форма

    У наведеному контексті, на думку експертів, важливе значення має вектор відноситься до діапазону з одного стовпця або одного рядка. Отже, ви використовуєте векторну форму ПОИСК для пошуку в одному рядку або одному стовпці даних заданого значення, і витягуєте значення з тієї ж позиції в іншому рядку або стовпці.

    Синтаксис вектора Lookup наступний:

    LOOKUP(значення_пошуку, вектор_пошуку, [вектор_результату])

    Де:

    • Lookup_value (обов'язково) - значення для пошуку, яке може бути числом, текстом, логічним значенням ІСТИНА або ХИБНІСТЬ або посиланням на комірку, що містить шукане значення.
    • Lookup_vector (обов'язково) - однорядковий або одностовпчиковий діапазон для пошуку, який повинен бути відсортований в за зростанням .
    • Вектор_результату (необов'язково) - однорядковий або одностовпчиковий діапазон, з якого потрібно повернути результат - значення, що знаходиться в тій же позиції, що і шукане значення. Вектор_результату має бути однаковий розмір як діапазон_пошуку Якщо опустити, то повертається результат з lookup_vector .

    Наступні приклади демонструють дві прості формули пошуку в дії.

    Формула вертикального пошуку - пошук в діапазоні одного стовпця

    Припустимо, у вас є список продавців в колонці D (D2:D5) і товари, які вони продають в колонці E (E2:E5). Ви створюєте дашборд, де ваші користувачі будуть вводити ім'я продавця в B2 і вам потрібна формула, яка б витягувала відповідний товар в B3. За допомогою цієї формули завдання легко вирішується:

    =LOOKUP(B2,D2:D5,E2:E5)

    Для кращого розуміння аргументації, будь ласка, подивіться на цей скріншот:

    Горизонтальна формула пошуку - пошук в однорядковому діапазоні

    Якщо ваші вихідні дані мають горизонтальне розташування, тобто записи розташовані в рядках, а не в стовпчиках, то вкажіть однорядковий діапазон у полі lookup_vector і result_vector аргументи, на кшталт цього:

    =LOOKUP(B2,E1:H1,E2:H2)

    У другій частині цього уроку ви знайдете ще кілька прикладів пошуку в Excel, які вирішують більш складні завдання. А поки що запам'ятайте наступні прості факти, які допоможуть вам обійти можливі підводні камені і запобігти поширеним помилкам.

    5 речей, які варто знати про векторну форму табличного процесора Excel

    1. Значення в lookup_vector повинні бути відсортовані в за зростанням тобто від меншого до більшого або від А до Я, інакше ваша формула пошуку в Excel може повернути помилку або неправильний результат. Якщо вам потрібно виконати пошук по невідсортовані дані то використовуйте або INDEX MATCH, або OFFSET MATCH.
    2. Lookup_vector і result_vector має бути однорядний або одноколонний діапазон однакового розміру.
    3. Функція ПОИСК в Excel - це нечутливий до регістру Він не розрізняє великі та малі літери тексту.
    4. Excel LOOKUP працює на основі приблизний збіг Точніше кажучи, формула пошуку спочатку шукає точний збіг. Якщо вона не може знайти шукане значення точно, вона шукає наступне найменше значення тобто найбільше значення в lookup_vector яка є меншою або дорівнює lookup_value .

      Наприклад, якщо шукане значення "5", формула спочатку шукатиме його, якщо "5" не буде знайдено, шукатиме "4", якщо "4" не буде знайдено, шукатиме "3" і так далі.

    5. Якщо lookup_value це менший ніж найменше значення в lookup_vector Excel LOOKUP повертає помилку #N/A.

    Функція ПОИСК в Excel - форма масиву

    Масивна форма функції ПОИСК виконує пошук заданого значення в першому стовпчику або рядку масиву і повертає значення з тієї ж позиції в останньому стовпчику або рядку масиву.

    Масив Lookup має 2 аргументи, обидва з яких є обов'язковими:

    LOOKUP(значення_пошуку, масив)

    Де:

    • Lookup_value - значення, яке потрібно шукати в масиві.
    • Масив - діапазон комірок, в яких потрібно шукати шукане значення. Значення в першому стовпці або рядку масиву (в залежності від того, чи виконується V-пошук або H-пошук) повинні бути відсортовані за зростанням. Великі та малі літери вважаються рівнозначними.

    Наприклад, маючи назви продавців, розташованих у першому стовпчику масиву (стовпчик А), і дати замовлень в останньому стовпчику масиву (стовпчик С), ви можете використовувати наступну формулу для пошуку назви і витягування відповідної дати:

    =LOOKUP(B2,D2:F5)

    Примітка. Масивну форму функції ПОИСК в Excel не слід плутати з формулами масивів Excel. Хоча функція ПОИСК і оперує масивами, вона все одно є звичайною формулою, яка завершується звичайним чином натисканням клавіші Enter.

    4 речі, які варто знати про масивну форму ЗНАЙОМКИ в Excel

    1. Якщо масив має більше рядків, ніж стовпців або однакову кількість стовпців і рядків, формула пошуку виконує пошук у першому стовпці (горизонтальний пошук).
    2. Якщо масив має більше стовпців, ніж рядків Excel LOOKUP шукає в першому рядку (вертикальний пошук).
    3. Якщо формула не може знайти шукане значення, вона використовує функцію найбільше значення в масиві, що менше або дорівнює lookup_value .
    4. У разі, якщо шукане значення менше ніж найменше значення в першому стовпчику або рядку масиву (в залежності від розмірів масиву), формула пошуку повертає помилку #N/A.

    Важливе зауваження! Функціональність форми масивів Excel ПОИСК массива обмежена і ми не рекомендуємо її використовувати. Замість неї можна скористатися функцією VLOOKUP або HLOOKUP, які є вдосконаленими версіями для виконання вертикального та горизонтального пошуку відповідно.

    Як використовувати функцію ПОИСК в Excel - приклади формул

    Хоча існують більш потужні функції для пошуку і зіставлення в Excel (що є темою нашого наступного уроку), функція ПОИСК стає в нагоді в багатьох ситуаціях, і наступні приклади демонструють кілька нетривіальних застосувань. Зверніть увагу, що всі наведені нижче формули використовують векторну форму функції ПОИСК в Excel.

    Пошук значення в останній непустій комірці стовпця

    Якщо у вас є стовпець з динамічно заповнюваними даними, ви можете вибрати останній доданий запис, тобто отримати останню непорожню комірку в стовпці. Для цього використовуйте цю загальну формулу:

    LOOKUP(2, 1/( колонка ""), колонка )

    У наведеній вище формулі всі аргументи, крім посилання на стовпець, є константами. Таким чином, щоб отримати останнє значення в певному стовпці, достатньо вказати відповідне посилання на стовпець. Наприклад, щоб отримати значення останньої непустої комірки в стовпці А, скористайтеся такою формулою:

    =LOOKUP(2, 1/(A:A""), A:A)

    Щоб отримати останнє значення з інших стовпців, змініть посилання на стовпці, як показано на скріншоті нижче - перше посилання - це стовпець, який потрібно перевірити на наявність пустих/непустих комірок, а друге посилання - це стовпець, з якого потрібно повернути значення:

    Як працює ця формула

    В рамках проекту lookup_value аргументу, ви вказуєте 2 або будь-яке інше число, більше 1 (через хвилину ви зрозумієте чому).

    В рамках проекту lookup_vector аргументу, ви ставите такий вираз: 1/(A:A"")

    • Спочатку виконується логічна операція A:A"", яка порівнює кожну комірку стовпця A з порожнім рядком і повертає ІСТИНА для порожніх комірок і БРЕХНЯ для непорожніх. У наведеному вище прикладі формула в комірці F2 повертає такий масив: {ІСТИНА;ІСТИНА;ІСТИНА;ІСТИНА;БРЕХНЯ...}
    • Потім на кожен елемент вищенаведеного масиву ділиться число 1. Якщо TRUE дорівнює 1, а FALSE дорівнює 0, то отримується новий масив, що складається з одиниць і помилок #DIV/0! (результат ділення на 0), і цей масив використовується в якості lookup_vector У цьому прикладі це {1;1;1;1;1;#DIV/0!...}.

    Тепер, як виходить, що формула повертає останнє непорожнє значення в стовпчику, враховуючи, що lookup_value не відповідає жодному з елементів lookup_vector Ключ до розуміння логіки полягає в тому, що функція ПОИСК в Excel виконує пошук з наближеним збігом, тобто, якщо точне значення не знайдено, воно відповідає наступному за величиною значенню в lookup_vector яка є меншою за lookup_value У нашому випадку, lookup_value становить 2, а найбільше значення в lookup_vector дорівнює 1, тому LOOKUP збігається з останньою 1 в масиві, яка є останньою непорожньою коміркою!

    В рамках проекту result_vector ви посилаєтеся на стовпець, з якого ви хочете повернути значення, і ваша формула пошуку витягне значення в тій самій позиції, що й шукане значення.

    Порада: якщо ви бажаєте отримати номер рядка утримуючи останнє значення, то використовуйте функцію ROW для його отримання. Наприклад: =LOOKUP(2,1/(A:A""),ROW(A:A))

    Пошук значення в останній непустій комірці в рядку

    Якщо вихідні дані розміщені в рядках, а не в стовпцях, то за допомогою цієї формули можна отримати значення останньої непорожньої комірки:

    LOOKUP(2, 1/( ряд ""), ряд )

    По суті, ця формула є нічим іншим, як невеликою модифікацією попередньої формули, з тією лише різницею, що замість посилання на рядок використовується посилання на стовпець.

    Наприклад, щоб отримати значення останньої непорожньої комірки в рядку 1, скористайтеся такою формулою:

    =LOOKUP(2, 1/(1:1""), 1:1)

    На наступному скріншоті показано результат:

    Отримати значення, пов'язане з останнім записом в рядку

    Проявивши трохи творчості, наведену вище формулу можна легко адаптувати для вирішення інших подібних завдань. Наприклад, її можна використовувати для отримання значення, пов'язаного з останнім значенням певної величини в рядку. Це може звучати дещо незрозуміло, але наступний приклад полегшить розуміння.

    Припустимо, що у Вас є зведена таблиця, в якій стовпець А містить імена продавців, а наступні стовпці містять певні дані для кожного місяця. У цьому прикладі комірка містить "так", якщо даний продавець уклав принаймні одну угоду в даному місяці. Наша мета полягає в тому, щоб отримати місяць, пов'язаний з останнім записом "так" в рядку.

    Задачу можна розв'язати за допомогою наступної формули ПОШУК:

    =LOOKUP(2, 1/(B2:H2="yes"), $B$1:$H$1)

    Логіка формули в основному така ж, як і в першому прикладі, з тією різницею, що замість оператора "не дорівнює" ("") використовується оператор "дорівнює" ("=") і оперуються рядки, а не стовпці.

    Результат демонструє наступний скріншот:

    Пошук як альтернатива вкладеним IF

    У всіх формулах пошуку, які ми обговорювали до цього часу, використовується lookup_vector і result_vector Однак синтаксис функції ПОИСК в Excel дозволяє подавати вектори у вигляді вертикальної константи масиву, що дає змогу повторити функціонал вкладених ЕСЛИ більш компактною та зручною для читання формулою.

    Припустимо, у вас є список абревіатур в колонці А і ви хочете замінити їх повними назвами, де "З" означає "Завершено", "Д" - "Розробка", а "Т" - "Тестування". Завдання можна вирішити за допомогою наступної вкладеної функції ЯКЩО:

    =IF(A2="c", "Завершено", IF(A2="d", "Розробка", IF(A2="t", "Випробування", "")))

    Або за допомогою цієї пошукової формули:

    =LOOKUP(A2, {"c"; "d"; "t"}, {"Завершено"; "Розробка"; "Тестування"})

    Як показано на скріншоті нижче, обидві формули дають ідентичні результати:

    Примітка: Для коректної роботи формули пошуку в Excel значення в рядку lookup_array повинні бути відсортовані від А до Я або від найменшого до найбільшого.

    Якщо ви отримуєте значення з таблиці пошуку, то ви можете вбудувати функцію Vlookup в lookup_value аргумент для отримання збігу.

    Припускаючи, що шукане значення знаходиться в комірці E2, таблиця пошуку A2:C7, а стовпець, що цікавить ("Статус"), є 3-м стовпцем у таблиці пошуку, наступна формула виконує роботу:

    =LOOKUP(VLOOKUP(E2, $A$2:$C$7, 3, FALSE), {"c"; "d"; "t"}, {"Завершено"; "Розробка"; "Тестування"})

    Як показано на скріншоті нижче, формула отримує статус проекту з таблиці пошуку та замінює абревіатуру на відповідне слово:

    Порада. Якщо ви використовуєте Excel 2016 в рамках передплати на Office 365, ви можете використовувати функцію ПЕРЕХІД для аналогічних цілей.

    Сподіваюся, ці приклади пролили світло на те, як працює функція ПОИСК. Для кращого розуміння формул ви можете завантажити ці приклади пошуку в Excel. У наступному уроці ми розглянемо ще кілька способів пошуку в Excel і пояснимо, яку формулу пошуку краще використовувати в якій ситуації. Дякую за увагу і сподіваюся побачити вас на нашому блозі наступного тижня!

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.