列 headers 到行

Column headers to rows

我正在尝试转换 Google 表格中的数据,如下所示:

  A.  B.  C
1
2
3

对此:

A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2 
C 3

我正在尝试使其动态化,这样如果您向第一个 table 添加行,第二个 table 也会更新。我怎样才能做到这一点?最好使用公式而不是 Google Apps 脚本。

试试这个:

=ARRAYFORMULA(SPLIT(Flatten(ARRAYFORMULA(concat(CONCAT(INDEX( FILTER( B1:1 , NOT( ISBLANK( B1:1 ) ) ))," "),INDEX( FILTER( A2:A , NOT( ISBLANK( A2:A ) ) )))))," "))


或者如果您的格式是:A. B. C. :

=ARRAYFORMULA(SPLIT(Flatten(ARRAYFORMULA(concat(SUBSTITUTE(INDEX( FILTER( B1:1 , NOT( ISBLANK( B1:1 ) ) )),"."," "),INDEX( FILTER( A2:A , NOT( ISBLANK( A2:A ) ) )))))," "))

或者如果您希望它在同一列中:


=Flatten(ARRAYFORMULA(concat(INDEX( FILTER( B1:1 , NOT( ISBLANK( B1:1 ) ) )),INDEX( FILTER( A2:A , NOT( ISBLANK( A2:A ) ) )))))

或者,作为替代方案

=ARRAYFORMULA(SPLIT(FLATTEN(FILTER(Blad2!B1:1, LEN(Blad2!B1:1))&"_"&FILTER(Blad2!A2:A, LEN(Blad2!A2:A))), "_"))

=ARRAYFORMULA(FLATTEN(FILTER(Blad2!B1:1, LEN(Blad2!B1:1))&FILTER(Blad2!A2:A, LEN(Blad2!A2:A))))

另一种选择:

  1. 使用中间体 sheet 为每列存储以下内容:

  1. 然后将最后一列拆分成行: