Google Sheets中用ARRAYFORMULA实现每行SUMIF自动化的问题
问题解决方法
你的单行SUMIF公式能正常运行,但添加ARRAYFORMULA后失效,核心原因是INDIRECT函数无法与ARRAYFORMULA兼容处理数组形式的工作表引用——ARRAYFORMULA会批量生成多个工作表引用,但INDIRECT只能解析单个文本引用,无法逐个处理数组里的每个元素。
解决办法是用BYROW函数替代ARRAYFORMULA,逐行对B列和C列的单元格应用原有的SUMIF逻辑,公式如下:
=BYROW(B2:C, LAMBDA(row, SUMIF( INDIRECT("'"&XLOOKUP(INDEX(row,1), Rekap!$C$3:$C$28, Rekap!$A$3:$A$28)&". "&INDEX(row,1)&"'!C4:C"), INDEX(row,2), INDIRECT("'"&XLOOKUP(INDEX(row,1), Rekap!$C$3:$C$28, Rekap!$A$3:$A$28)&". "&INDEX(row,1)&"'!H4:H") ) ))
公式说明:
BYROW(B2:C, LAMBDA(row, ...)):遍历B2到C列的每一行,把当前行数据存入row变量INDEX(row,1):提取当前行的B列值(对应原公式的B2)INDEX(row,2):提取当前行的C列值(对应原公式的C2)- 内部的SUMIF和INDIRECT逻辑和你原来的单行公式完全一致,只是通过BYROW实现了逐行批量计算
内容的提问来源于stack exchange,提问作者Sam ipin
相关产品推荐
相关产品推荐

