我有以下Excel电子表格:
A B C D E F G H
1 Q1 Q2 Q3 Q4 Search criteria: 60 Asset 2
2 Asset 1 15 85 90 70 Asset 3
3 Asset 2 40 80 45 60 Asset 3
4 Asset 3 30 60 55 60 Asset 5
5 Asset 4 12 72 25 15
6 Asset 5 60 48 27 98
7
在Cells A1:E6
中,我的资产与第一季度至第四季度相比有所不同。
在Column H
中,列出与Cell G1
中的搜索条件匹配的所有资产。
在这种情况下,搜索条件为60
,可以在Cells A1:E6
中找到Assets 2
,3
和5
的搜索条件。
要创建列表,我使用here中的公式:
=INDEX(A:A,SMALL(IF($B$2:$E$6=$G$1,ROW($B$2:$E$6)),ROW(1:1)))
到目前为止,所有这些都工作正常。
现在,当我将工作表中的Cells A1:E6
例如移至D9:H14
时,只有在数组公式仍然引用A:A
和ROW(1:1)
时,数组公式才能继续工作如果用户决定删除ROW(1:1)
,则会出现问题。因此,我尝试将公式修改为:
=INDEX($D$9:$D$14,SMALL(IF($E$10:$H$14=$J$10,ROW($E$10:$H$14)),ROW($D$9:$H$9)))
但是,通过此修改,我得到了#NUM!
错误。
您是否知道是否可以使数组公式独立于A:A
和ROW(1:1)
,所以它仅引用Cells A1:E6
并在移动这些单元格时自动移动?
答案 0 :(得分:1)
如果您使用的是excel 2013或更高版本,则可以使用以下公式。
=IFERROR(INDEX($D$10:$D$14,AGGREGATE(15,6,ROW($1:$5)/($E$10:$H$14=$J$10),ROW(1:1))),"")
答案 1 :(得分:0)
您可以将A:A
限制为A1:A6
,以便在移动时根据需要进行调整。因此,您的公式应该是现在
=INDEX(A1:A6,SMALL(IF($B$2:$E$6=$G$1,ROW($B$2:$E$6)),ROW(1:1)))
对于ROW(1:1)
,您的顶部公式应始终为ROW(1:1)
,当您向下拖动时,下一个公式应具有ROW(2:2)
。当您将顶部公式移动到其他位置并且ROW(1:1)
更改为ROW(9:9)
之类的东西时,请将其更改为ROW(1:1)
。
请注意,“移动”公式与“向下拖动”不同。
编辑:
因此,在移动数据集之后,最上面的公式应该是:
=INDEX($D$9:$D$14,SMALL(IF($E$10:$H$14=$J$10,ROW($E$10:$H$14)),ROW(1:1)))
这是假设单元格G1
(条件)也已移至J10
。