Как отобразить все мои результаты для конкретного поиска. Когда конкретный поиск имеет несколько результатов. Не использует vLookup - PullRequest
0 голосов
/ 28 июня 2018

У меня есть лист с 2 столбцами. ID и SearchTerm

У идентификатора одинаковый номер # для нескольких поисковых запросов.

Я пытаюсь найти, например, идентификатор № 25, а затем показать все результаты на отдельном листе. Без необходимости искать идентификационный номер, а затем скопировать и вставить колумб.

Я попытался создать vLookup, но он возвращает мне только первый SearchTerm на основе идентификатора.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Только для 7225 строк данных формула массива не так уж плоха по скорости (введите ее как формулу массива с помощью Ctrl + Shift + Enter в диапазоне длиной 100 строк и шириной в один столбец:

=INDEX(B1:B7225,SMALL(IF(A1:A7225=4,ROW(A1:A7225)),ROW(INDIRECT("1:100"))))

Измените 4 на желаемое значение поиска (или ячейку с желаемым значением поиска). Вы можете получить больше / меньше 100 результатов, изменив 100.

Я только что проверил его на версии без массива, которую вы вводите, например,

=INDEX(B1:B7225,AGGREGATE(14,6,ROW(B$1:B$7225)/((A$1:A$7255)=4),ROW(A1)))

и версия массива более чем на порядок быстрее.

0 голосов
/ 29 июня 2018

Допустим, ваш поисковый идентификатор указан в E4, и вы хотите, чтобы результаты поиска были в F4: F21. В F4 поместите следующую формулу и скопируйте ее в строку с максимальным числом, которое, по вашему мнению, может быть.

=INDEX(B:B,AGGREGATE(14,6,ROW(B$1:B$7225)/((A$1:A$7255)=E4),ROW(A1)))

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

Сказав все, что я считаю, использование фильтров - более быстрый подход.

UPDATE

Чтобы избежать отображения ошибок, оберните все это в функцию IFERROR:

=IFERROR(INDEX(B:B,AGGREGATE(14,6,ROW(B$1:B$7225)/((A$1:A$7255)=E4),ROW(A1))),"")
...