Excel常量数组字面量中是否允许调用函数或表达式?
Excel常量数组字面量内能否使用函数或表达式?
结论:Excel的常量数组({}包裹)内部不允许直接使用函数调用或需要计算的表达式
Excel的常量数组定义要求所有元素必须是直接可确定的常量值——比如数值5、文本"abc"、逻辑值TRUE,或者错误值#N/A这类不需要额外计算就能确定结果的内容。像SUM(1,3)这种需要执行计算的函数调用,(1+3)这类表达式,都不属于常量范畴,因此放在{}里会触发语法错误,这也是你在Mac版Excel 16.64中测试=2 * {SUM(1, 3); 5; 6}报错的原因。
实现等效效果的替代写法
如果你想实现=2 * {4; 5; 6}的计算结果,可以用以下几种合法方式:
- 直接预计算函数结果,写入常量数组:
=2 * {4; 5; 6}(最直接的方式) - 使用动态数组函数生成计算后的数组:
=2 * HSTACK(SUM(1,3), 5, 6)(适用于支持动态数组的Excel版本) - 借助
CHOOSE函数生成数组:=2 * CHOOSE({1;2;3}, SUM(1,3), 5, 6)(兼容新旧Excel版本,旧版需按Ctrl+Shift+Enter作为数组公式输入) - 使用
MAKEARRAY自定义生成数组:=2 * MAKEARRAY(3,1,LAMBDA(r,c, IF(r=1, SUM(1,3), IF(r=2,5,6))))(支持LAMBDA的Excel版本可用)
版本兼容性说明
不管是Windows还是Mac版Excel,常量数组的语法规则都是统一的,不存在某一版本允许在{}内使用函数的情况,你遇到的语法错误是符合Excel官方语法规范的正常现象。
内容的提问来源于stack exchange,提问作者Greg
相关产品推荐
相关产品推荐

