如何制作带标题的项目列表?

时间:2017-11-20 08:23:57

标签: google-sheets

我有下面左边两列的列,但是想要像右边两列一样的列。我不确定这个转变是否有名称,或者它是什么。使用Group By查询似乎是我能找到的最接近的,但是想要聚合数据项而不是在每个组中列出它们。左列将通过合并各种数据输入表,重新排序列以及按列A排序来创建。我已经弄明白了。但转换为C&列中的格式D困惑我。我想这更像是一个报表编写器函数:我是否需要编写一个带循环的脚本函数来实现这个结果,或者我有什么东西可以忽略?

        A                 B                C      D
A group - subgroup1     data 1          A group - subgroup1     
A group - subgroup1     data 2                  data 1
A group - subgroup1     data 3                  data 2
A group - subgroup2     data 4                  data 3
A group - subgroup2     data 5          A group - subgroup2     
A group - subgroup2     data 6                  data 4
A group - subgroup2     data 7                  data 5
B group - subgroup1     data 8                  data 6
B group - subgroup1     data 9                  data 7
C group - subgroup1     data 10         B group - subgroup1     
C group - subgroup1     data 11                 data 8
C group - subgroup3     data 12                 data 9
C group - subgroup3     data 13         C group - subgroup1     
C group - subgroup3     data 14                 data 10
                                                data 11
                                        C group - subgroup3     
                                                data 12
                                                data 13
                                                data 14

3 个答案:

答案 0 :(得分:2)

正如@ttarchala所建议的那样,Pivot表是一个有用的功能。我确实尝试制作query解决方案。这不完全是你想要的。但是,它很接近,IMO:

=ARRAYFORMULA(SPLIT(TRANSPOSE(QUERY(QUERY(A2:B15,"select max(B) group by B pivot A")&"",, 999999999999))&" ", " ", 0))

这里的想法是伪造像MAX之类的聚合函数,这样我们就可以在query内进行转移。公式的其余部分只是删除空白。

答案 1 :(得分:1)

您可能想要使用数据透视表。将A列和B列定义为数据透视表的尺寸,然后将它们放在左(垂直)轴上。

这不会达到您想要的效果 - 标题不会在单独的行中 - 但会启用自动重新计算和小计等有用的功能。

答案 2 :(得分:0)

感谢https://stackoverflow.com/users/34704/ttarchalahttps://stackoverflow.com/users/8404453/i-i提出的答案,我能够提出所需的确切公式,但需要两个步骤。

数据在A栏和A列中。 B,我想要C& D,所以我把临时结果放在E& F.所以第一个公式是E1,第二个公式是C1。

=ARRAYFORMULA(split(Transpose(split(Textjoin("█",TRUE,Transpose(QUERY({A1:A14&"¤␣","␣¤"&B1:B14},"select max(Col2) group by Col2 pivot Col1"))),"█")),"¤"))

=Arrayformula(if(E:F="␣","",E:F))

数据透视表非常有用。我预处理了我的两列数据,以便标题列有一个尾随¤␣,数据是一个领先的␣¤。然后在Transpose(split(Textjoin(Transpose)))之后,我用一根柱子将其拆开,然后得到两列,其中包含␣所需的空白单元格。第二遍(因为我无法弄清楚如何加入公式)是将␣与虚无替换到结果列中。