在进行比较时,如何避免在Excel中重复长公式?

时间:2016-09-23 16:23:28

标签: excel error-handling excel-formula boolean

我知道类似以下的内容

=IF(ISERROR(LONG_FORMULA), 0, LONG_FORMULA)

可以替换为

=IFERROR(LONG_FORMULA, 0)

但是我正在寻找一个表达式,以避免在

中输入REALLY_LONG_FORMULA两次
=IF(REALLY_LONG_FORMULA < threshold, 0, REALLY_LONG_FORMULA)

我该怎么做?

3 个答案:

答案 0 :(得分:3)

我能够提出以下建议:

=IFERROR(EXP(LN(REALLY_LONG_FORMULA – threshold)) + threshold, 0)

它的工作原理是负数的对数产生错误而EXPLN相互反转。

这样做的最大好处是,当您在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提供):

Greater or equal than example

对于严格的不平等比较,请使用@Tom Sharpe指出的SQRT(_)^2

答案 1 :(得分:0)

如果您要与threshold金额进行比较,我会考虑查看ExcelJet最近的博客文章 Replacing Ugly IFs with MAX() or MIN()

此外,MAX()MIN()函数比使用诸如EXP()LN()之类的已知函数更直观。

答案 2 :(得分:0)

比较Ln Exp与SQRT ^ 2: -

enter image description here

因为SQRT(0)给出0但是ln(0)给出#NUM!

因此,您可以根据自己是否想要相等来选择使用哪一个。

这些也适用于负数 - 理论上。

enter image description here