You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在最终数据表生成前访问中间转换步骤的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 04:10:23