我经常发现自己在公式中编写具有类似内容的Excel公式:
= IF(<long expression>=<some condition>,<long expression>,0)
有没有办法完成此操作而无需输入<long expression>
两次(也没有使用辅助单元格)?
理想情况下,与IFERROR
类似的东西,即
= IFERROR(<some expression>,0)
这会检查<some expression>
是否会返回任何类型的错误,如果没有,则会自动返回<some expression>
(无需再次显式输出)。
是否存在类似于IFERROR
的Excel函数(或Excel函数的组合),但它不是检查错误条件,而是根据公式检查一般(用户定义的)条件?
答案 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()函数及其结果。