Как использовать подстроку для возврата списка совпадающих значений в Excel - PullRequest
0 голосов
/ 25 марта 2020

Это вопрос о функции Excel.

У меня есть список из 400K + строк. Многие из них являются вариациями с тем же названием. Мне нужен способ автоматического сопоставления любой записи списка со строкой. Поэтому, если все 5 элементов в моем списке содержат строку 'ldl', я хочу получить способ их вернуть.

У меня есть следующий фрагмент кода, который, как я проверял, работает для точного соответствия. D2 - это значение, которое я хочу сопоставить, а a2: a11 - это диапазон, который я ищу. Я просто перетаскиваю дескриптор ячейки вниз, сколько нужно строк, и мне будет соответствовать столько экземпляров в списке

= INDEX ($ A $ 2: $ A $ 11, SMALL (IF ($ D $ 2) = $ A $ 2: $ A $ 11, ROW ($ A $ 2: $ A $ 11) -ROW ($ A $ 2) +1), ROW (1: 1)))

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

Я попробовал следующее, но, хотя синтаксически правильно, он возвращает только первое значение в списке.

= ИНДЕКС ($ B $ 2: $ B $ 11, МАЛЕНЬКИЙ (ЕСЛИ (НОМЕР (ПОИСК ($ D $ 2, $ A $ 2: $ A $ 11))), ROW ($ B $ 2: $ B $ 11) - ROW ($ B $ 2) +1), ROW (1: 1)))

Изображение, которое я включил, демонстрирует текущую функциональность точного соответствия. Я бы хотел, чтобы A2: A11 мог содержать D2 с любым количеством символов до или после значения поиска. Например, на скриншоте я хотел бы вернуть A11. enter image description here

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 25 марта 2020

Вы можете комбинировать функции INDEX, AGGREGATE и SEARCH:

=INDEX($A$2:$A$11,AGGREGATE(15,6,(SEARCH($D$2,$A$2:$A$11)>0)*ROW($A$2:$A$11)-1,ROW()-1))

enter image description here

0 голосов
/ 25 марта 2020

Вот ваша первая формула, измененная для использования функции ПОИСК:

=INDEX($A$2:$A$11, SMALL(IF(IFERROR(SEARCH($D$2,$A$2:$A$11),FALSE), ROW($A$2:$A$11)-ROW($A$2)+1), ROW(1:1)))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...