Оглавление
Если у вас есть список текста и вы хотите выполнить поиск ячеек и вернуть значения на основе этого списка, вам придется построить формулу, поскольку Excel не предоставляет простого способа сделать это. В этой статье я рассмотрел этот вопрос и предоставил пять различных формул для выполнения этой операции, чтобы вы могли выбрать идеальную для вашей ситуации и вернуть значение, если ячейка содержит определенный текстиз списка.
Скачать Рабочую тетрадь для практических занятий
Вы можете скачать рабочую тетрадь, которую я использовал в этой статье, по следующей кнопке и потренироваться с ней самостоятельно.
Если ячейка содержит текст из списка.xlsx
Введение в функции, используемые в данной статье
Формулы, которые я использовал здесь, используют следующие функции:
- Функция COUNTIFS:
Эта функция подсчитывает ячейки, соответствующие нескольким критериям. Синтаксис функции Функция COUNTIFS заключается в следующем.
=COUNTIFS (диапазон1, критерии1, [диапазон2], [критерии2], ...)
- диапазон1 - Первый диапазон для оценки.
- критерии1 - Критерий для использования на 1-м диапазоне.
- range2 [необязательно]: Второй диапазон действует так же, как и диапазон1.
- критерии2 [необязательно]: Критерий, который будет использоваться на 2-ом диапазоне. Эта функция позволяет использовать максимум 127 диапазоны и пары критериев .
- Функция TEXTJOIN:
Эта функция объединяет текстовые значения с разделителем. Синтаксис функции Функция TEXTJOIN заключается в следующем.
=TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...)
- разделитель: Разделитель между текстами, которые функция собирается объединить.
- ignore_empty: Этот аргумент определяет, игнорирует ли функция пустые ячейки или нет.
- text1: 1-е текстовое значение (или диапазон).
- text2 [необязательно]: 2-е текстовое значение (или диапазон).
- Функция MATCH:
Эта функция получает позицию элемента в массиве. Синтаксис функции Функция MATCH заключается в следующем.
=MATCH (lookup_value, lookup_array, [match_type])
- lookup_value: Значение для сравнения в массив поиска .
- lookup_array: Диапазон ячеек или ссылка на массив.
- match_type [необязательно]: 1 = точное или следующее наименьшее, 0 = точное совпадение, -1 = точное или следующее наибольшее. По умолчанию, match_type=1.
- Функция ИНДЕКС:
Эта функция получает значения в списке или таблице на основе местоположения. Синтаксис функции Функция ИНДЕКС заключается в следующем.
=INDEX (массив, row_num, [col_num], [area_num])
- массив: Диапазон ячеек или константа массива.
- row_num: Позиция строки в ссылке.
- col_num [необязательно] : Позиция столбца в справочнике.
- area_num [необязательно]: Диапазон в ссылке, который следует использовать.
- Функция IFERROR:
Эта функция отлавливает и обрабатывает ошибки. Синтаксис функции Функция IFERROR заключается в следующем.
=IFERROR (значение, значение_if_error)
- ценность: Значение, ссылка или формула для проверки на наличие ошибки.
- значение_если_ошибка: Значение, возвращаемое в случае обнаружения ошибки.
- Функция ПОИСК:
Эта функция получает расположение текста в строке. Синтаксис функции Функция ПОИСК заключается в следующем.
=SEARCH (find_text, within_text, [start_num])
- найти_текст : Этот аргумент указывает, какой текст нужно найти.
- в пределах_текста: Здесь указывается, где найти текст.
- начальное_число [необязательно]: С помощью этого параметра вы указываете, с какой позиции в текстовой строке вы будете отсчитывать позицию указанного текста. Необязателен и по умолчанию равен 1 слева.
5 формул для возврата значения в Excel, если ячейка содержит определенный текст из списка
Я попытаюсь представить пример из реальной жизни в этом наборе данных. Здесь представлены некоторые напитки. Чипсы , Холодные напитки и Зерновые это три категории напитков в данном наборе данных. В одном столбце под названием Все товары Название и категории напитков связаны между собой. Две из этих категорий, Чипсы и Холодные напитки , также п Список колонка. на основе Список столбец, во втором столбце будет отображаться желаемый выход.
1. Объедините функции COUNTIF, IF & OR, чтобы вернуть значение, если ячейка содержит текст из списка
Это наиболее полезная формула, если вы хотите вернуть значение всей ячейки после совпадения.
Здесь я извлек значения ячеек из ячейки Продукция который соответствовал Список критерии столбцов и показал их Продукт, основанный на этом списке колонна.
Формула выглядит следующим образом:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Формула разбивки:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Здесь Знак звездочки ( * ) является символом подстановки. Он искал " Чипсы " и "Холодные напитки" подстрока в пределах Клетка B5 который "
Ruffles - чипсы
"
струна.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
Сайт COUNTIF функция возвращает единицу для каждого совпадения подстроки. Как "
Чипсы
"
находится в Клетка B5 , возвращается { 1:0 }.
=IF(OR({1;0}), B5, "")
Сайт ИЛИ функция возвращает TRUE значение, если любой из аргументов TRUE В этом случае один (1)= TRUE .
=IF(TRUE, "Ruffles - Chips", "")
Как ЕСЛИ значение функции TRUE возвращает первый аргумент, который является желаемым результатом.
Окончательный Выход : Оборванцы - чипсы
Примечание:
Здесь я показал ячейку, которая совпала, но вы можете показать любой вывод, какой захотите, изменив параметр ЕСЛИ функции выход с желаемым выходом.
=IF(OR(COUNTIF(B5, "*"&$E$5:$E$6& "*")),TRUE,FALSE)
Читать далее: Если ячейка содержит слово, то присвоить значение в Excel (4 формулы)
2. использование комбинации IF-OR с функцией ПОИСК для возврата значения с несколькими условиями
Здесь я извлек значения ячеек из ячейки Продукция который соответствовал Список критерии столбцов и показал их Продукт, основанный на этом списке колонна.
Формула выглядит следующим образом:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Формула разбивки:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Сайт ПОИСК функция выполнила поиск значений Список колонка в Клетка B5 . Для " Чипсы . 11 которая является начальной позицией подстроки. Для Холодные напитки , выдает ошибку.
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE)))),B5,"")
Сайт ISNUMBER преобразованная функция 11 в TRUE значение и ошибку в FALSE ценность.
=IF(OR(TRUE,FALSE)),B5,"")
Сайт ИЛИ функция возвращает TRUE значение, если любой из аргументов TRUE Поскольку есть TRUE аргумент, он также возвращает TRUE значение в этом случае.
=IF(TRUE, "Ruffles - Chips","")
Как ЕСЛИ значение функции TRUE возвращает первый аргумент, который является желаемым результатом.
Конечный результат: рябина - чипсы
Примечание:
- Здесь я показал ячейку, которая совпала, но вы можете показать любой вывод, который хотите, изменив параметр ЕСЛИ функции выход с желаемым выходом.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
- Основное преимущество этой формулы в том, что это не формула массива, но она не рекомендуется, если у вас много ячеек в Список так как вам придется вводить каждую ячейку Список вручную.
- Для ситуаций, чувствительных к регистру, мы можем использовать приведенную ниже формулу на основе функция FIND вместо ПОИСК функция.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
Читать далее: Excel If Cell Contains Text Then Return Value (8 простых способов)
Похожие чтения:
- Как подвести итог, если ячейка содержит определенный текст в Excel (6 способов)
- Использование VLOOKUP, если ячейка содержит слово в тексте в Excel
- Как найти текст в диапазоне Excel & вернуть ссылку на ячейку (3 способа)
3. Использование формулы TEXTJOIN для возврата значения в другую ячейку, если ячейка содержит текст из списка
Эта формула полезна, когда вам нужно показать, какая строка или строки из Список подобранные.
Здесь я извлек значения ячеек из файла СПИСОК столбец, где они совпадают с Продукт и отобразил их на значение Matched из Список колонна.
Формула выглядит следующим образом:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"), $E$5:$E$6,""))
Формула разбивки:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"),$E$5:$E$6,""))
Здесь Знак звездочки ( * ) является символом подстановки. Он искал " Чипсы " и "Холодные напитки" подстрока в ячейке B5, которая равна " Оборванцы - чипсы " строка.
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))
Сайт COUNTIF функция возвращает единицу для каждого совпадения подстроки. Поскольку " Чипсы " находится в Клетка B5 , возвращается { 1:0 }.
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,""))
Сайт ЕСЛИ функция возвращает только " Чипсы " значение, так как только первое значение его аргумента было единицей = Правда .
TEXTJOIN(", ",TRUE,{"Чипсы";""})
Сайт TEXTJOIN функция здесь ничего не сделала, так как только одно значение из Список Если бы было много значений, то возвращаются все значения с запятыми (,) между ними в качестве разделителя.
Конечный результат: чипсы
Читать далее: Если ячейка содержит текст, то добавьте текст в другую ячейку в Excel
4. Использование формулы INDEX MATCH для возврата значения, если ячейка содержит определенный текст
Это альтернатива TEXTJOIN Эта формула также показывает, какая строка или строки из Список подобранные.
Здесь я извлек значения ячеек из файла СПИСОК столбец, где они совпадают с Продукт и отобразил их на значение Matched из Список колонна.
Формула выглядит следующим образом:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6& "*"), 0)),"")
Формула разбивки:
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5, "*"&$E$5:$E$6& "*"),0)),"")
Здесь Знак звездочки ( * ) является символом подстановки. Он искал " Чипсы " и " Холодные напитки " подстрока в пределах Клетка B5 это " Ruffles - чипсы " строка.
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")
Сайт COUNTIF функция возвращает единицу для каждого совпадения подстроки. Поскольку " Чипсы " находится в Клетка B5 , возвращается { 1:0 }.
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),"")
Сайт МАТЧ функция возвращает единицу, так как существует только одно значение " Чипсы ", который соответствовал.
IFERROR(INDEX($E$5:$E$6,1),"")
Сайт ИНДЕКС функция вернула " Чипсы ", так как это было значение в Список массив.
IFERROR("Чипсы","")
Здесь IFERROR используется для обработки ошибки, возникающей при отсутствии совпадений.
Конечный результат: чипсы
Примечание:
Здесь я показал ячейку, которая совпала, но вы можете показать любой вывод, какой захотите, изменив параметр ЕСЛИ функции выход с желаемым выходом.
Читать далее: Формула Excel Если ячейка содержит текст, то вернуть значение в другую ячейку
5. применение функции EXACT с IF и TEXTJOIN
Это еще одно решение данной проблемы в различных ситуациях. Здесь я извлек значение ячейки из столбца List с одним членом. Мы сопоставили это значение с Product и показали все совпадающие значения в одной ячейке.
Формула выглядит следующим образом:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Разбивка формулы :
EXACT(C5:C14,$F$5)
Эта часть проверяет, какие значения Диапазон C5:14 совпадать с Ячейка F5 и вернуть TRUE и FALSE .
IF(EXACT(C5:C14,$F$5),B5:B14,"")
Эта часть возвращает имена, для которых мы получаем TRUE .
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Наконец, это объединяет все имена с запятой после каждого имени.
Краткие заметки
Все эти формулы здесь (кроме 2-й) являются формулами массива. Это означает, что вы должны нажать кнопку Ctrl+Shift+Enter вместо того, чтобы нажимать только кнопку Войти кнопку для ввода этой формулы. Но если вы Office 365 пользователя, то вы можете применить их, нажав просто Войдите.
Заключение
В этой статье я привел различные формулы для различных случаев, чтобы вернуть значение, если ячейка содержит определенный текст из списка. Надеюсь, вы смогли найти решение вашей проблемы. Пожалуйста, оставьте комментарий, если у вас есть какие-либо предложения или вопросы. Кроме того, вы можете посетить наш сайт блог для других подобных статей.