检查作为第一个参数的条件是否被满足, 条件为 TRUE 时返回一个值,条件为 FALSE 时返回另一个值。IF.EAGER 执行严格求值(又叫热切求值,及早求值),它不考虑条件表达式结果,始终计算所有分支表达式。
语法
IF.EAGER ( <逻辑条件>, <结果 1>, [<结果 2>] )
参数 | 属性 | 描述 |
逻辑条件 | 可以返回 TRUE 或 FALSE 的任何值或表达式 | |
结果 1 | 逻辑条件为 True 时返回的值 | |
结果 2 | 可选 | 逻辑条件为 False 时返回的值,如果省略则返回空值 |
返回值
标量
一个任意类型的值
备注
如果<结果 1>和<结果 2>的数据类型不同,IF.EAGER 函数可以返回不同的数据类型(变体);但如果<结果 1>和<结果 2>都是数值类型,此函数会尝试返回单个数据类型。 在后一种情况下,IF.EAGER 函数会隐式转换数据类型,以容纳这两个值。 例如,公式 IF.EAGER(<condition>,TRUE(),0)
返回 TRUE 或 0,而公式 IF.EAGER(<condition>,1.0,0)
则只返回十进制值,即使这里的<结果 2>是整数类型。
IF.EAGER 的功能与 IF 函数相同,但由于执行计划的不同,性能可能会有所不同。它只在某些特殊的情况下使用,比如已经确认比常规 IF 函数有明显的性能优势。IF.EAGER(<logical_test>, <value_if_true>, <value_if_false>)的执行计划与下面的 IF 写法等价:
VAR _value_if_true = <value_if_true> VAR _value_if_false = <value_if_false> RETURN IF (<logical_test>, _value_if_true, _value_if_false)
说点什么