避免在Excel中重复长表达式

时间:2017-10-24 19:02:33

标签: excel if-statement

我经常发现自己在公式中编写具有类似内容的Excel公式:

= IF(<long expression>=<some condition>,<long expression>,0)

有没有办法完成此操作而无需输入<long expression>两次(也没有使用辅助单元格)?

理想情况下,与IFERROR类似的东西,即

= IFERROR(<some expression>,0)

这会检查<some expression>是否会返回任何类型的错误,如果没有,则会自动返回<some expression>(无需再次显式输出)。

是否存在类似于IFERROR的Excel函数(或Excel函数的组合),但它不是检查错误条件,而是根据公式检查一般(用户定义的)条件?

2 个答案:

答案 0 :(得分:2)

在配方效率和计算速度方面,使用辅助单元可能具有很大价值,即使它们最初可能会破坏电子表格设计。

将计算放入辅助单元格中,并参考IF语句中的辅助单元格。这样计算只会发生一次。

电子表格审核员首选这种方法,而不是将所有内容打包成一个公式,因为它也更容易理解和分离。

通过仔细的电子表格规划,您可以在不同的(隐藏)工作表或隐藏的列中容纳辅助单元格,以便整理设计。

答案 1 :(得分:0)

此答案适用于2020年3月的Excel365。Excel的Insider内部版本中现在提供了一个新功能。它称为LET(),用于定义变量并为其赋值,然后可以在LET()函数的花括号内多次使用该变量。

示例:

=LET(MyResult,XLOOKUP(C1,A1:A3,B1:B3),IF(MyResult=0,"",MyResult))

第一个参数是新变量MyResult的名称。使用第二个参数为变量分配一个值。这可以是一个常数,例如数字或文本,或者在这种情况下可以是公式。

第三个参数是可以使用变量值的计算。

在以下屏幕截图中,Xlookup返回0,因为找到的单元格为空。

在下一个公式中,Xlookup被包装在IF语句中,进行评估,然后重复执行。如问题所述,这是重复计算的方法。

第三个公式显示LET()函数及其结果。

enter image description here