Excel - 聚合:从非空白单元格中提取数据

问题描述 投票:0回答:1

我在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

工作表:提取E3是一个下拉列表,我从中选择位置。

excel if-statement extract aggregate-functions
1个回答
1
投票

您需要为包含不为空的信息的行添加条件:

=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)))),"")
© www.soinside.com 2019 - 2024. All rights reserved.