在数据透视表中汇总多列数据的实现难题
解决Google Sheets经理工时与项目数统计问题
你的核心问题是原表为宽格式(单项目对应多经理列),不符合数据透视表的长格式要求,导致无法直接关联汇总。以下是两种高效解决方法:
方法1:宽表转长表后创建数据透视表
先把分散在多列的经理-工时数据转换为每行一条记录的长格式,再用透视表统计:
- 在空白单元格(比如J1)输入以下公式,生成包含「项目名、经理姓名、工时」的标准化数据集:
=QUERY(FLATTEN(SPLIT(TEXTJOIN("|",TRUE,A2:A&"~"&B2:B&"~"&C2:C,A2:A&"~"&D2:D&"~"&E2:E,A2:A&"~"&F2:F&"~"&G2:G),"|")),"select Col1, Col2, Col3 where Col3 is not null",0)
- 选中生成的所有数据,插入数据透视表:
- 把「经理姓名」拖到行区域
- 把「工时」拖到值区域,设置汇总方式为「求和」
- 把「项目名」拖到值区域,设置汇总方式为「计数」
完成后就能直接得到每位经理的每周总工时,以及参与的项目总数。
方法2:直接用数组公式生成统计结果
如果不想转换数据格式,可直接在空白区域生成统计结果:
- 提取所有不重复的经理姓名(比如在H2单元格输入):
=UNIQUE(FLATTEN(B2:B,D2:D,F2:F))
- 计算对应经理的总工时(I2单元格,下拉填充):
=SUMIF(FLATTEN(B2:B,D2:D,F2:F),H2,FLATTEN(C2:C,E2:E,G2:G))
- 计算对应经理的项目数(J2单元格,下拉填充):
=COUNTA(IFERROR(FILTER(A2:A,(B2:B=H2)+(D2:D=H2)+(F2:F=H2))))
内容的提问来源于stack exchange,提问作者Scottasaurus
相关产品推荐
相关产品推荐

