更改 Google Sheet 布局的公式:转置和拆分

Formula to change the layout of a Google Sheet: Transpose & Split

我想转换 Sheet1 中收集的数据,使其看起来像 Sheet2。

Sheet1 - 从 Google 表格填充数据。

A B C
1 Date Class ID Employee ID's
2 4/26/2021 6:47:13 X123456 123456 896779 835906 TMP880997 908613 882853
3 4/26/2021 17:18:57 Y123456 227583 233482 218680 226955 225310 227569 227582
4 4/26/2021 18:01:30 XYZ123456 201032 232863 232848 TMP232845
5 4/27/2021 12:24:29 X123457 188809 224046 232861 232846
6 4/28/2021 10:56:28 X123458 210975
7 5/26/2021 10:29:31 ZZ974547 123456 955725 961714 956114 955986 959287 955748

工作表 2 - 使用公式的预期结果

A B
1 Class ID Employee ID
2 X123456 123456
3 X123456 896779
4 X123456 835906
5 X123456 TMP880997
6 X123456 908613
7 X123456 882853
8 Y123456 227583
9 Y123456 233482
10 Y123456 218680
11 Y123456 226955
12 Y123456 225310
13 Y123456 227569
14 Y123456 227582
15 XYZ123456 201032
16 XYZ123456 232863
17 XYZ123456 232848
18 XYZ123456 TMP232845

这是我目前试过的公式...

Sheet2!A2 =TRANSPOSE(SPLIT(REPT(B2:B &" ",COUNTA(TRANSPOSE(SPLIT(C2:C," "))))," "))

Sheet2!B2 =TRANSPOSE(SPLIT(C2:C," "))

这些公式适用于第一个 Class 个 ID,但不适用于其余 Class 个 ID。我尝试用 ARRAYFORMULA() 包装它们,但没有用。

尝试:

=INDEX(QUERY(SPLIT(FLATTEN(IF(IFERROR(SPLIT(D2:D, " "))="",,
 C2:C&"×"&SPLIT(D2:D, " "))), "×"), "where Col2 is not null"))


更新:

=INDEX(SUBSTITUTE(QUERY(SPLIT(FLATTEN(IF(IFERROR(
 SPLIT(D2:D, " "))="",,C2:C&"×"&SPLIT(D2:D, " ")&"♦")), "×"), 
 "where Col2 is not null"), "♦", ))