首页 > 解决方案 > Google表格ArrayFormula - 复杂的行方程在列中的每个单元格中重复第一个结果

问题描述

我需要对每一行中的一系列单元格求和,但单元格中的文本必须被忽略。例如,一个单元格可能是2= Moderate,我需要“2”作为总和。

如果我使用这个公式,对于一行,我会得到正确的结果:

=SUM(SPLIT(REGEXREPLACE(CONCATENATE(F2:AB2), "[^\d]+", "|"), "|"))

现在我想ArrayFormula对每一行重复这个公式。通过我尝试过的一切,我得到了每一行重复的第一行的结果。示例:如果第 2 行的结果是 14,那么每一行都将显示 14。

这是我尝试过的最简单的公式:

=ArrayFormula(IF(ISBLANK(F2:F),"",
    SUM(SPLIT(REGEXREPLACE(CONCATENATE(F2:AB2), "[^\d]+", "|"), "|"))
))

对于未更改以表示当前行的最内层范围,我尝试使用具有CONCATENATE(INDIRECT("R[0]C6:R[0]C28"))相同结果的相对引用的间接。

有办法在ArrayFormula这里上班吗?

编辑:
添加链接到演示版的工作表:https ://docs.google.com/spreadsheets/d/17OYq3tjP1A1H8SPYAoAAlxOlrsFV2R5CQT3MNc7ZkMo/edit?usp=sharing

标签: google-sheetsgoogle-sheets-formula

解决方案


利用:

=ARRAYFORMULA(MMULT(IFERROR(REGEXEXTRACT(
 INDIRECT("F2:AB"&MAX((ROW(A2:A)*(A2:A<>"")))), "^\d+")*1, 0), 
 TRANSPOSE(COLUMN(F:AB))^0))

在此处输入图像描述


推荐阅读