如何通过{Array formula} [过滤]数据?

时间:2013-12-23 11:09:55

标签: arrays excel

我的Sheet1!看起来像 -

http://i.stack.imgur.com/ZeEOZ.jpg

在Sheet2上!我想导入属于11月13日的所有行。同样在Sheet3上!所有行都属于Dec-13 ...如何使用数组公式进行这样的动态过滤?我需要数组,因为我的数据源是一个表格&每天都会添加新行。我希望通过不使用电子表格“过滤器”选项的公式来做到这一点。

我对sheet2的预期结果!看起来像 -

http://i.stack.imgur.com/faHAq.jpg

2 个答案:

答案 0 :(得分:0)

如果我理解您的问题,您需要使用字段过滤日期(例如 Sheet1!E1 )。

假设你的桌子在两张床单的A1上开始,你可以插入:

在Sheet2的A-C栏中

=IF(Sheet1!$E$2=Sheet1!$A2;Sheet1!A2;""),直至最大值。条目。

因此,您可以在 Sheet1!E1 中指定所需的日期,所有条目都应显示在Sheet2中

答案 1 :(得分:0)

仅仅因为你要求一个数组函数,这就是你需要做的。

1-在Sheet2中,输入A1中的月份(比如11月13日) 2-然后在Sheet2-> A2中输入以下Array函数。注意Monthly Data是第1页,您可以在其中获得完整的表格。

[功能]

{=IF(ISERROR(
INDEX('Monthly Data'!$A$2:$C$13,SMALL(IF('Monthly Data'!$A$2:$A$13=$A$1,ROW('Monthly Data'!$A$2:$A$13)),ROW(1:1))-1,1)),
"",
INDEX('Monthly Data'!$A$2:$C$13,SMALL(IF('Monthly Data'!$A$2:$A$13=$A$1,ROW('Monthly Data'!$A$2:$A$13)),ROW(1:1))-1,1))}

3-拖动并填写A列,直至看到空白单元格

enter image description here

4-然后你需要为Division修改相同的功能,即在B2栏中输入以下公式

[功能]

{=IF(ISERROR(
INDEX('Monthly Data'!$A$2:$C$13,SMALL(IF('Monthly Data'!$A$2:$A$13=$A$1,ROW('Monthly Data'!$A$2:$A$13)),ROW(1:1))-1,2)),
"",
INDEX('Monthly Data'!$A$2:$C$13,SMALL(IF('Monthly Data'!$A$2:$A$13=$A$1,ROW('Monthly Data'!$A$2:$A$13)),ROW(1:1))-1,2))}

5-拖动并填写B列,直至看到空白单元格

6-对District列重复相同的操作。

[功能]

{=IF(ISERROR(
INDEX('Monthly Data'!$A$2:$C$13,SMALL(IF('Monthly Data'!$A$2:$A$13=$A$1,ROW('Monthly Data'!$A$2:$A$13)),ROW(1:1))-1,3)),
"",
INDEX('Monthly Data'!$A$2:$C$13,SMALL(IF('Monthly Data'!$A$2:$A$13=$A$1,ROW('Monthly Data'!$A$2:$A$13)),ROW(1:1))-1,3))}

希望这有帮助。