我在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)))),"")