我想從一個特定單元格中減去 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
反映您想要的內容,那麼我們就遇到了嚴重的溝通問題。如果你永遠不會在數百萬年裡擁有一個真正的0
在E2
, 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;正確=不錯誤。