将两列数据表示到表中

时间:2016-04-28 12:28:40

标签: excel google-sheets spreadsheet

我有两列数据,如下所示。

   A     B
1 John   red 
2 John   yellow
3 John   yellow
4 Albert blue
5 Albert orange
6 Chad   blue
7 Tim    yellow

我想用网格/表格格式表示它们,如下所示:

   A      B     C       D     E          
1         red   yellow  blue  orange  
2 John    1     2       0     0
3 Albert  0     0       1     1
4 Chad    0     0       1     0
5 Tim     0     1       0     0

我试图在表格中表示两列,这两列保持每个人分配的颜色数量。我已成功完成此操作,使用带有countif的数组公式并使用填充处理填充表格,但是我想知道是否有更强大的方法来完成此任务,因为我的数据最终会发生变化。即在一个单元格中使用一个公式来填满表格。

1 个答案:

答案 0 :(得分:1)

谷歌表

这个公式:

=QUERY(A1:C,"select A, Count(C) where A <>'' group by A pivot B")

或仅使用范围A1:B,此公式:

=QUERY({A1:B,B1:B},"select Col1, Count(Col2) where Col1 <>'' group by Col1 pivot Col3")

要使公式显示0而不是空白,请使用以下公式:

={{"";UNIQUE(A1:A8)},{TRANSPOSE(UNIQUE(B1:B8));ArrayFormula(MMULT(--(UNIQUE(A1:A8=transpose(A1:A8))),TRANSPOSE(--(UNIQUE(B1:B8)=TRANSPOSE(B1:B8)))))}}

如果您想将其与开放范围(A1:AB1:B)一起使用,请使用此项:

={{"";UNIQUE(OFFSET(A1,,,COUNTA(A1:A)))},{TRANSPOSE(UNIQUE(OFFSET(B1,,,COUNTA(B1:B))));ArrayFormula(MMULT(--(UNIQUE(OFFSET(A1,,,COUNTA(A1:A))=transpose(OFFSET(A1,,,COUNTA(A1:A))))),TRANSPOSE(--(UNIQUE(OFFSET(B1,,,COUNTA(B1:B)))=TRANSPOSE(OFFSET(B1,,,COUNTA(B1:B)))))))}}

这个公式更难,效果更慢,但你可以更好地控制结果。