在 Google 表格中用双行旋转 table 或从宽到长
Pivot table with double rows or going from wide to long in Google Sheets
如何在基于两个不同列的 Google 工作表中从宽变长,或者创建一个主元 table,在其中我将原始矩阵中的两个不同列指定为行?
请参阅example了解预期效果:
这是一个相当简单的方法。我认为您不能使用数据透视表 table,因为这些值必须是数值的汇总,或者至少是计数,而不是字符串值。
获取时间:
=transpose(C2:C)
获得讲师(相当大的假设,没有讲师只作为助理工作,但稍后可以更改):
=unique(B:B)
如果有额外的讲师只担任助教:
=unique({B:B;D2:D})
然后获取与特定讲师或助理对应的主题:
=ArrayFormula(IFERROR(vlookup(filter(F2:F,F2:F<>"")&filter(G1:1,G1:1<>""),{B2:B&C2:C,A2:A},2,false))&
IFERROR(vlookup(filter(F2:F,F2:F<>"")&filter(G1:1,G1:1<>""),{D2:D&C2:C,A2:A},2,false)))
你可以这样一次性搞定:
=ARRAYFORMULA(QUERY({
A1:B, TEXT(C1:C, "hh:mm");
A2:A, D2:D, TEXT(C2:C, "hh:mm")},
"select Col2,max(Col1)
where Col2 is not null
group by Col2
pivot Col3", 1))
如何在基于两个不同列的 Google 工作表中从宽变长,或者创建一个主元 table,在其中我将原始矩阵中的两个不同列指定为行?
请参阅example了解预期效果:
这是一个相当简单的方法。我认为您不能使用数据透视表 table,因为这些值必须是数值的汇总,或者至少是计数,而不是字符串值。
获取时间:
=transpose(C2:C)
获得讲师(相当大的假设,没有讲师只作为助理工作,但稍后可以更改):
=unique(B:B)
如果有额外的讲师只担任助教:
=unique({B:B;D2:D})
然后获取与特定讲师或助理对应的主题:
=ArrayFormula(IFERROR(vlookup(filter(F2:F,F2:F<>"")&filter(G1:1,G1:1<>""),{B2:B&C2:C,A2:A},2,false))&
IFERROR(vlookup(filter(F2:F,F2:F<>"")&filter(G1:1,G1:1<>""),{D2:D&C2:C,A2:A},2,false)))
你可以这样一次性搞定:
=ARRAYFORMULA(QUERY({
A1:B, TEXT(C1:C, "hh:mm");
A2:A, D2:D, TEXT(C2:C, "hh:mm")},
"select Col2,max(Col1)
where Col2 is not null
group by Col2
pivot Col3", 1))