我需要能够找到行的行号,其中A1
的匹配条件等于或大于列C
中的值,小于或等于列{{1}中的值}
我可以使用D
和INDEX
组合,但不确定这是否应该用于多个条件匹配。
非常感谢任何帮助或建议。
答案 0 :(得分:10)
由于您有多个条件,我不会使用MATCH
来获取行号。但是,一旦发现了正确的行号,我仍然会使用INDEX
来获取E中行的值。
因此,我将使用包含多个条件的MATCH
语句来使用数组公式而不是IF
。现在请注意,需要使用ctrl
+ shift
+ enter
输入数组公式。 IF
语句如下所示:
=IF((A1>=C:C)*(A1<=D:D),ROW(A:A),"")
注意:我在这里没有使用AND
公式,因为它不能用于数组。但由于布尔值只是Excel中的1或0,所以乘以标准就可以了。
现在这给了我们一个只包含空格和有效行号的数组。这样,如果第5行和第7行都有效,那么数组将如下所示:
{"","","","",5,"",7,"",...}
现在,如果我们用IF
封装SMALL
语句,我们可以得到我们想要的任何有效行。在这种情况下,因为我们只想要第一个有效的行:
=SMALL(IF((A1>=C:C)*(A1<=D:D),ROW(A:A),""),1)
如果第一个有效行为5,那么将返回5.增加K
公式的SMALL
值将允许您获取第2,第3等有效行。
现在当然,因为我们有一个行号,一个简单的INDEX
将获得E列中的值:
=INDEX(E:E,SMALL(IF((A1>=C:C)*(A1<=D:D),ROW(A:A),""),1))
答案 1 :(得分:0)
如果您需要匹配多个列值来检索行号,即如果两列或更多列一起创建一个唯一 ID,您可以使用 MATCH 的数组公式,如下所示:
MATCH(1,(A:A=J1)*(B:B=K1)*(C:C=L1),0)
其中A、B、C包含要匹配的列数组,分别检索J1、K1、L1中值对应的唯一行号。