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

问题描述 投票:0回答:2

我有一张数据和一个公式,对于每一行,它返回一个数组到列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语句中,但是这不起作用,因为当转换数据时,它会导致列具有两种不同的数据类型。

google-sheets google-sheets-formula
2个回答
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


0
投票

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

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

= TRANSPOSE(QUERY(移调({$ B $ 1:$ G $ 1; MMULT(转置(ARRAYFORMULA(行($ 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/

非常感谢那些贡献者。

© www.soinside.com 2019 - 2024. All rights reserved.