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

如何使用Power BI DAX提取指定条件下的最小SRF值?

Power BI实现需求的具体方法

现有两个数据表:
表1:存储每个Tower ID对应的Height值(示例中Tower ID 123的Height为500)

Tower IDBottom DiaTop DiaHeight
123Cell 2Cell 1500

表2:存储同一Tower ID下的多组height和SRF数据,需筛选出height小于表1对应Height的所有SRF,取最小值(示例中筛选后SRF为0.25、0.1、0.3、0.2,最小值是0.1)

Tower IDMassheightSRF
123Cell 26500.3
123Cell 25000.25
123Cell 24500.1
123Cell 22000.3
123Cell 2500.2

下面提供几种适合新手的实现方式:

方式一:表1添加DAX计算列(直接得到结果列)

先确保表1和表2通过Tower ID建立一对多关系(表1是一方,表2是多方),然后在表1中新建计算列,输入以下DAX公式:

最小SRF = 
VAR 当前塔高 = '表1'[Height]
VAR 符合条件的SRF数据 = 
    FILTER(
        RELATEDTABLE('表2'),
        '表2'[height] < 当前塔高
    )
RETURN
    MINX(符合条件的SRF数据, '表2'[SRF])

公式逻辑:

  1. 先获取当前行Tower ID对应的表1高度值
  2. 关联表2,筛选出其中height小于该高度的所有行
  3. 在筛选后的行里提取SRF的最小值

方式二:创建DAX度量值(适配报表交互)

如果需要在报表中配合切片器、筛选器动态展示结果,就创建度量值:

最小SRF_动态 = 
VAR 当前选中塔ID = SELECTEDVALUE('表1'[Tower ID])
VAR 当前塔高 = CALCULATE(MAX('表1'[Height]), '表1'[Tower ID] = 当前选中塔ID)
VAR 符合条件的SRF数据 = 
    FILTER(
        ALL('表2'),
        '表2'[Tower ID] = 当前选中塔ID && '表2'[height] < 当前塔高
    )
RETURN
    MINX(符合条件的SRF数据, '表2'[SRF])

这个度量值会根据报表中选中的Tower ID自动计算对应结果,适合做交互式报表。

方式三:Power Query预处理(静态结果)

如果不需要动态计算,直接用Power Query提前处理好结果更简单:

  1. 打开Power Query编辑器,加载表1和表2
  2. 选中表1,点击「合并查询」,选择表2,匹配列选Tower ID,合并类型选「左外部」
  3. 展开合并后的表2列,只保留height和SRF
  4. 添加自定义列,输入[height] < [Height],筛选出该列值为True的行
  5. 按Tower ID分组,对SRF列选择「最小值」作为聚合方式
  6. 关闭并应用,得到的新表就是每个Tower ID对应的最小SRF结果

内容的提问来源于stack exchange,提问作者Vikram Suriyanarayanan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 10:07:12