将结果从一行分组并拆分为多行

Group and split results from one row to multiple rows

我在需要拆分和分组的列中有包含信息的行。

现在我有以下内容:

编号 |一个 | A1 | A2 | A3

具有以下输出:

ID | A | A1
ID | A | A2
ID | A | A3

使用以下代码:

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(A5:A7&"|"&B5:B7&"|"&C5:E7);"|";0;0);"where Col3<>''"))

但问题是当我想要如下多个组参数时:

编号 |一个 | A1 | A2 | A3 |乙 | B1 | B2 | B3

输出如下:

ID | A | A1
ID | A | A2
ID | A | A1
ID | B | B1
ID | B | B2
ID | B | B3

见附件sheet:

https://docs.google.com/spreadsheets/d/1VAORtWGRwAnu51_yD_nS7eNY6fuQxzDubz_y4Gof_78/edit?usp=sharing

我还没有找到如何管理它。

感谢您的帮助。

尝试:

=ARRAYFORMULA(QUERY(SPLIT({
 FLATTEN(IF(C23:E26="";;A23:A26&"♦"&B23:B26&"♦"&C23:E26));
 FLATTEN(IF(G23:I26="";;A23:A26&"♦"&F23:F26&"♦"&G23:I26))}; "♦"); 
 "where Col1 is not null order by Col1"; 0))