使用多个匹配条件在Excel中查找ROW编号

Ale*_*exB 5 excel excel-formula

我需要能够找到匹配条件from的行数A1等于或大于列中的值C且小于或等于列中的值的行号D

我可以使用INDEXMATCH组合但不确定这是否应该用于多个标准匹配.

任何帮助或建议都非常感谢.

cha*_*cea 10

MATCH因为你有多个标准,我不会用来获取行号.INDEX但是,一旦发现了正确的行号,我仍然会使用它来获取E中行的值.

因此,MATCH我将使用IF包含多个条件的语句来使用数组公式.现在请注意,需要使用ctrl+ shift+ 输入数组公式enter.该IF声明是这样的:

=IF((A1>=C:C)*(A1<=D:D),ROW(A:A),"")
Run Code Online (Sandbox Code Playgroud)

注意:我没有在AND这里使用公式,因为它不能使用数组.但由于在Excel中布尔值只是1或0,所以乘以标准就可以了.

现在,这给了我们一个只包含空格和有效行号的数组.这样,如果第5行和第7行都有效,那么数组将如下所示:

{"","","","",5,"",7,"",...}
Run Code Online (Sandbox Code Playgroud)

现在,如果我们IF使用a 封装该语句,SMALL我们可以获得我们想要的任何有效行.在这种情况下,因为我们只想要第一个有效的行,我们可以使用:

=SMALL(IF((A1>=C:C)*(A1<=D:D),ROW(A:A),""),1)
Run Code Online (Sandbox Code Playgroud)

如果第一个有效行为5,那么将返回5.增加公式的KSMALL将允许您获取第2,第3等有效行.

现在当然,因为我们有行号,一个简单的INDEX将获得E列中的值:

=INDEX(E:E,SMALL(IF((A1>=C:C)*(A1<=D:D),ROW(A:A),""),1))
Run Code Online (Sandbox Code Playgroud)

  • 杰出的。使用 LARGE() 可以找到符合条件的最后一行。 (2认同)