如何在單一儲存格公式中嵌套兩個以上的 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

具有SEARCHISNUMBER功能,可用於檢查單元格是否包含特定文字。

SEARCH如果找到,則傳回搜尋字串的位置,並且該公式透過使用ISNUMBER查找其數字位置來測試是否找到搜尋字串。

在您的情況下,在查找rror時rrr,公式會查找rBetweenrr和 in rrr,並且每次都會計算$E2+$AY$3而不是$E2+$AY$4or $E2+$AY$5

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

@Muji 做到了這一點,以相反的順序使用搜尋字串,以便公式找到第一個rrrthen rr& rinrrr並正常工作。

簡單的人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))))

根據需要調整公式中的儲存格引用。

相關內容