Power Query中使用动态列表合并列失败:仅合并表头
解决Power Query合并列仅显示表头的问题
你的问题核心是没有引用当前行的动态列值,直接调用了表头列表List1,导致每一行都重复合并表头内容。以下是两种可行的修正方案:
方式1:指定固定列名合并
如果明确知道要合并的列名称,比如要合并"列1"、"列2"、"列3",直接在each表达式中提取当前行的对应列值:
Table.AddColumn(Source2, "CombineColumn1", each Text.Combine({[列1], [列2], [列3]}, ":"), type text)
这里{[列1], [列2], [列3]}会获取当前行对应列的实际数值,而非固定表头文本。
方式2:动态合并目标列
如果需要合并的列是动态范围(比如从第2列到最后一列),可以先获取目标列名列表,再逐行提取对应值合并:
let // 定义要合并的列名列表,示例为移除第一列后的所有列 ColumnsToCombine = List.RemoveFirstN(Table.ColumnNames(Source2), 1), // 添加合并列 AddedCombineColumn = Table.AddColumn(Source2, "CombineColumn1", each Text.Combine( // 遍历列名列表,提取当前行对应列的值并转为文本 List.Transform(ColumnsToCombine, (col) => Text.From([[col]])), ":" ), type text ) in AddedCombineColumn
常见错误提醒
- 避免直接使用表头列表(如你的
List1),它是固定的文本集合,不会随行变化 - 如果合并时出现报错,检查列值是否为非文本类型,需用
Text.From()转换后再合并
内容的提问来源于stack exchange,提问作者Lc0der
相关产品推荐
相关产品推荐

