带索引匹配的 IF/AND 语句

带索引匹配的 IF/AND 语句

因此,我有一个非常长的嵌套 if 语句,最后一个嵌套 IF 是带有索引匹配的 IF/AND 语句。该公式运行良好(至少我认为如此),直到几周后,我需要添加另一个带有索引匹配的 IF/AND 语句。然后整个过程甚至无法运行,因为 Excel 认为我为该函数提供了太多参数。

所以,这个周末我一直在研究这个公式,我开始分析一些部分并意识到这个 IF/AND 语句只是部分起作用。

我的意思是:

(我的公式位于表 1 的优先级列(C 列)中)

如果状态(B 列)显示已批准,我希望我的公式与工作表 2 中的优先级进行索引匹配,除非该单元格为空白 - 然后我希望工作表 1 上的优先级显示“中”。如果工作表 1 上的状态未显示已批准,则我不希望我的公式在该单元格中执行任何操作。

=IF((AND(B2="已批准",INDEX(Sheet2!B:B,MATCH(Sheet1!A2,Sheet2!A:A,0))="")),"中", INDEX(Sheet2!B:B,MATCH(Sheet1!A2,Sheet2!A:A,0)))

将其放入 Sheet1 的 C 列中:

第 1 页。

这是第 2 页:

第 2 页。

第 10 项运行良好 - 状态为已批准,且工作表 2 上的优先级为空白,因此 C 列显示“中”。

但是,第 20 项和第 25 项的 C 列已进行索引匹配,但实际上不应该进行索引匹配 - 它们的状态为“未批准”,因此应将其留空。

我有几个想法可以解决这个问题,但都没有奏效。一个想法是在最后一个索引匹配中添加一个 AND(B2="Approved"),

=IF((AND(B2="Approved",INDEX(Sheet2!B:B,MATCH(Sheet1!A2,Sheet2!A:A,0))="")),"Medium", (AND(B2="Approved",INDEX(Sheet2!B:B,MATCH(Sheet1!A2,Sheet2!A:A,0)))))

它只返回一堆 TRUE 或 FALSE。

特遣队

我还尝试在最后一个索引匹配位中添加另一个 IF,但我意识到它不再是一个有凝聚力的 IF 语句。

我该如何更改公式才能使其正常工作?抱歉,答案很明显,因为我对 Excel 还很陌生。

答案1

首先测试是否“已批准”。如果为 false,则返回""true,然后针对索引执行 if 操作:

=IF(B2="Approved",IF(INDEX(Sheet2!B:B,MATCH(Sheet1!A2,Sheet2!A:A,0))="","Medium", INDEX(Sheet2!B:B,MATCH(Sheet1!A2,Sheet2!A:A,0)),"")

相关内容