Несколько столбцов / значений с индексом / соответствием в Excel - PullRequest
0 голосов
/ 28 апреля 2018

Мне нужно получить несколько столбцов / строк / значений из одной таблицы, которая соответствует некоторым условиям в Excel.

Это пример таблицы.

Table

Мне нужно получить только те значения, которые соответствуют n в столбце H.

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

= ИНДЕКС (G13: Н21, ПОИСКПОЗ ($ C $ 29, Н13: H21,0), {1,2})

Ценю помощь

1 Ответ

0 голосов
/ 28 апреля 2018

Я не понимаю, почему вы пишете, что фильтр не работает в вашем случае.

enter image description here

После выбора опции from text/csv на следующем экране выберите Edit.

enter image description here

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

Затем из раскрывающейся стрелки для столбца 2 можно выбрать параметр «Фильтр» и установить только флажок n.

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

Если вам нужно отфильтровать несколько значений, вы можете импортировать CSV без фильтрации, а затем выполнить несколько запросов к первоначально импортированным данным.

РЕДАКТИРОВАТЬ: Если вы выберете этот метод, вы должны сначала обновить запрос на внешнее соединение. Затем Refresh All обновит зависимые запросы. Вы можете сделать это, выбрав Refresh on Workbook Open только для этого запроса; или выбрав его ни для одного из них, но выполнив обновление для этого внешнего запроса при открытии рабочей книги.

Другие опции:

  • Дублируйте таблицу и используйте разные автоматические или расширенные фильтры для каждой итерации.
  • Вы можете использовать формулу. Одна из проблем заключается в том, что вам придется корректировать формулу после каждого импорта, если исследуемый диапазон отличается С таблицей данных в A1:B9 и значением фильтра в G1 формула может выглядеть следующим образом:

Product:  =IFERROR(INDEX(Sheet5!$A$2:$B$9,AGGREGATE(15,6,1/(1/((Sheet5!$B$2:$B$9=$G$1)*ROW(Sheet5!$A$2:$B$9))),ROWS($1:1))-ROW(Sheet5!$A$1:$B$1),1),"")

Validity: =IFERROR(INDEX(Sheet5!$A$2:$B$9,AGGREGATE(15,6,1/(1/((Sheet5!$B$2:$B$9=$G$1)*ROW(Sheet5!$A$2:$B$9))),ROWS($1:1))-ROW(Sheet5!$A$1:$B$1),2),"")  

Затем заполните по мере необходимости

...