如何用Power Query将带评分的多列答案转为规范化行结构
Power Query 处理带对应Answer Score的CSV规范化方案
针对你的需求,这里提供适配新CSV结构的Power Query M代码,能自动将每组Answer N和Answer N Score转成单独一行,最终输出符合Salesforce导入要求的表结构:
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{ {"Card Name", type text}, {"Sec Name", type text}, {"Question Text", type text}, {"Answer 1", type text}, {"Answer 1 Score", Int64.Type}, {"Answer 2", type text}, {"Answer 2 Score", Int64.Type} }), #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Card Name", "Sec Name", "Question Text"}, "Attribute", "Value"), #"Added Index" = Table.AddIndexColumn(#"Unpivoted Columns", "Index", 0, 1, Int64.Type), #"Calculated Group ID" = Table.AddColumn(#"Added Index", "Group ID", each Number.Floor([Index]/2)), #"Pivoted Column" = Table.Pivot(#"Calculated Group ID", List.Distinct(#"Calculated Group ID"[Attribute]), "Attribute", "Value"), #"Removed Columns" = Table.RemoveColumns(#"Pivoted Column",{"Index", "Group ID", "Card Name"}), #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{ {"Answer 1", "Answer"}, {"Answer 1 Score", "Answer Score"} }), #"Filtered Rows" = Table.SelectRows(#"Renamed Columns", each not List.IsEmpty(List.RemoveNulls({[Answer], [Answer Score]}))) in #"Filtered Rows"
代码步骤详解
- Source:加载Excel中名为
Table1的数据源,和你原代码逻辑一致。 - Changed Type:更新数据类型定义,新增对
Answer N Score列的类型设置(这里用整数类型,若你的分数是小数,可改成Decimal.Type,纯文本则用type text)。 - Unpivoted Columns:将除
Card Name、Sec Name、Question Text外的所有列逆透视,把每个Answer和Score拆成单独行,生成Attribute(原列名)和Value(对应内容)两列。 - Added Index:添加索引列,为后续分组做标记。
- Calculated Group ID:通过索引除以2取整生成分组ID,确保每组
Answer N和Answer N Score被分到同一组。 - Pivoted Column:按分组ID透视数据,把同一组的Answer和Score重新转回列结构。
- Removed Columns:删除不需要的中间列(索引、分组ID)以及
Card Name(最终输出不需要该列)。 - Renamed Columns:将列名统一改成
Answer和Answer Score,匹配Salesforce的导入要求。 - Filtered Rows:过滤掉Answer和Score都为空的无效行,保证数据干净。
扩展性说明
如果后续CSV新增更多Answer配对(比如Answer 3、Answer 3 Score),无需修改核心逻辑,只需在Changed Type步骤中新增对应列的类型定义即可,代码会自动识别分组处理。
内容的提问来源于stack exchange,提问作者user4912134
相关产品推荐
相关产品推荐

