如何在使用比较时避免在Excel中重复长公式?
我知道这样的事情
=IF(ISERROR(LONG_FORMULA), 0, LONG_FORMULA)
可以换成
=IFERROR(LONG_FORMULA, 0)
不过,我正在寻找一个expression式来避免inputREALLY_LONG_FORMULA
两次
=IF(REALLY_LONG_FORMULA < threshold, 0, REALLY_LONG_FORMULA)
我怎样才能做到这一点?
我能够想出以下几点:
=IFERROR(EXP(LN(REALLY_LONG_FORMULA – threshold)) + threshold, 0)
它通过利用负数的日志产生错误并且EXP
和LN
彼此反转的事实来工作。
这样做的最大好处是避免了在您更改REALLY_LONG_FORMULA
副本中的某些内容时无意中将错误引入到电子表格中,而无需将相同的更改应用于IF
语句中REALLY_LONG_FORMULA
的其他副本。
比在比较大
=IF(REALLY_LONG_FORMULA>=threshold,0,REALLY_LONG_FORMULA)
可以换成
=IFERROR(threshold-EXP(LN(threshold-REALLY_LONG_FORMULA)),0)
下面的示例(由@Jeeped提供):
对于严格的不平等比较,请使用@Tom Sharpe指出的SQRT(_)^2
。
如果你比较threshold
金额,我会考虑检查ExcelJet最近的博客文章关于用MAX()或MIN()replace丑陋的IF 。
另外, MAX()
和MIN()
函数比EXP()
和LN()
等已知函数更加直观。
比较Ln Exp与SQRT ^ 2: –
因为SQRT(0)给出0,但ln(0)给出#NUM!
所以你可以select使用哪一个取决于你想要的平等与否。
这些也适用于负数 – 理论上。