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

如何在Power BI中基于Item No与Location获取最新生效Price

提取每个商品-地点组合的最新生效价格

针对你提到的需求——每个Item No与Location组合仅保留最新Date对应的价格数据,以下是两种在Power BI中可行的解决方案:

方法一:使用Power Query(M语言)处理数据源

这种方法直接在数据加载阶段清洗数据,生成符合要求的结果表:

  1. 导入销售价格表后,进入编辑查询界面
  2. 选中表格,点击转换选项卡 → 分组依据
  3. 在分组依据对话框中设置:
    • 选择高级模式
    • 添加两个分组列:Item No(分组依据字段)、Location(分组依据字段)
    • 添加新列,命名为LatestRecord,操作选择所有行
  4. 点击确定后,添加自定义列,输入以下M语言代码:
    Table.Max([LatestRecord], "Date")
    
  5. 展开LatestRecord列,选择Price和Date字段,删除多余中间列即可得到目标表。

也可以直接用完整M语句替换查询(假设原表名为SalesPriceTable):

let
    Source = SalesPriceTable,
    GroupedRows = Table.Group(Source, {"Item No", "Location"}, {{"LatestRecord", each Table.Max(_, "Date"), type record}}),
    ExpandedLatestRecord = Table.ExpandRecordColumn(GroupedRows, "LatestRecord", {"Price", "Date"}, {"Price", "Date"})
in
    ExpandedLatestRecord

方法二:使用DAX创建计算表

如果需要在数据模型中直接生成结果表,可通过DAX语句创建计算表:

LatestPriceTable = 
VAR GroupedMaxDate = 
    SUMMARIZE(
        SalesPriceTable,
        SalesPriceTable[Item No],
        SalesPriceTable[Location],
        "MaxDate", MAX(SalesPriceTable[Date])
    )
RETURN
    SELECTCOLUMNS(
        NATURALINNERJOIN(GroupedMaxDate, SalesPriceTable),
        "Item No", SalesPriceTable[Item No],
        "Location", SalesPriceTable[Location],
        "Price", SalesPriceTable[Price],
        "Date", GroupedMaxDate[MaxDate]
    )

将代码粘贴到新建计算表编辑框中,替换SalesPriceTable为你的实际表名,即可生成最新价格结果表。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:36:18