Excel - агрегирование: извлечение данных из непустых ячеек - PullRequest
0 голосов
/ 08 января 2019

У меня есть большая сумма данных в Excel с множеством строк и столбцов, многие из которых пустые, из которых я хочу извлечь данные на основе 1 критерия с 4 вариантами выбора. Варианты включают в себя: Амстердам, Париж, Мадрид и все. Поэтому, когда я выбираю Амстердам, все данные для Амстердама должны быть извлечены, то же самое касается Парижа и Мадрида. Для опции «Все» я хочу извлечь все данные для всех мест (Амстердам, Париж и Мадрид).

Я использую эту формулу:

=IF(ROWS(B$5:B5)>$J$3,"",INDEX(source[DATE],AGGREGATE(15,6,(ROW(source[DATE])-ROW(source[#Headers]))/SIGN((($E$3="All")+(source[OFFICE]=$E$3))),ROWS(B$5:B5))))

С помощью этой формулы я прекрасно могу извлекать даты для местоположений: Амстердам, Париж и Мадрид, но всякий раз, когда я выбираю «Все», формула просто извлекает первую строку из необработанных данных (большинство из них пустые). Я знаю, что я делаю неправильно, но я не знаю, как это исправить.

Ссылка на пример: https://www.dropbox.com/s/37p4jdxqul2enf4/data%20extract%20non%20blank.xlsx?dl=0

Sheet: Extract E3 - это выпадающий список, из которого я выбираю Location.

1 Ответ

0 голосов
/ 08 января 2019

Необходимо добавить условие для строки, содержащей информацию, чтобы она не была пустой:

=IF(ROWS(B$5:B5)>$J$3,"",INDEX(source[DATE],AGGREGATE(15,6,(ROW(source[DATE])-ROW(source[#Headers]))/SIGN((($E$3="All")+(source[OFFICE]=$E$3))*(source[OFFICE]<>"")),ROWS(B$5:B5))))

Возможно, вам придется изменить то, что у вас есть в J3, или добавить IFERROR к формуле:

=IFERROR(IF(ROWS(B$5:B5)>$J$3,"",INDEX(source[DATE],AGGREGATE(15,6,(ROW(source[DATE])-ROW(source[#Headers]))/SIGN((($E$3="All")+(source[OFFICE]=$E$3))*(source[OFFICE]<>"")),ROWS(B$5:B5)))),"")
...