我有一个数据块,代表流程中的步骤和可能出现的错误:
流程步骤状态 费用已付 表格已接收 OK 角色分配确定 已签入 未签入。 ReadyToStart 尚未准备好开始
我想找到第一个不为“OK”的状态。
我曾尝试过这个:
=Match("<>""OK""", StatusRange, 0)
它应该将范围内第一个不等于(<>)元素的索引返回为“OK”
但这不起作用,而是返回#N/A
。
我希望它返回 4(索引 #4,在基于 1 的索引中,表示 CheckedIn 是第一个非 OK 元素)
有什么想法可以做到这一点吗?
答案1
假设要检查的单元格位于 A1:A10。那么使用以下公式即可:
=MATCH(0,IF(A1:A10="OK",1,0),0)
由进入Ctrl+Shift+Enter
答案2
至少有一种简单的方法可以做到这一点,只要您不介意在某处设置另一个(可能隐藏的)单元格块即可。例如,您可以按如下方式添加一个公式列,用于测试其左侧的单元格是否等于“OK”:
| | A | B | C |
|---+----------------+----------+----------|
| 1 | "ProcessStep" | "Status" | |
| 2 | "FeesPaid" | "OK" | =B2="OK" |
| 3 | "FormRecvd" | "OK" | =B3="OK" |
| 4 | "RoleAssigned" | "OK" | =B4="OK" |
| 5 | "CheckedIn" | "OK" | =B5="OK" |
| 6 | "ReadyToStart" | "OK" | =B6="OK" |
现在您可以使用=MATCH(FALSE,C2:C6,0)
来查找包含第一个非 OK 状态的行。
编辑:Toc 有一个更好的解决方案。