Как сопоставить текст с шаблоном в целевой матрице

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

Вот проблема: я хочу избежать длинного списка очень похожих записей в таблице индексов описания. У меня уже есть более десяти записей, содержащих подстроку «amazon». Поэтому я думал об использовании подстановочных знаков в MATCH чтобы все транзакции, содержащие подстроку «amazon» (или аналогичные), сопоставлялись с одним типом. К сожалению, MATCH поддерживает подстановочные знаки только в значении поиска, а не в целевой матрице. Поэтому представляется невозможным поддерживать таблицу индексов описания, в которой используются шаблоны сопоставления подстановочных знаков.

Это можно сделать?

Рассмотрим следующие примеры таблиц. Я хочу сопоставить « Description против Pattern чтобы найти « Type .

Таблица транзакций

 | Description | Amount | |-------------------|--------| |Amazon Merchant XY | 100.00 | |Amazon online //> | 89.99 | |Amazon.com | 32.64 | 

Справочная таблица

 | Pattern | Type | |-----------|--------------| |*amazon* |Shoping | |*itunes* |Entertainment | 

Вот вам решение:

 =INDEX($F$2:$F$3,MAX(ROW($A$1:$A$2)*IF(ISERROR(FIND($E$2:$E$3,A2)),0,1))) 

Это нужно ввести с помощью Ctrl + Shift + Enter, а не Enter .

Он работает со следующей настройкой: введите описание изображения здесь


объяснение

 IF(ISERROR(FIND($E$2:$E$3,A2)),0,1) 

Прокручивает вашу таблицу поиска и создает массив из них и нули в зависимости от того, было ли найденное значение поиска в строке A2 в случае A2, массив будет {1,0}

Умножение этой строки на ROW($A$1:$A$2) эффективно дает вам позицию в строке, которую вы можете использовать с помощью функции INDEX : {1,0}*{1,2} = {1,0} нет, что в случай A4 мы бы получили примерно следующее: {0,1}*{1,2} = {0,2}

Таким образом, принятие MAX этого дает вам число 1 или 2 в зависимости от того, какая строка была найдена, и вы можете использовать это как обычно с помощью функции INDEX . Обратите внимание, что использование функции MAX означает, что если у вас более одного совпадения, это займет самое низкое совпадение в списке.

  • найти индекс строки для числа, которое произошло первым
  • Excel находит следующее значение в столбце
  • Выбор значений в списке на основе интервала?
  • 1000 листов, данные в одной ячейке данных сопоставления листов в ячейке на другом листе
  • Получить уникальный номер недели для определенного месяца в Excel
  • Формулы Excel для группировки и суммирования данных с наименьшим и самым большим в группе
  • Логический переключатель от 1/0 до 0/1
  • Как получить значения из соседней ячейки, если существует совпадение между двумя столбцами?
  • Возврат последнего значения из строки в Excel
  • Сумма EXCEL и суммы, исключая несколько слов
  • Я хочу показать нули в десятичной запятой, но они уходят, когда упоминаются в SUM
  • Давайте будем гением компьютера.