我在 Excel 上收到“您為此函數輸入了太多參數”

我在 Excel 上收到“您為此函數輸入了太多參數”

我有一個表,使用者透過逐一添加元素來添加化學式(表有 5 行),我嘗試用兩種方式計算不飽和度。使用者必須透過在儲存格中寫入 1 或 2 來指定方式,然後有這樣的 if 語句: =IF(N16=1,((2*IF(ISBLANK(C8),0,(C8*(D8-2)))-(IF(ISBLANK(C9),0,(C9*(D9-2))-IF(ISBLANK(C11),0,(C11*(D11-2))+IF(ISBLANK(C12),0,(C12*(D12-2)))/2),(2+(IF(ISBLANK(C8),0,(C8*(D8-2))+IF(ISBLANK(C9),0,(C9*(D9-2))+IF(ISBLANK(C11),0,(C11*(D11-2))+IF(ISBLANK(C12),0,(C12*(D12-2))))))))) 這些 ISBLANK 用於檢查儲存格中是否寫入了元素

答案1

嗯,光憑這個公式很難看出你所做的事情的意義。

如果它本質上被視為您的計劃,除了錯誤 Excel 報告之外,那麼您的公式中有以下概念:

如果某個條件(本例中 N16=1)為真,則報告此(無論「此」是什麼),如果不為真,則無論如何報告此(無論「此」是什麼)。

歸根結底,與以下內容相同:

=IF(A1=1,50,50)

關鍵是,如果 TRUE 和 FALSE 得到相同的結果,那麼IF().請注意,情況中可能存在邏輯之外的原因,誰知道呢,其中之一可能適用。由於您沒有提供任何對解決該問題有意義的信息,因此無法確定。但如果沒有人這樣做,而且這似乎很有可能,那為什麼IF()還要使用呢?

因此,這裡只有 TRUE 或 FALSE 的結果才重要(因為它們是相同的)。您只需使用公式的這些部分之一即可簡化公式。

那就是如果你想「簡化」它。如果你願意大大簡化然後考慮每個測試的作用。每次測試的基本結果是從某個單元格中減去 2,然後將其乘以測試單元格。涼爽的。如果該測試單元格為空,Excel 會將其視為 0,並且乘法將得到 0。只需實際的乘法即可為您完成此操作,無需任何其他操作。如果你放棄額外的工作和整個IF()想法,你會得到以下結果:

=(2  *  C8*(D8-2)  -  C9*(D9-2)  -  C11*(D11-2)  +  C12*(D12-2)  )  /2

由於似乎沒有理由將其乘以 2,然後將其除以 2,因此也將其取出:

=C8*(D8-2)  -  C9*(D9-2)  -  C11*(D11-2)  +  C12*(D12-2)

我會認為預期的「C10*(D10-2)」不存在是有充分理由的,然後繼續。

在這一點上停止簡化(因為無論如何,從技術上講,在這種情況下,更多的事情恰好是“簡化”而不是“簡化”),我會指出使用上述公式而不是您的公式的一個巨大優勢:

它是如此簡單,而且易於輸入或生成,因此愚蠢的輸入錯誤應該很難發生,如果發生的話應該非常容易找出。對比你的公式和優點應該很容易看出。

這個答案的重要部分是這個,而不是上述交易的特定技巧。

相關內容