只有當所有值都是數字時才減去值

只有當所有值都是數字時才減去值

我想從一個特定單元格中減去 Excel 中的四個單元格,但前提是這四個單元格中的任何一個都有值。更具體地說,就我而言,單元格 L2 中的公式目前是

=IF(AND(ISNUMBER(E2),ISNUMBER(G2),ISNUMBER(I2),ISNUMBER(K2),),"",D2-E2-G2-I2-K2)

但我只希望當任何或所有單元格 E2、G2、I2、K2 具有值時才計算此值。除非上述情況為真,否則我在使 L2 返回 0 的公式中缺少什麼?

答案1

你需要做的——也是我們兩天前應該要求你做的——是給一些例子,說明你想要什麼輸入得到什麼結果。是的,我知道你給了我們一些,但它們應該是已編輯進入問題;註釋對於表格資料和長公式來說是一個糟糕的地方,它們是錯誤的獲取理解問題所需資訊的地方。無論如何,我已經為您創建了一些範例資料。請注意,它們並不全部正確。我知道它們並不全部正確,因為它們不一致,但我也很難讓它們全部正確,因為我仍在努力理解你想要什麼。

        Case       D        E        G        I        K        L (Result)
        fee       40        1                                  39
        fie       40        0.01                               39.99
        foe       40        0                                  40
        fum       40                                           40
        foo       40                                            0

如果案例fee沒有fie反映您想要的內容,那麼我們就遇到了嚴重的溝通問題。如果你永遠不會在數百萬年裡擁有一個真正的0E2, G2, I2, or中K2,那麼我們真的不需要擔心大小寫foe。所以,40,000 美元的問題是:你想要fum( L2= 40) 還是 foo( L2= 0)?

fum( L2= 40)

這很簡單。設定L2為以下任一項,

  • =D2-E2-G2-I2-K2
  • =D2-(E2+G2+I2+K2)
  • =D2-SUM(E2,G2,I2,K2)

這是等價的。

foo( L2= 0)

有點長,但同樣明顯:

=IF(OR(ISNUMBER(E2),ISNUMBER(G2),ISNUMBER(I2),ISNUMBER(K2)), D2-E2-G2-I2-K2, 0)

這可能看起來很熟悉,因為這是 Teylyn 的答案與我的評論相結合(「如果您希望在任何或所有單元格都有值的情況下計算減法,……請使用OR而不是AND。」)

啊?什麼?

你原來的公式,

=IF(AND(ISNUMBER(E2),ISNUMBER(G2),ISNUMBER(I2),ISNUMBER(K2),),"",D2-E2-G2-I2-K2)

(正如 Teylyn 指出的那樣)AND()使用五個參數來呼叫函數:

  • ISNUMBER(E2),
  • ISNUMBER(G2),
  • ISNUMBER(I2),
  • ISNUMBER(K2), 和
  • (空白的)。

那麼,如果在 Excel 中將空白值用作數字,則會將其視為 0(零)。這就是「fum」公式起作用的原因:空白單元格被視為包含 0。所以你的公式就像

=IF(AND(ISNUMBER(E2),ISNUMBER(G2),ISNUMBER(I2),ISNUMBER(K2),錯誤的),"",D2-E2-G2-I2-K2)

由於是,以上簡化為AND(anything, FALSE)FALSE

=IF(FALSE, "", D2-E2-G2-I2-K2)

或簡單地

=D2-E2-G2-I2-K2

這可能看起來很熟悉,因為它是“ fum”公式。


我們到了嗎?

如果我錯過了你的問題的一些神秘方面,請編輯你的問題澄清它;例如,添加範例數據,其中上述答案都沒有給出您想要的結果。

答案2

當滿足所有條件時,您的公式將傳回空字串。我認為你想要在那個地方進行計算。 AND() 函數中存在雜散逗號。

根據你的口頭描述,你可能需要的公式是

=IF(AND(ISNUMBER(E2),ISNUMBER(G2),ISNUMBER(I2),ISNUMBER(K2)),D2-E2-G2-I2-K2,0)

僅當所有儲存格都包含值時才會進行計算。

但我只希望當任何或所有單元格 E2、G2、I2、K2 具有值時才計算此值。

你需要下定決心。如果要在任何儲存格包含值時進行計算,則不需要 IF 語句。在這種情況下,只需進行減法即可。

答案3

我想你可能需要一個幫手。您可以使用公式將其放在有問題的儲存格下方

=IF(ISNUMBER(E2),E2,0)
。然後你可以在輔助行上做簡單的減法。當然,該公式將輸入到 E3 中。順便說一句,只有當所有參數都為真時,AND 語句才為真,因此您的公式僅當其中的所有單元格都包含數字時才有效。如果只有一個儲存格包含非數字值,則公式將計算為 false 並且不進行計算。 FWIW假=0;正確=不錯誤。

相關內容