Isz*_*szi 6 worksheet-function microsoft-excel
我喜欢保持我的 Excel 电子表格相当干净。所以,很多时候我最终会写出这样的语句:
IF([formula x]=[value],"",[formula x])
Run Code Online (Sandbox Code Playgroud)
本质上说的是,如果公式与给定的条件匹配,则不显示结果 - 否则,显示结果。
在某些情况下,[formula x]
向下重复一整列单元格,并且每个单元格都有一个[formula x]
指向其上方单元格的引用。为了避免公式错误,我必须添加另一个图层,如下所示:
IF(C2="","",IF([formula x]=[value],"",[formula x])
Run Code Online (Sandbox Code Playgroud)
但是,特别是当[formula x]
很长时,这可能导致最终公式看起来比实际复杂得多,并且比应有的情况更难进行故障排除和维护。
这是一个可怕的例子......
基本公式:
=IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)
Run Code Online (Sandbox Code Playgroud)
添加条件消隐:
=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)))
Run Code Online (Sandbox Code Playgroud)
一个已经很长的公式的大小增加了一倍多,这样当相同的公式满足给定条件时,我可以显示一个空白(或任何其他选定的值)。如果我尝试在整行中执行此操作,根据起始公式,我很容易遇到循环引用错误。
有什么方法可以自引用同一单元格中的现有公式或参数,或者可以使用其他函数或功能来更干净地实现此结果?
执行我正在寻找的功能的函数可能是这样的:
=FnName([base formula],[match condition],[condition result])
Run Code Online (Sandbox Code Playgroud)
参数 1 是基本公式,参数 2 是我有兴趣匹配的条件。参数 3 是条件匹配时显示的结果。在条件不匹配的情况下,函数返回基本公式的结果。