如何确定 AND 函数的行 Excel

How to determine row of an AND function Excel

我正在尝试确定我的传播sheet AND 函数 returns True 的哪一行。

例如,我有一列包含名为 Route 的字符串类别编号。 然后我将路线分成几部分。如果我知道路线 ID 和特定里程点,我想查找具体信息。因此我需要

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

然后我可以使用它来获取有关传播中此特定部分的其他信息 sheet。

使用 MATCH() 函数。

为此,我们假设如下:

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

公式为:

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

这是一个数组公式。作为数组公式,在退出编辑模式时必须使用 Ctrl-Shift-Enter 确认。正确完成后 Excel 会自动将 {} 放在公式周围以表示数组公式。

数组公式不喜欢在计算中使用AndOr,因此我们分别用数学操作数*+替换它们。这是可行的,因为标准将 return TRUE/FALSE 分别存储为基本上为 1/0 的布尔值。

数组公式不应使用完整的列引用,因为计算是指数级的,会减慢计算时间。因此,在覆盖数据可以想象到的最大行数的同时,保持范围引用尽可能小。


现在,我假设您想使用行号在另一列中找到一个值,return您将整个值包装在一个 INDEX() 函数中。

因此,假设您需要条件为 True 的 D 列中的值:

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

这也是一个数组公式。作为数组公式,在退出编辑模式时必须使用 Ctrl-Shift-Enter 确认。正确完成后 Excel 会自动将 {} 放在公式周围以表示数组公式。


那么现在如何处理那些不产生行号的那些,因为三个标准中的一个或多个总是错误的。将整个包装在一个 IFERROR() 函数中:

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

同样,这是一个数组公式,因此适用上述条件。

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