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

Power BI按供应商计算平均日期差的技术问题咨询

事实表

采购表(Purchase)

Purchase_IDPurchase_DateSupplier_ID
116.01.2023a4
218.01.2023a8
320.01.2023a8

供应表(Supply)

Purchase_IDSupply_DateSupplier_ID
119.01.2023a4
223.01.2023a8
327.01.2023a8

供应商维度表

Supplier_IDSupplier_Name
a4Example_Name_1
a8Example_Name_2

问题解答

  1. 你写的TimeDiff度量值不正确。
    这个度量值用MAX取当前筛选上下文里采购日期和供应日期的最大值再计算差值,根本没有按Purchase_ID做一对一的订单匹配。比如筛选供应商a8时,它会取采购日期最大值20.01.2023和供应日期最大值27.01.2023,算出7天,但实际a8的两笔订单差值是5天和7天,完全偏离了按单订单计算差值的需求。如果两表行号不一致(比如某Purchase_ID在其中一张表缺失),这个度量值还会直接忽略不匹配的行,结果完全不可靠。

    正确的做法是按订单行匹配计算:

    • 先通过Purchase_ID建立Purchase表和Supply表的关系,然后计算单条订单的差值:
      OrderTimeDiff = DATEDIFF(RELATED('Purchase'[Purchase_Date]), 'Supply'[Supply_Date], DAY)
      
    • 再基于单条差值求平均:
      AvgTimeDiff = AVERAGE('Supply'[OrderTimeDiff])
      

    或者直接用迭代度量值一步完成:

    AvgTimeDiff = AVERAGEX(
        'Supply',
        DATEDIFF(RELATED('Purchase'[Purchase_Date]), 'Supply'[Supply_Date], DAY)
    )
    

    这样能保证每笔订单的采购、供应日期正确匹配,计算结果符合预期。

  2. 可以筛选供应商后再计算日期差的平均值。
    只要建立供应商维度表和采购、供应表的关联(通过Supplier_ID),使用上面的AvgTimeDiff这类度量值时,可视化筛选供应商后,计算逻辑会自动限定在筛选出的供应商范围内,只计算该供应商所有订单的日期差平均值。比如筛选Example_Name_1时,只会计算a4的订单差值(3天)的平均;筛选Example_Name_2时,会计算5天和7天的平均值(6天)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:02:14