如何在单个单元格公式中嵌套两个以上的 IF ISNUMBER SEARCH 函数?

如何在单个单元格公式中嵌套两个以上的 IF ISNUMBER SEARCH 函数?

我尝试在一个单元格中嵌套两个以上的 ( ISNUMBER SEARCH) 语句,但最后两个语句不起作用。前两个参数(“n/a”和“r”)有效,但第三个和第四个参数提取了错误的数据。

一个单元格中可以进行两次以上的搜索吗?我的公式哪里出错了?

=IF(ISNUMBER(SEARCH("N/A",$L2)),$E2+$AY$2,IF(ISNUMBER(SEARCH("r",$L2)),$E2+$AY$3,IF(ISNUMBER(SEARCH("rr",$L2)),$E2+$AY$4,IF(ISNUMBER(SEARCH("rrr",$L2)),$E2+$AY$5))))

我的电子表格

提前感谢您的帮助

答案1

这是因为公式在“rr”和“rrr”单元格值中都找到了单个“r”。尝试更改 ISNUMBER 条件的顺序。从“rrr”开始,然后是“rr”,最后是“r”。应该可以。

=IF(ISNUMBER(SEARCH("N/A",$L2)),$E2+$AY$2,IF(ISNUMBER(SEARCH("rrr",$L2)),$E2+$AY$5,IF(ISNUMBER(SEARCH("rr",$L2)),$E2+$AY$4,IF(ISNUMBER(SEARCH("r",$L2)),$E2+$AY$3))))

祝好,卢卡斯

答案2

按照我们看到的公式:

IF( ISNUMBER(SEARCH("N/A",$L2)),
    $E2+$AY$2,
    IF( ISNUMBER(SEARCH("r",$L2)),
        $E2+$AY$3,
        IF( ISNUMBER(SEARCH("rr",$L2)),
            $E2+$AY$4,
            IF( ISNUMBER(SEARCH("rrr",$L2)),
                $E2+$AY$5
              )
          )
      )
  )

现在我们看到:

  1. 最后一个(最里面的)IF() 不包含 ELSE 部分;
  2. 对于由更多内部 IF() 测试的任何值,第二个 IF() 都会给出 True - 因此没有内部 IF() 可以给出 True,因为外部 IF() 已经这样做了。

建议:用简单的方程测试代替SEARCH()。

答案3

SEARCH函数ISNUMBER可用于检查单元格是否包含特定文本。

SEARCH如果找到,则返回搜索字符串的位置,并且公式通过使用ISNUMBER查找其数字位置来测试是否找到搜索字符串。

在您的情况下,在查找rr或时,公式会在和中rrr找到并且每次计算而不是或。rrrrrr$E2+$AY$3$E2+$AY$4$E2+$AY$5

如果L2包含除rr或以外的任何文本,则rrr相同的公式将起作用。

@Muji 耍了个花招,以相反的顺序使用搜索字符串,以便公式首先找到然后rrr找到&rr并正常工作。rrrr

简单的人IF function就能成功测试所有这些。

=IF($L$2="N/A",$E$2+$AY$2,IF($L$2="r",$E$2+$AY$3,IF($L$2="rr",$E$2+$AY$4,IF($L$2="rrr",$E$2+$AY$5))))

根据需要调整公式中的单元格引用。

相关内容