我不会使用MATCH 来获取行号,因为您有多个条件。但是,一旦发现正确的行号,我仍然会使用 INDEX 来获取 E 中行的值。
因此,我将使用包含多个条件的 IF 语句的数组公式,而不是 MATCH。现在请注意,需要使用ctrl + shift + enter 输入数组公式。 IF 语句如下所示:
=IF((A1>=C:C)*(A1<=D:D),ROW(A:A),"")
注意:我在这里没有使用AND 公式,因为它不能包含数组。但由于布尔值在 Excel 中只是 1 或 0,因此乘以标准就可以了。
这给了我们一个只包含空格和有效行号的数组。这样如果第 5 行和第 7 行都有效,则数组将如下所示:
{"","","","",5,"",7,"",...}
现在,如果我们用SMALL 封装IF 语句,我们可以得到我们想要的任何有效行。在这种情况下,因为我们只想要我们可以使用的第一个有效行:
=SMALL(IF((A1>=C:C)*(A1<=D:D),ROW(A:A),""),1)
如果第一个有效行是 5,那么它将返回 5。增加 SMALL 公式的 K 值将允许您获取第二、第三等有效行。
当然,既然我们有行号,一个简单的INDEX 将得到 E 列中的值:
=INDEX(E:E,SMALL(IF((A1>=C:C)*(A1<=D:D),ROW(A:A),""),1))