我有一张数据和一个公式,对于每一行,它返回一个数组到列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语句中,但是这不起作用,因为当转换数据时,它会导致列具有两种不同的数据类型。
粘贴在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"))
好的...所以经过大量的研究和游戏,我设法使用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部分的结构,这里有一个链接指向我的解决方案的帖子。
非常感谢那些贡献者。