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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel - 聚合:从非空白单元格中提取数据相关的知识,希望对你有一定的参考价值。

我在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是一个下拉列表,我从中选择位置。

答案

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

=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)))),"")

以上是关于Excel - 聚合:从非空白单元格中提取数据的主要内容,如果未能解决你的问题,请参考以下文章

循环遍历指定文件夹中的所有 excel 文件,并从特定单元格中提取数据的代码

excel提取单元格中的部分内容

怎样提取excel单元格中的部分数字

如何使用ruby中的电子表格gem从excel单元格中提取超链接地址?

excel中如何提取单元格中第三个特定字符后面的字符?

如何从选定的 Excel 工作表单元格中在宏中添加时间戳