在 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))