我有一个要求,我有一个这样的表 -
Actual Table with 2 columns
Column1 Column2
ColAValue $$ ColBValue $$ New Row
ColCValue Above Row
ColCValue2 Above Row
$$ ColDValue Above Row
ColAValue $$ ColBValue $$ ColCValue $$ ColDValue New Row
ColAValue $$ ColBValue $$ ColCValue New Row
$$ ColDValue Above Row
我知道要求,我会 4 columns in my dataset leaving column 2 .
我需要使用查询编辑器将转换后的表作为新表 .
这是我的预期输出,
OutTable with 4 columns
基本上,列值由分隔符$$按顺序标识,如果column2表示新行,则它是新记录,它必须作为新列值附加到当前行 .
如何在查询编辑器中将输入表转换为此输出表?
最终输出数据类型无关紧要 .
最初的步骤是将来自Above行的行值带到带有分隔符的New行,并将其作为单行 .
1 回答
这里的关键是创建一个分组列,将每行分配给它的结果输出行号 . 您可以通过在
Column2
中使用"New Row"查找最后一行的索引来执行此操作 .首先,创建一个索引列(在“添加列”选项卡下) .
现在,您可以通过采用上述最大索引来创建分组自定义列 . 公式可能如下所示:
你的 table 现在应该是这样的:
现在我们使用Group By(在Home选项卡下),按
Group
列分组并聚合Column1
.但是我们要将聚合从
List.Max
更改为Text.Combine
,以便此步骤的代码是现在表格看起来像这样:
从这里,您可以使用
" && "
作为分隔符来执行拆分列分隔符(在“主页”选项卡下) .根据需要更改任何列名称,如果不再需要,则删除
Group
列,结果应为您所需的输出 .整个查询的M代码: