我想在谷歌脚本编辑器中为电子表格制作一个小脚本,根据其他单元格汇总单元格。类似的东西:
IF (A2:P2)==Q2{
SUM (A3:P3)}
我想对包含特定字符的单元格求和。这是example我的问题。我该怎么做?
答案 0 :(得分:2)
您不需要需要脚本。您只是在描述SUMIF
返回范围内的条件和。
使用您的工作表副本我使用此公式获得了您想要的结果
=sumif(B3:P3,"A",B4:P4)
然后你可以使用绝对单元格引用来更容易地将其复制下来。
=sumif($B$3:$P$3,"A",B4:P4)
问题已更改
由于您更改了源表,因此您会询问相关但不同的问题。和以前一样......但是你不需要一个脚本。您可以使用COUNTIFS()。你有两个计数标准。计算单元格是否包含字母,如果标题行包含数字,则计数。我们将其分解为两个条件集。
=COUNTIFs(B3:P3,Q2,B2:P2,1)
Q2是包含“A”的单元格,1是我们正在计数的标题列。
为了通过简单的拖放将其向下移动,您仍然需要在不移动的单元格中使用绝对引用。 Q2和标题行具体。
=COUNTIFs(B3:P3,$Q$2,$B$2:$P$2,1)
答案 1 :(得分:2)
要使具有' A'的所有列的总和(每行一行)。在标题中,尝试在Q4:
=ArrayFormula(MMULT(N(IF(B3:P3="A", B4:P11,)) , transpose(N(B3:P3="A"))))
更改' A'到' B'等等...所有B'
的总和如果您希望在添加新行时自动展开结果,请使用如下公式:
=ArrayFormula(IF(LEN(A4:A), MMULT(N(IF(B3:P3="A", B4:P,)) , transpose(N(B3:P3="A"))),))
编辑:根据新信息,我将公式更新为:
=ArrayFormula(MMULT((B2:P2=row(B3:B10)-2)*(B3:P10="A"), TRANSPOSE(COLUMN(B2:P2)^0)))
当然,马特提出的SUMIF()同样有效(并且肯定更简单)。要拖动公式,请使用美元符号“冻结”#39;标题行,例如:sumif($ B $ 3:$ P $ 3," A",B4:P4))。