ARRAYFORMULA引用静态范围报错,如何实现条件数据拉取?
解决Google Sheets数组公式范围不匹配问题
正确公式
在F5单元格输入以下公式即可解决报错,自动填充F5:H12区域:
=ARRAYFORMULA( IF( $A5:$A12 <> "", IF(B5:D12 = "", 0, B$2:D$2), "" ) )
错误原因分析
你碰到的IFS has mismatched range sizes错误,核心问题是IFS函数要求每个条件对应的返回值范围,必须和条件范围的行列数完全一致:
- 你的条件范围
B5:D12是8行3列,但B$2:D$2是1行3列,触发TRUE分支时,返回值的行数(1行)和条件范围的行数(8行)不匹配,导致报错。 - 全空时触发第一个分支返回
0,单个数值会被Google Sheets自动广播扩展成8行3列,所以能正常运行。
公式说明
- 外层
IF控制只处理A列非空的行,避免空行填充无效内容 - 内层
IF直接判断单元格是否为空:空则填0,非空则取对应列的B$2:D$2值,Google Sheets会自动把单行的B$2:D$2广播到对应8行,完美匹配目标范围尺寸
内容的提问来源于stack exchange,提问作者IMTheNachoMan
相关产品推荐
相关产品推荐

