Зміст
У посібнику наведено ряд прикладів формул "Excel якщо містить", які показують, як повернути щось в інший стовпець, якщо цільова комірка містить необхідне значення, як здійснювати пошук з частковим збігом і перевіряти кілька критеріїв за допомогою логіки АБО, а також логіки І.
Однією з найпоширеніших задач в Excel є перевірка наявності в комірці значення, яке нас цікавить. Що це може бути за значення? Будь-який текст або число, конкретний текст або взагалі будь-яке значення (не порожня комірка).
Існує кілька варіантів формули "Если ячейка содержит" в Excel, залежно від того, які саме значення ви хочете знайти. Як правило, ви використовуєте функцію ЕСЛИ для виконання логічного тесту і повертаєте одне значення, коли умова виконується (комірка містить) та/або інше значення, коли умова не виконується (комірка не містить). Наведені нижче приклади охоплюють найпоширеніші сценарії.
Якщо комірка містить будь-яке значення, то
Для початку давайте подивимося, як знайти клітинки, які містять що-небудь взагалі: будь-який текст, число або дату. Для цього ми будемо використовувати просту формулу ЯКЩО, яка перевіряє наявність непустих клітинок.
ЯКЩО( клітина "", значення_для_повернення , "")Наприклад, щоб повернути "Не пусто" в стовпці B, якщо комірка стовпця A в тому ж рядку містить будь-яке значення, введіть наступну формулу в B2, а потім двічі клацніть на маленькому зеленому квадратику в правому нижньому куті, щоб скопіювати формулу вниз по стовпчику:
=IF(A2"", "Не пусто", "")
Результат буде виглядати приблизно так:
Якщо комірка містить текст, то
Якщо потрібно знайти тільки клітинки з текстовими значеннями, ігноруючи числа і дати, то використовуйте функцію ЕСЛИ в поєднанні з функцією ISTEXT. Ось загальна формула для повернення деякого значення в іншу комірку, якщо цільова комірка містить будь-який текст :
IF(ISTEXT( клітина ), значення_для_повернення , "")Припустимо, ви хочете вставити слово "так" у стовпчик B, якщо комірка в стовпчику A містить текст. Щоб це зробити, введіть наступну формулу в комірку B2:
=IF(ISTEXT(A2), "Так", "")
Якщо комірка містить число, то
Аналогічним чином можна ідентифікувати комірки з числовими значеннями (числами і датами). Для цього використовуйте функцію ЕСЛИ разом з ISNUMBER:
IF(ISNUMBER( клітина ), значення_для_повернення , "")Наступна формула повертає "так" у колонці B, якщо відповідна комірка в колонці A містить будь-яке число:
=IF(ISNUMBER(A2), "Так", "")
Якщо комірка містить певний текст
Знайти клітинки, що містять певний текст (або числа чи дати) дуже просто. Ви пишете звичайну формулу ЕСЛИ, яка перевіряє, чи містить цільова комірка потрібний текст, і вводите текст, який потрібно повернути, в поле value_if_true аргумент.
ЯКЩО( клітина =" текст ", значення_для_повернення , "")Наприклад, щоб дізнатися, чи містить комірка А2 "яблука", скористайтеся такою формулою:
=IF(A2="apples", "Yes", "")
Якщо комірка не містить певного тексту
Якщо Ви шукаєте протилежний результат, тобто повернути деяке значення в інший стовпець, якщо цільова комірка не містить заданого тексту ("яблука"), то виконайте одну з наступних дій.
Виведіть порожній рядок ("") у рядку value_if_true і текст, який потрібно повернути в аргументі value_if_false аргумент:
=IF(A2="яблука", "", "Не яблука")
Або поставте оператор "не дорівнює" логічний_тест та текст для відповіді value_if_true:
=IF(A2 "яблука", "Не яблука", "")
Так чи інакше, формула дасть цей результат:
Якщо комірка містить текст: формула з урахуванням регістру
Щоб змусити формулу розрізняти великі і малі літери, використовуйте функцію ТОЧНО, яка перевіряє, чи є два текстових рядки точно рівними, включаючи регістр літер:
=IF(EXACT(A2, "APPLES"), "Yes", "")
Ви також можете ввести текстовий рядок моделі в деяку комірку (скажімо, в C1), зафіксувати посилання на комірку за допомогою знаку $ ($C$1) і порівняти цільову комірку з цією коміркою:
=IF(EXACT(A2,$C$1), "Так", "")
Якщо комірка містить певний текстовий рядок (частковий збіг)
З тривіальними завданнями ми закінчили і переходимо до більш складних і цікавих :) У цьому прикладі потрібно за допомогою трьох різних функцій з'ясувати, чи є заданий символ або підрядок частиною вмісту комірки:
IF(ISUMBER(SEARCH(" текст" , клітина )), значення_для_повернення ,"")Працюючи зсередини назовні, ось що робить формула:
- Функція SEARCH здійснює пошук текстового рядка, і якщо рядок знайдено, повертає позицію першого символу, в іншому випадку - помилку #VALUE!
- Функція ISNUMBER перевіряє, чи був пошук успішним чи ні. Якщо пошук повернув будь-яке число, ISNUMBER повертає значення TRUE. Якщо пошук призвів до помилки, ISNUMBER повертає значення FALSE.
- Нарешті, функція ЕСЛИ повертає задане значення для комірок, які мають значення ІСТИНА в логічному тесті, порожній рядок ("") в іншому випадку.
А тепер давайте подивимося, як ця загальна формула працює на реальних робочих аркушах.
Якщо комірка містить певний текст, введіть значення в іншу комірку
Припустимо, у вас є список замовлень в колонці А і ви хочете знайти замовлення з певним ідентифікатором, скажімо, "А-". Завдання можна вирішити за допомогою такої формули:
=IF(ISNUMBER(SEARCH("A-",A2)), "Valid","")
Замість того, щоб жорстко кодувати рядок у формулі, ви можете ввести його в окрему комірку (E1), посилаючись на цю комірку у вашій формулі:
=IF(ISNUMBER(SEARCH($E$1,A2)), "Valid","")
Для коректної роботи формули обов'язково зафіксуйте адресу комірки, що містить рядок, знаком $ (абсолютне посилання на комірку).
Якщо комірка містить певний текст, скопіюйте його в іншу колонку
Якщо ви хочете скопіювати вміст допустимих комірок в інше місце, просто вкажіть адресу оцінюваної комірки (A2) в полі value_if_true аргумент:
=IF(ISUMBER(SEARCH($E$1,A2)),A2,"")
Скріншот нижче демонструє результати:
Якщо комірка містить певний текст: формула з урахуванням регістру
В обох наведених вище прикладах формули не чутливі до регістру. У ситуаціях, коли ви працюєте з даними, чутливими до регістру, використовуйте функцію FIND замість SEARCH для розпізнавання регістру символів.
Наприклад, наступна формула буде ідентифікувати тільки замовлення з великою літерою "A-", ігноруючи малу літеру "a-".
=IF(ISNUMBER(FIND("A-",A2)), "Valid","")
Якщо комірка містить один з багатьох текстових рядків (логіка АБО)
Щоб визначити клітинки, що містять хоча б одну з багатьох речей, які ви шукаєте, використовуйте одну з наступних формул.
Формула пошуку "IF" або "ISNUMBER
Найбільш очевидним підходом була б перевірка кожного підрядка окремо, і щоб функція АБО повертала ІСТИНУ в логічному тесті формули ЯКЩО, якщо знайдено хоча б один підрядок:
IF(OR(ISUMBER(SEARCH(" string1 ", клітина )), ISUMBER(SEARCH(" string2 ", клітина ))), значення_для_повернення , "")Припустимо, у вас є список SKU в колонці А, і ви хочете знайти ті, які включають або "сукню", або "спідницю". Ви можете зробити це за допомогою цієї формули:
=IF(OR(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("skirt",A2))), "Valid ","")
Формула досить добре працює для декількох елементів, але це, безумовно, не той спосіб, якщо ви хочете перевірити багато речей. У цьому випадку кращим підходом буде використання функції СУММЕСЛИ, як показано в наступному прикладі.
Формула пошуку сумарного показника продукту
Якщо ви маєте справу з декількома текстовими рядками, пошук кожного рядка окремо зробить вашу формулу занадто довгою і важкою для читання. Більш елегантним рішенням буде вбудувати комбінацію ПОИСК ЦИФР у функцію СУММЕСЛИ і подивитися, чи буде результат більше нуля:
SUMPRODUCT(--ISNUMBER(SEARCH( струни , клітина )))>0Наприклад, щоб дізнатися, чи містить комірка A2 будь-яке зі слів, введених у комірки D2:D4, скористайтеся такою формулою:
=SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0
Крім того, ви можете створити іменований діапазон, що містить рядки для пошуку, або вказати слова безпосередньо у формулі:
=SUMPRODUCT(--ISNUMBER(SEARCH({"сукня", "спідниця", "джинси"},A2)))>0
У будь-якому випадку, результат буде приблизно таким:
Щоб зробити вивід більш зручним для користувача, можна вкласти наведену вище формулу у функцію ЕСЛИ і замість значень ІСТИНА/БРЕХНЯ повертати власний текст:
=IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Valid", "")
Як працює ця формула
По суті, ви використовуєте ISNUMBER разом з SEARCH, як пояснювалося в попередньому прикладі. У цьому випадку результати пошуку представляються у вигляді масиву на зразок {TRUE;FALSE;FALSE}. Якщо комірка містить хоча б один із зазначених підрядків, в масиві буде TRUE. Подвійний унарний оператор (--) примушує значення TRUE / FALSE дорівнювати 1 і 0 відповідно, і видає масив на зразок{Нарешті, функція СУММЕСЛИ підсумовує числа, і ми виділяємо клітинки, де результат більше нуля.
Якщо комірка містить декілька рядків (логіка І)
У ситуаціях, коли потрібно знайти комірки, що містять всі задані текстові рядки, використовуйте вже знайому нам комбінацію ПОИСК ПО ЧИСЛУ разом з ЕСЛИ И:
IF(AND(ISUMBER(SEARCH(" string1 ", клітина )), ISUMBER(SEARCH(" string2 ", клітина ))), значення_для_повернення ,"")Наприклад, за такою формулою можна знайти SKU, що містять як "сукня", так і "синій":
=IF(AND(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("blue",A2))), "Valid ","")
Або ви можете ввести рядки в окремі клітинки і посилатися на ці клітинки у формулі:
=IF(AND(ISNUMBER(SEARCH($D$2,A2)),ISNUMBER(SEARCH($E$2,A2))), "Valid ","")
Як альтернативне рішення, ви можете підрахувати входження кожного рядка і перевірити, чи кожен підрахунок більше нуля:
=IF(AND(COUNTIF(A2, "*плаття*")>0,COUNTIF(A2, "*синій*")>0), "Valid","")
Результат буде саме таким, як показано на скріншоті вище.
Як повернути різні результати на основі значення комірки
Якщо ви хочете порівняти кожну комірку цільового стовпця з іншим списком елементів і повернути різне значення для кожного збігу, використовуйте один з наступних підходів.
Вкладені IF
Логіка вкладеної формули ЕСЛИ проста: ви використовуєте окрему функцію ЕСЛИ для перевірки кожної умови і повертаєте різні значення в залежності від результатів цих перевірок.
ЯКЩО( клітина =" lookup_text1 ", " повернення _ текст1 ", IF( клітина =" lookup_text2 ", " повернення _ текст2 ", IF( клітина =" lookup_text3 ", " повернення _ текст3 ", "")))Припустимо, у вас є список елементів у колонці А, і ви хочете мати їх скорочення в колонці В. Для цього використовуйте наступну формулу:
=IF(A2="яблуко", "Ap", IF(A2="авокадо", "Av", IF(A2="банан", "B", IF(A2="лимон", "L", ""))))
Більш детально про синтаксис і логіку вкладених ЕСЛИ можна прочитати в статті Вкладені ЕСЛИ в Excel - кілька умов в одній формулі.
Формула пошуку
Якщо ви шукаєте більш компактну і зрозумілу формулу, використовуйте функцію ПОИСК, в якій значення пошуку і повернення подаються у вигляді вертикальних констант масиву:
LOOKUP( клітина , {" lookup_text1 ";" lookup_text2 ";" lookup_text3 ";...}, {" повернення _ текст1 ";" повернення _ текст2 ";" повернення _ текст3 ";...})Для отримання точних результатів обов'язково вказуйте шукані значення в алфавітний порядок від А до Я.
=LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})
У порівнянні з вкладеними IF, формула Lookup має ще одну перевагу - вона розуміє символи підстановки і тому може виявляти часткові збіги.
Наприклад, якщо стовпчик А містить кілька сортів бананів, ви можете шукати "*банан*" і отримати однакову абревіатуру ("В") для всіх таких клітинок:
=LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})
Для отримання додаткової інформації див. статтю Формула пошуку як альтернатива вкладеним IF.
Формула Vlookup
При роботі зі змінним набором даних може бути зручніше вводити список збігів в окремі комірки і отримувати їх за допомогою формули Vlookup, наприклад
=VLOOKUP(A2, $D$2:$E$5, 2,FALSE )
Для отримання додаткової інформації, будь ласка, зверніться до посібника "Вставлення таблиць Excel для початківців".
Саме так можна перевірити, чи містить комірка будь-яке значення або певний текст в Excel. Наступного тижня ми продовжимо розглядати функцію "Якщо комірка містить формулу" в Excel і навчимося підраховувати або підсумовувати відповідні комірки, копіювати або видаляти цілі рядки, що містять ці комірки, і багато іншого. Слідкуйте за новинами!
Практичний посібник
Excel Якщо комірка містить - приклади формул (файл .xlsx)