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

Например, у меня есть список расходов, перечисленных в полке А продавцом:

  • Nandos
  • Uber
  • Макдоналдс
  • PureGym

Я хочу классифицировать их в Col B :

[ Find "Nandos|McD " in ColA and write "Food" in the equivalent cell in ColB ]

[ Find "Uber" in ColA and write "Travel" in the equivalent cell in ColB ]

[ Find "PureGym" in ColA and write "Gym" in the equivalent cell in ColB ]

Итак, я заканчиваю с:

  • Нандос - Еда
  • Uber - Путешествие
  • Макдональдс - еда
  • PureGym - Тренажерный зал

2 ответа2

2

Функции поиска, такие как VLOOKUP или комбинация INDEX и MATCH, очень распространены, основные функции используются в Excel, поэтому с ними стоит ознакомиться. Для начала, есть хорошее объяснение VLOOKUP здесь.

Вот суть вашего примера:

Некоторые подготовленные данные находятся в столбцах A и C. В другом месте на рабочем листе или на другом рабочем листе у вас есть справочная таблица. Я вставил его в столбцы F и G. В столбце B вы хотите указать категорию для каждой записи. Формула в B2:

=VLOOKUP(A2,$F$2:$G$5,2,0)

Вы просто копируете его по мере необходимости. Ссылка на продавца в столбце A не привязана, поэтому при копировании формулы вниз по странице будет отображаться текущая строка. Таблица поиска в F:G привязана к абсолютной адресации (знаки доллара), поэтому она будет продолжать указывать на таблицу при копировании формулы. Третий параметр указывает VLOOKUP получить результат из второго столбца таблицы. Последний параметр (0 или false) указывает VLOOKUP выполнить точное совпадение с именем продавца.

Улучшенное решение

Вы представили вызов в своем комментарии, предположим, что запись продавца в столбце A представляет собой произвольную текстовую строку, которая содержит имя продавца в справочной таблице. Вы можете сделать это примерно так:

В строке 6 я добавил пример в ваш комментарий. Я также добавил порядковые номера для строк таблицы рядом с именем продавца в таблице поиска. Формула в столбце B (показана для B6 в окне формул):

=INDEX($G$2:$G$5,SUMPRODUCT(ISNUMBER(SEARCH($F$2:$F$5,A6))*$E$2:$E$5))

При этом используется INDEX для извлечения категории из столбца G на основе строки таблицы, созданной SUMPRODUCT.

SUMPRODUCT позволяет выполнять операции с массивами в диапазоне. Он использует функцию ПОИСК, чтобы увидеть, содержится ли каждое имя продавца в столбце F в строке продавца в столбце A. Поиск возвращает позицию или ошибку, но нас интересует только, есть ли она, что будет числовым результатом. ISNUMBER возвращает 1 для true или 0 для false, который умножается на номер строки таблицы, добавленный в столбец E. Результатом SUMPRODUCT будет строка таблицы соответствующего продавца.

Если вы хотите сделать имя продавца более видимым, вы можете вставить столбец справа от A, чтобы отобразить только имя продавца, сохраненное в справочной таблице. Для этого можно использовать ту же формулу, что и выше, но указывать диапазон INDEX для столбца F вместо столбца G.

1

функция регулярного выражения:- =INDEX($F$1:$F$4,MAX(IFERROR(SEARCH("*"&$E$1:$E$4&"*",E11)*ROW($E$1:$E$4),0)))

после вставки нажмите Ctrl+Shift+Enter

RegexFunctionExcelImage

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .