我知道类似以下的内容
=IF(ISERROR(LONG_FORMULA), 0, LONG_FORMULA)
可以替换为
=IFERROR(LONG_FORMULA, 0)
但是我正在寻找一个表达式,以避免在
中输入REALLY_LONG_FORMULA
两次
=IF(REALLY_LONG_FORMULA < threshold, 0, REALLY_LONG_FORMULA)
我该怎么做?
答案 0 :(得分:3)
我能够提出以下建议:
=IFERROR(EXP(LN(REALLY_LONG_FORMULA – threshold)) + threshold, 0)
它的工作原理是负数的对数产生错误而EXP
和LN
相互反转。
这样做的最大好处是,当您在REALLY_LONG_FORMULA
的一个副本中更改某些内容时,它可以避免意外地将错误引入您的电子表格,而无需记住将相同的更改应用于您的REALLY_LONG_FORMULA
的其他副本IF
声明。
比
中的比较更多=IF(REALLY_LONG_FORMULA>=threshold,0,REALLY_LONG_FORMULA)
可以替换为
=IFERROR(threshold-EXP(LN(threshold-REALLY_LONG_FORMULA)),0)
以下示例(由@Jeeped提供):
对于严格的不平等比较,请使用@Tom Sharpe指出的SQRT(_)^2
。
答案 1 :(得分:0)
如果您要与threshold
金额进行比较,我会考虑查看ExcelJet最近的博客文章
Replacing Ugly IFs with MAX() or MIN()
此外,MAX()
和MIN()
函数比使用诸如EXP()
和LN()
之类的已知函数更直观。
答案 2 :(得分:0)