标准化 Google 工作表中的数据 - TRANSPOSE 多列向下填充

Normalize Data in Google Sheets - TRANSPOSE multiple columns Fill Down

我有需要规范化的数据。 Col C 中用逗号分隔的任何值都需要单独一行。

这是我的sheet

数据在 Col A - Col C 中,期望的结果是 int Col E-ColG。

这个问题很有帮助,我得到了适用于 col C 的公式,但是当我尝试整合 col A 和 B 时,它崩溃了:

这个相当长的公式可以满足您的需求

=query(
  arrayformula(
    split(
      transpose(
        split(
          textjoin(
            "\",
            0,
            $B3:B4 &
              "|" & 
              split(C3:C4, ", ")
          ),
          "\"
        )
      ),
      "|"
    )
  ),
  "select * where Col2 <> ''"
)

说明:写的实在是太长太无聊了。只需从最里面的公式开始重建查询,看看它是如何工作的。

添加列 A 留作 reader 的练习。

@ttarchala's 解决方案的可扩展修改:

=ARRAYFORMULA(QUERY(SPLIT(TRANSPOSE(SPLIT(IFERROR(TEXTJOIN(
 "♦", 1, $A3:A&"♠"&$B3:B&"♠"&IFERROR(SPLIT(C3:C, ", ")))), "♦")), "♠"),
 "where Col2<>'' and Col3<>''"))


=ARRAYFORMULA(QUERY(SPLIT(TRANSPOSE(SPLIT(IFERROR(TEXTJOIN( "♦", 1, 
 SUBSTITUTE($A3:A&"♠"&$B3:B&"♠"&IFERROR(SPLIT(
 REGEXREPLACE(C3:C, ", |,", "♥"), "♥")), "♠♠", ""))), "♦")), "♠"), "where Col3<>''"))