如何确定 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 会自动将 {}
放在公式周围以表示数组公式。
数组公式不喜欢在计算中使用And
和Or
,因此我们分别用数学操作数*
和+
替换它们。这是可行的,因为标准将 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"
。
我正在尝试确定我的传播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 会自动将 {}
放在公式周围以表示数组公式。
数组公式不喜欢在计算中使用And
和Or
,因此我们分别用数学操作数*
和+
替换它们。这是可行的,因为标准将 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"
。