Google Sheets中如何将指定IF公式转为正确的ArrayFormula?
Google Sheets 整列自动匹配的ArrayFormula正确写法
你原来的公式问题出在SUM(B1:B, C1:C, D1:D, E1:E, F1:F)——这个写法会把B到F列的所有单元格全部求和,得到一个全局总数,然后把这个数填充到每一行,自然不符合逐行计算的需求。
这里给你两种可行的解决方案:
方法一:直接逐列相加(适合列数少的场景)
直接在ArrayFormula里对每行的对应列做加法运算,ArrayFormula会自动把这个逻辑应用到整列的每一行:
=ArrayFormula(IF(A1:A="online", B1:B + C1:C + D1:D + E1:E + F1:F, B1:B))
这个写法逻辑简单直观,和你原本的单单元格公式逻辑完全对应,只是把单个单元格引用换成整列引用,用逐列相加替代SUM的全局求和。
方法二:用MMULT实现行求和(适合列数多的场景)
如果后续需要计算的列数很多,逐个写列引用太麻烦,可以用MMULT函数实现批量行求和:
=ArrayFormula(IF(A1:A="online", MMULT(N(B1:F), SEQUENCE(COLUMNS(B1:F), 1, 1, 0)), B1:B))
N(B1:F):把B到F列的非数值内容转为0,避免运算报错SEQUENCE(COLUMNS(B1:F), 1, 1, 0):生成一个和B到F列数相同的垂直数组,用来和B1:F做矩阵乘法,最终得到每行的求和结果
内容的提问来源于stack exchange,提问作者Olivia Lightfoot
相关产品推荐
相关产品推荐

