Google sheets 在Google工作表中,具有双行或从宽到长的透视表

Google sheets 在Google工作表中,具有双行或从宽到长的透视表,google-sheets,pivot-table,google-sheets-formula,array-formulas,google-sheets-query,Google Sheets,Pivot Table,Google Sheets Formula,Array Formulas,Google Sheets Query,如何在基于两个不同列的Google工作表中从宽到长,或者创建一个透视表,在其中将原始矩阵中的两个不同列指定为行 有关预期效果,请参见:这里有一个相当简单的方法。我认为不能使用透视表,因为值必须是数值的摘要,或者至少是计数,而不是字符串值 要了解《纽约时报》: =transpose(C2:C) 要获得讲师(相当大的假设是没有讲师只担任助理,但这可以在以后更改): 如果有其他讲师仅作为助理工作: =unique({B:B;D2:D}) 然后获取与特定讲师或助理对应的主题: =ArrayForm

如何在基于两个不同列的Google工作表中从宽到长,或者创建一个透视表,在其中将原始矩阵中的两个不同列指定为行


有关预期效果,请参见:

这里有一个相当简单的方法。我认为不能使用透视表,因为值必须是数值的摘要,或者至少是计数,而不是字符串值

要了解《纽约时报》:

=transpose(C2:C)
要获得讲师(相当大的假设是没有讲师只担任助理,但这可以在以后更改):

如果有其他讲师仅作为助理工作:

=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(IFERROR(vlookup(过滤器(F2:F,F2:F“”)和过滤器(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))

谢谢--您可以使用join和custom函数将数据透视表与文本一起使用,但是在本例中,对于两个不同的列,您需要执行“双”数据透视,这是无法立即完成的。我发现这个包允许类似的宽长转换,类似于R中的重塑包。此外,我认为我的答案是好的,如果你只能有一个特定讲师(或助理)的主题和测试数据中的时间组合,但如果你想列出某个特定讲师时间组合的所有主题,则必须以不同的方式来做。然后可能只需按讲师和时间筛选主题并连接。
=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))