我有两列数据,如下所示。
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的数组公式并使用填充处理填充表格,但是我想知道是否有更强大的方法来完成此任务,因为我的数据最终会发生变化。即在一个单元格中使用一个公式来填满表格。
答案 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:A
,B1: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)))))))}}
这个公式更难,效果更慢,但你可以更好地控制结果。