僅當滿足給定條件時才顯示公式結果

僅當滿足給定條件時才顯示公式結果

我喜歡保持 Excel 電子表格相當乾淨。所以,很多時候我最終會寫出這樣的聲明:

IF([formula x]=[value],"",[formula x])

這實質上是說,如果公式符合給定條件,則不顯示結果 - 否則,顯示結果。

在某些情況下,[formula x]會在整列單元格中重複,並且每個單元格都有一個指向[formula x]其上方單元格的參考。為了避免公式錯誤,我必須添加另一層,如下所示:

IF(C2="","",IF([formula x]=[value],"",[formula x])

然而,特別[formula x]是當 很長時,這可能會導致最終公式看起來比實際複雜得多,並且比應有的情況更難以排除故障和維護。

這是一個可怕的例子...

基本公式:

=IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)

添加條件消隱:

=IF(C2="","",IF(IF(A3>=$E$11,C2+(C2*($F$2/12)-$E$9),C2+(C2*($F$2/12))-$E$7)<=0,"",IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)))

一個已經很長的公式的大小增加了一倍多,這樣當相同的公式滿足給定條件時,我可以顯示空白(或任何其他選定的值)。如果我嘗試在整行上執行此操作,根據起始公式,我很容易遇到循環引用錯誤。

有沒有辦法在同一儲存格中自引用現有公式或參數,或者可以使用另一個函數或功能來更乾淨地實現此結果?

執行我正在尋找的功能的函數可能如下所示:

=FnName([base formula],[match condition],[condition result])

參數 1 是基本公式,參數 2 是我感興趣的匹配條件。參數 3 是條件匹配時顯示的結果。如果條件不匹配,函數將傳回基本公式的結果。

答案1

您是否考慮過評估隱藏儲存格(或另一個工作表上的儲存格)中的公式,然後根據隱藏儲存格中的值進行條件消隱,而不必輸入公式兩次。我不知道你工作的整個背景,但我過去做過類似的事情並取得了一些成功。

答案2

您可以求助於 VBA 函數來清理公式語法。例如,您可以將類似的內容放入模組中(按Alt+ F11,然後按 Insert >> Module):

Option Explicit
Public Function BLANKIF(checkcell As String, notb As Variant, Optional checkcond As String) As Variant
If checkcell = checkcond Then
    BLANKIF = ""
Else
    BLANKIF = notb
End If
End Function

因此,要使用它來應用條件消隱

=IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)

你會使用

=BLANKIF(C2,IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7))

如果您想要將儲存格設為空白 if C2= "omg",您可以新增第三個可選參數:

=BLANKIF(C2,IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7),"omg")

答案3

您可以使用它Conditional Formatting來實現您的目標。

從公式中刪除所有多餘的內容,只留下基本公式

Format only cells that contain將條件與您的刪除標準一起套用

當消隱條件為真時,套用自訂數字格式;;;

Excel 2007 或更高版本的替代方案

IFERROR(value, value_if_error)

來自 Excel 幫助:

如果公式計算結果出錯,則傳回您指定的值;否則,返回公式的結果。使用 IFERROR 函數擷取並處理公式中的錯誤。

相關內容