Excel匹配与逻辑expression式的问题

(我明白Excel只是边界编程)

我有一个代表过程中的步骤和可能的错误的数据块:

 ProcessStep状态
费用确定
 FormRecvd确定
angular色分配确定
检入未检入。
 ReadyToStart未准备好启动

我想find不是“OK”的第一个状态。

我曾试图这样做:

=Match("<>""OK""", StatusRange, 0)
这是应该返回的第一个元素在不等于(<>)的范围内的索引为“OK”
但是这不起作用,而是返回#N/A

我期望它返回4(在基于1的索引中的索引#4,表示CheckedIn是第一个非OK元素)

任何想法如何做到这一点?

我认为这个和其他类似的问题是完全合法的编程问题(编辑:请参阅: https : //meta.stackexchange.com/questions/22922/which-site-do-excel-or-other-spreadsheet-formulas-belong- 76767#76767 )。 (这可能是其他一些StackOverflow问题的重复,但是。)

你想使用一个数组公式:

 =MATCH(TRUE,(StatusRange<>"OK"),0) 

您需要使用Ctrl-Shift-Enter将其作为数组公式input。

“MATCH”在范围或数组中find一个值。 比较范围到标量,如'(StatusRange <>“OK”)',返回一个布尔值的数组,所以你正在寻找匹配的值为'真'。

(您发布的公式是查找值为“<>”OK“的string文字…)

如果您最终需要ProcessStep列中的值,请查看“INDEX”或“VLOOKUP”函数的帮助。