Google表格查询多列自动求和



我有一个带有动态列的电子表格。我想通过加一行来对列求和。我已经找到了如何用查询而不是列来求和行。

我的查询在下面,我想在每个查询的末尾加上列的总和。

=
{
INDEX(QUERY(QUERY({Staffs!A2:1000}, 
"select Col1,"&TEXTJOIN(",", 1, 
"sum(Col"&SEQUENCE(COUNTA(Staffs!B1:1), 1, 2)&")")&"
where Col1 is not null 
group by Col1"), 
"offset 1", 0));
{" ",ArrayFormula(EDATE(eomonth(Salaries!L1,0),SEQUENCE(1,7*12-MONTH(Salaries!L1)+1,0,1)))};
INDEX(QUERY(QUERY({Salaries!N2:1000}, 
"select Col1,"&TEXTJOIN(",", 1, 
"sum(Col"&SEQUENCE(COUNT(TRANSPOSE(Salaries!O2:2)), 1, 2)&")")&"
where Col1 is not null 
group by Col1"), 
"ORDER BY Col1 ASC offset 1", 0))
}

可以在这里查看电子表格:https://docs.google.com/spreadsheets/d/1veiYh1CMIfFPwBGQk4OwKmCLa7q08TugReVfAXtpIgI/edit gid = 280688035

基本上我想计算每个月员工人数和工资的总和

谢谢!

我先做个总结。下面是一个通用公式,可以将行添加到任何左边有数字和字符串的表(如您的表)。然后我解释我是如何得到它的。

我使用的名称是TABLE,但它可能是任何公式,建立一个表(查询,arrayformula,过滤器,序列你的名字)。

纯数字表的总数:

={TABLE;index(query({TABLE},"Select "&textjoin(",",1,INDEX("sum(Col"&sequence(1,columns(TABLE),1)&")"))),2)}

首列为

的表的摘要
={TABLE;"",index(query({TABLE},"Select "&textjoin(",",1,INDEX("sum(Col"&sequence(1,columns(TABLE)-1,2)&")"))),2)}

前两列文本为

的表的摘要
={TABLE;"","",index(query({TABLE},"Select "&textjoin(",",1,INDEX("sum(Col"&sequence(1,columns(TABLE)-2,3)&")"))),2)}

等。

我已经做了前一半的工作,我解释如何做下一部分。其实我用的方法和你一样:-)

首先计算查询的列数:

=列(查询)

然后我用它来构建一个用于新查询的表达式。通常我们需要。=查询(您的查询,"select sum(Col1), sum(Col2)…不超过计算出的列数(")

公式如下:

=textjoin(",",1,INDEX("sum(Col"&sequence(1,columns(YOUR QUERY HERE)-1,2)&")"))

然后我用大括号把它放在你的查询下面。

{查询;"月和"查询(您的查询)"select Sum (Col1), Sum (Col2)…不超过计算出的列数(")}

以下是我的解决方案:https://docs.google.com/spreadsheets/d/1WDVM6WVd-JZrLOerysBR0mVzLvBsAKy5ILB58g7rKKY/edit?usp=sharing

最新更新