返回列总和的排序数组-按列分组

时间:2019-04-21 14:20:26

标签: google-sheets google-sheets-formula

我有一个数据表和一个公式,对于每行,该公式将一个数组的标题返回到H列,该列标题根据该行中的数据(从最高到最低)进行排序。

这是我使用的公式。它完成了工作。

=TRANSPOSE(QUERY(TRANSPOSE({$B$1:$G$1;$B2:$G2}),"SELECT Col1 ORDER BY Col2 DESC",0))

在N列中,我现在想返回另一个列标题数组,但是这次是根据A列中具有相同“代码”的所有行的总数(再次将列标题从高到低排序) )。这意味着第4行第N列将根据第2行和第4行的总和对标题进行排序(因为这些行中的每一行在A列中具有相同的代码,即A1)。

我想找到一个不需要显式声明每列总和的解决方案,因为最终的电子表格将包含约30列。

我正在努力寻找一种方法来做到这一点。如果需要,我很乐意尝试完全不同的解决方案。

有什么建议吗?

这里是工作表的链接... https://docs.google.com/spreadsheets/d/15Y06GIY0HYGzOVRS-a_1SYWzVq5dBffHBnmg5k6hCxQ/edit?usp=sharing

我试图将代码列添加到Query语句中,但这不起作用,因为在对数据进行转置时,它导致列具有两种不同的数据类型。

2 个答案:

答案 0 :(得分:0)

粘贴到 N2 单元格中,然后向下拖动到 N3 单元格:

=TRANSPOSE(QUERY(TRANSPOSE(QUERY(QUERY(A$1:G,"where A='"&A2&"'"), 
 "select sum(Col2),sum(Col3),sum(Col4),sum(Col5),sum(Col6),sum(Col7) 
  where Col1 is not null 
  group by Col1 
  label sum(Col2)'"&B$1&"',sum(Col3)'"&C$1&"',sum(Col4)'"&D$1&"',sum(Col5)'"&E$1&"',sum(Col6)'"&F$1&"',sum(Col7)'"&G$1&"'", 1)),
 "select Col1
  order by Col2 desc"))

0

答案 1 :(得分:0)

好的...因此,经过大量研究和研究,我设法使用MMULT公式创建了一个解决方案。

这是我的最终公式。我还在原始共享电子表格中发布了工作版本。

= TRANSPOSE(查询(TRANSPOSE({$ B $ 1:$ G $ 1; mmult(transpose(ArrayFormula(row($ A $ 2:$ A)^ 0))),ARRAYFORMULA(($ A $ 2:$ A = $ A2)* $ B $ 2:$ G))}),“ SELECT Col1 ORDER BY Col2 DESC”,0)))

如果其他人想了解公式的MMULT部分的结构,请单击此处的链接,该帖子将我引向该解决方案。

https://infoinspired.com/google-docs/spreadsheet/mmult-instead-of-sumif-in-google-sheets-for-array-result/

非常感谢那些做出贡献的人。

相关问题