Google Sheets多列多行求和:简化ArrayFormula公式诉求
在Google Sheets中简化逐行求和公式
方法1:使用BYROW + LAMBDA(推荐,简洁直观)
直接用BYROW遍历目标区域的每一行,配合SUM计算单行总和,列数增减时只需调整区域范围即可:
=BYROW(A1:F100, LAMBDA(row, SUM(row)))
- 逻辑:
BYROW会对A1:F100内的每一行执行LAMBDA定义的操作,这里就是对当前行的所有单元格求和。 - 优势:公式结构固定,不管列数从6列变成20列,仅需把
A1:F100改成对应范围,可读性和维护性拉满。
方法2:使用MMULT(兼容旧版Google Sheets)
如果你的Google Sheets版本不支持BYROW/LAMBDA函数,可以用矩阵乘法实现逐行求和:
=ARRAYFORMULA(MMULT(N(A1:F100), TRANSPOSE(COLUMN(A1:F100)^0)))
- 逻辑:
N()确保区域内的内容转为数值格式(避免文本干扰求和);COLUMN(A1:F100)^0生成一列全1的数组,转置后和原区域做矩阵乘法,本质就是每行的数值分别乘以1再相加,最终得到每行的总和。 - 优势:同样无需逐个列手动相加,列数调整时仅需修改目标区域。
与原有公式的对比改进
原来的=ARRAYFORMULA(A1:A100 + B1:B100 + ... + F1:F100)需要手动枚举每一列,列数越多公式越长且易出错;上述两种方法只需指定整体区域,大幅降低维护成本。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

