【问题标题】:How to improve the formula writing and avoid repeating the entire formula depending on the condition如何改进公式编写,避免根据条件重复整个公式
【发布时间】:2017-03-12 14:11:49
【问题描述】:

所以,假设我在单元格 A1:

=IF(A2=1,A2,0)

好吧,这是一个易于理解的小公式。 如果公式开始增长,我会有类似的东西:

IF(...这里的大公式...=1,...在这里重复大公式...,0)

这是一个虚拟的例子,但这里的关键是,当我在 TRUE 条件位置重复大公式时,公式的大小会加倍,例如,什么会妨碍公式调试。

有没有办法在这种情况下不重复编写整个公式? 我不想使用任何宏/VBA 来执行此操作或任何其他“帮助”单元格。

谢谢

【问题讨论】:

  • 通过正确的绝对/相对单元格寻址,大多数公式可以拖动/复制/填充到其他位置。提供 hte 公式和您想要的操作。
  • AFAIK,如果您使用 IF 语句,则不会。但是,您可以根据实际公式的预期结果来更改逻辑。

标签: excel formula


【解决方案1】:

在这种特殊情况下,您不必使用 IF 语句,只需使用

=--(A2=1)

或者对于其他一些值,比如 2,

=(A2=2)*2

如果您想要的结果之一为零,则这些方法有效。

如果你有一个像这样的 IF 语句,那就有点困难了

=IF(A2>2,A2,2)

但您通常可以使用 MAX 或 MIN 来避免使用 IF 语句

=MAX(A2,2)

如果你有一个 IF 语句链来将 A2 中的数字划分为类似的范围

=IF(A2>=2,20,IF(A2>=1,10,0))

你可以用查找替换它

=IFERROR(VLOOKUP(A2,{1,10;2,20},2),0)

有时您可以用 CHOOSE 替换一系列 IF 语句,例如返回“负”、“正”或“零”

=CHOOSE(SIGN(A2)+2,"Negative","Zero","Positive")

我见过的一个棘手的方法是使用反函数,其中一个在某些条件下会出错,所以你可以尝试

=IFERROR((SQRT(A2-2)^2)+2,2)

但我不确定我是否可以推荐它,因为这些方法容易受到舍入错误的影响。

See this previous question

【讨论】:

    【解决方案2】:

    创建一个帮助列——比如说,col X——计算你的big formula。如果您不想混淆其他电子表格查看器,请隐藏该列。

    那么您的冗长且难以调试的公式变为IF(X1=1,...X1...,0)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多