如何确定一个AND函数Excel的行

我试图确定我的电子表格中哪一行的AND函数返回True。

例如,我有一个包含一个名为Route的String类别的列。 然后,我把路线分成了几个部分。 我想find具体的信息如果我知道一个路线ID和一个特定的里程数。 这样我需要

If(AND(route=specified.route, Beginning.marker <= specified.marker, specified.marker <= end.marker), Return.Row, "not found") 

然后,我可以使用它来获取有关电子表格中这个特定分段的其他信息。

使用MATCH()函数。

为此,让我们假设如下:

  • 路线是列A
  • 开始是B列
  • 结束是C列

公式将是:

 =MATCH(1,IF(($A$1:$A$1000 = specified.route)*($B$1:$B$1000 <= specified.marker)*($C$1:$C$1000 >= specified.marker),1,0),0) 

这是一个数组公式。 作为数组公式,在退出编辑模式时,必须用Ctrl-Shift-Enter确认。 如果正确完成,Excel将自动在公式周围放置一个数组公式。

数组公式不喜欢在计算中使用AndOr ,因此我们分别用math操作数*+replace它们。 这是有效的,因为条件将返回TRUE / FALSE,它们被存储为一个布尔值,基本上是1/0。

数组公式不应该使用完整的列引用,因为计算是指数式的,会减慢计算时间。 所以保持范围参考尽可能小,同时覆盖数据可能会出现的最大行数。


现在,我假设您要使用行号在另一列中查找值,要返回该值,则将整个事件包装在INDEX()函数中。

因此,让我们假设你想从标准为True的列D的值:

 =INDEX(D$1:$D$1000,MATCH(1,IF(($A$1:$A$1000 = specified.route)*($B$1:$B$1000 <= specified.marker)*($C$1:$C$1000 >= specified.marker),1,0),0)) 

这也是一个数组公式。 作为数组公式,在退出编辑模式时,必须用Ctrl-Shift-Enter确认。 如果正确完成,Excel将自动在公式周围放置一个数组公式。


那么现在该怎么做那些不会导致行号的因为三个标准中的一个或多个总是假的。 将整体包装在一个IFERROR()函数中:

 =IFERROR(INDEX(D$1:$D$1000,MATCH(1,IF(($A$1:$A$1000 = specified.route)*($B$1:$B$1000 <= specified.marker)*($C$1:$C$1000 >= specified.marker),1,0),0)),"not found") 

这又是一个数组公式,所以上述条件适用。

如果没有匹配,这将返回"not found"