如何在不重复值的情况下同时展开一行列表中的所有列表?

How can I expand all lists in a row of lists at the same time without repeating values?

针对关于如何同时展开一行列表中的所有列表的问题,@Carl Walsh 提供了这段简洁有用的代码:

let
Source = #table({"A", "B"}, {{ {1,2}, {3,4}} }),
Expanded = List.Accumulate(
    Table.ColumnNames(Source), 
    Source, 
    (state, column) => Table.ExpandListColumn(state, column))
in
Expanded

产生这个:

我想得到这个结果:

我不希望在处理每个后续列时在先前处理的列中重复值。

是否可以通过对 Carl 的代码进行简单的修改来实现目标?

也许不是很简单,但很有效:下面的代码将列与调整后的代码结合在一起,因此列表被压缩并且内部列表被转换为记录。接下来展开列表列,生成一个包含随后展开的嵌套记录的列。

不幸的是,您不能将列与嵌套列表结合使用,因此我首先创建了一些虚拟文本列,然后将它们组合起来以生成基本代码,随后我对其进行了调整,并删除了使用虚拟列的步骤.

let
    Source = #table({"A", "B"}, {{ {1,2}, {3,4}} }),
    #"Merged Columns" = Table.CombineColumns(Source,{"A", "B"}, each List.Transform(List.Zip(_), each Record.FromList(_,{"A","B"})),"Merged"),
    #"Expanded Merged" = Table.ExpandListColumn(#"Merged Columns", "Merged"),
    #"Expanded Merged1" = Table.ExpandRecordColumn(#"Expanded Merged", "Merged", {"A", "B"}, {"A", "B"})
in
    #"Expanded Merged1"