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

Power BI中基于列min值回溯对应数据至新列的方案咨询

Power BI 解决方案:基于最小值回溯对应数据

假设你的表格名为Table,用于筛选分组的列叫筛选列,存储待求最小值的列是数值列,你要获取对应值的列是目标列(比如示例中对应66的列)。

方法1:用DAX创建计算列

如果要直接在表格里新增一列存储结果,用以下DAX表达式:

对应最小值的目标列 = 
VAR 当前分组 = [筛选列]
VAR 组内最小值 = CALCULATE(MIN('Table'[数值列]), ALLEXCEPT('Table', 'Table'[筛选列]))
RETURN
CALCULATE(MAX('Table'[目标列]), FILTER('Table', 'Table'[筛选列] = 当前分组 && 'Table'[数值列] = 组内最小值))

关键逻辑说明:

  • VAR 当前分组:获取当前行所属的筛选分组值
  • VAR 组内最小值:计算当前分组下数值列的最小值,ALLEXCEPT函数确保只保留筛选列的分组上下文,排除其他筛选干扰
  • 最后通过FILTER定位同组内数值等于最小值的行,返回对应的目标列值(用MAX是避免同一组存在多个相同最小值时返回不唯一的结果,若你能确定每组最小值唯一,用MIN也可行)

方法2:用Power Query(查询编辑器)处理

要是想在数据加载阶段完成处理,用Power Query步骤如下:

  1. 选中目标表格,进入查询编辑器
  2. 点击开始选项卡的分组依据,按筛选列分组,操作选择所有行,将分组结果列命名为分组数据
  3. 添加自定义列,输入以下表达式:
List.Select([分组数据], each [数值列] = List.Min([分组数据][数值列])){0}[目标列]
  1. 若不需要保留分组数据列,可右键将其删除,最后点击关闭并应用

关键逻辑说明:

  • 先按筛选列分组,找到每组数值列的最小值
  • 用List.Select筛选出组内数值等于最小值的行,取第一行的目标列值作为结果

替换上述代码里的表格名和列名后,就能得到你示例中期望的66这类对应值。

内容的提问来源于stack exchange,提问作者ABHISHEK KUMAR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 03:35:07