如何在最终数据表生成前访问中间转换步骤的ColumnA数据
获取Power Query中Pivot操作前ColumnA的唯一值
给你几个实用的解决思路,不用依赖IronPython或复杂工具:
方案1:在Pivot前插一步提取唯一值(最直接)
打开Power Query编辑器,找到你做Pivot的那个步骤(比如叫Pivot ColumnA),选中它的上一步(比如叫CleanedTable),插入一个自定义步骤:
ColumnAUniques = List.Distinct(CleanedTable[ColumnA])
这个步骤会把ColumnA的唯一值存成一个列表变量,之后直接用这个变量填充文档属性就行,完全不影响后面的Pivot和其他转换——Power Query的步骤是独立的,插这步不会搞乱你原来的流程。
方案2:复制查询截断到Pivot前
要是不想动现有查询的步骤结构,可以:
- 右键原查询
Table1,选择复制,生成一个新查询(比如叫GetColumnAUniques) - 在新查询的步骤面板里,删除Pivot及之后的所有步骤
- 添加自定义步骤提取唯一值:
FinalUniques = List.Distinct(LastValidStep[ColumnA])
原查询Table1Final的转换流程不受任何影响,新查询专门用来获取你需要的唯一值。
方案3:直接调用历史步骤数据(无需修改现有步骤)
如果已经完成所有转换,不想插入或复制步骤,用M语言直接调用Pivot前的步骤数据即可:
假设Pivot步骤名叫Pivot ColumnA,它的上一步叫PrePivotData,在任意自定义步骤里写入:
ColumnAUniques = List.Distinct(Expression.Evaluate("PrePivotData", #shared)[ColumnA])
#shared会加载当前查询环境中的所有步骤,Expression.Evaluate能直接调用指定步骤的数据集,从而拿到Pivot前的ColumnA唯一值。
关于你之前尝试的补充说明
- 你提到数据函数只能原地修改:其实Power Query的所有步骤都是不可变的,你之前的操作应该是试图修改原表的步骤,正确做法是生成独立的变量或新查询,而非改动原有转换流程。
- 无需依赖IronPython:Power Query原生的M语言已经可以直接访问所有历史步骤的数据,没必要绕到IronPython实现需求。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

