Поиск термина в Excel, возврат соответствующих терминов в массив

262
NOC

Электронная таблица состоит из 5 столбцов и 600 строк. В столбце 1 (в качестве примера) есть 9 типов вирусов, все из которых являются смешанными, но все согласованы по правописанию. Другие 4 столбца являются характеристиками каждого из этих типов.

Таким образом, «вирус 1» имеет h 1, n 1, R 1,5 и был замечен на 6 неделе

и это продолжается для 600 строк с вирусом '1 до 9 смешанных

На отдельном рабочем листе я бы хотел, чтобы Excel вытащил все данные для Virus 3. Поэтому он должен выполнить поиск по всей электронной таблице для всего в столбце 1, называемом «Virus 3», и вернуть для него остальные 4 значения.

Есть простой процесс сортировки и вставки, но я не могу этого сделать, так как это должен быть живой документ. Каждую неделю приходят новые данные, которые смешиваются, я хотел бы, чтобы мои миньоны вырезали и вставляли эти новые данные в мастер-лист, а затем смотрели на 9 других электронных таблиц, которые я создал, а также линии тренда, которые я бы разработали.

1
У вас есть, например, вирус 1 в несколько строк, и вам нужно извлечь все? yass 7 лет назад 0
@yass Вирус 1 встречается (например) 70 раз в столбце 1. В столбце 1 он находится в строках 6, 15, 16, 22, 106 и т. д. Я хотел бы извлечь все данные в столбцах 2, 3, 4 и 5, которые соответствуют «Вирус 1», устанавливающий, что данные располагаются в 70 строках (по 4 столбца) в отдельном листе. NOC 7 лет назад 0

1 ответ на вопрос

0
yass

Используйте следующую формулу в новом листе и запишите в столбце A Имя вируса (Вирус 1 во всем столбце больше, чем ожидалось, пустые строки можно удалить позже.

=IFERROR(INDEX(Sheet1!$A$2:$E$600,SMALL(IF(Sheet1!$A$2:$A$600=A2,ROW($A$2:$A$600),0),COUNTIF(Sheet1!$A$2:$A$600,"<>"&A2)+ROW(A2)-1)-1,2),"") 

Вы должны нажать Ctrl+ Shift+ Enterодновременно для каждой формулы, а затем перетащить ее вниз в тот же столбец

2 в конце представляют столбец 2 на Листе 1, где у вас есть Данные
A2: E600, все ваши Данные в исходном листе (5 столбцов и 600 строк) изменяют его по мере необходимости.
A2: A600 первый столбец
If возвращает строку вируса, если найдено или 0, если нет
Счетчик несовпадающих строк.
Малый найдет наименьшую соответствующую строку без 0
строки (A2), чтобы иметь наименьшую n-ую строку для перемещения индекса при ее перетаскивании.
Индекс вернет значение в той же строке Вирус и столбец 2 для приведенной выше формулы

For column 3 use:    =IFERROR(INDEX(Sheet1!$A$2:$E$600,SMALL(IF(Sheet1!$A$2:$A$600=A2,ROW($A$2:$A$600),0),COUNTIF(Sheet1!$A$2:$A$600,"<>"&A2)+ROW(A2)-1)-1,3),"")  For column 4 use:    =IFERROR(INDEX(Sheet1!$A$2:$E$600,SMALL(IF(Sheet1!$A$2:$A$600=A2,ROW($A$2:$A$600),0),COUNTIF(Sheet1!$A$2:$A$600,"<>"&A2)+ROW(A2)-1)-1,4),"")     For column 5 use:    =IFERROR(INDEX(Sheet1!$A$2:$E$600,SMALL(IF(Sheet1!$A$2:$A$600=A2,ROW($A$2:$A$600),0),COUNTIF(Sheet1!$A$2:$A$600,"<>"&A2)+ROW(A2)-1)-1,5),"") 

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

Ух ты ... Ладно ... позволь мне пробежаться сегодня днем, чтобы посмотреть, сработает ли это. Очень признателен NOC 7 лет назад 0

Похожие вопросы