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

如何在Power BI中按产品编号动态计算近两个月订单之和并处理类型显示

解决方案

1. 计算近两个月订单总和(计算列)

添加计算列,通过DAX按Product+location分组,求和当前月份前两个月的订单量:

近两月订单总和 = 
VAR 当前月份序号 = '你的表名'[MonthSeq]
VAR 当前产品 = '你的表名'[Product]
VAR 当前地点 = '你的表名'[location]
RETURN
CALCULATE(
    SUM('你的表名'[order]),
    FILTER(
        ALL('你的表名'),
        '你的表名'[Product] = 当前产品 &&
        '你的表名'[location] = 当前地点 &&
        '你的表名'[MonthSeq] IN {当前月份序号 - 1, 当前月份序号 - 2}
    )
)
  • 用变量存储当前行关键值,简化公式逻辑
  • ALL('你的表名')打破当前行筛选限制,确保能查询同组下所有历史月份
  • IN {当前月份序号 -1, 当前月份序号 -2}精准匹配前两个连续月份的记录

2. 获取最新月份对应的Type(计算列)

添加第二个计算列,提取Product+location组内最新月份的type:

最新Type = 
VAR 当前产品 = '你的表名'[Product]
VAR 当前地点 = '你的表名'[location]
VAR 组内最大月份序号 = 
    CALCULATE(
        MAX('你的表名'[MonthSeq]),
        FILTER(
            ALL('你的表名'),
            '你的表名'[Product] = 当前产品 &&
            '你的表名'[location] = 当前地点
        )
    )
RETURN
CALCULATE(
    SELECTEDVALUE('你的表名'[type]),
    FILTER(
        ALL('你的表名'),
        '你的表名'[Product] = 当前产品 &&
        '你的表名'[location] = 当前地点 &&
        '你的表名'[MonthSeq] = 组内最大月份序号
    )
)
  • 先定位组内最大MonthSeq(即最新月份)
  • 用SELECTEDVALUE获取该月份对应的唯一type值,语义更清晰

3. 逻辑验证

以样本数据中Product=5255, location=xyz为例:

  • 组内最大MonthSeq为23(Nov-23),对应type=pen,最新Type列将显示pen
  • 若新增MonthSeq=24(Dec-23)的记录,近两月订单总和会自动计算23(45)+22(96)=141

注意事项

  • 确保MonthSeq是连续无重复的整数,否则会导致月份匹配错误
  • 若某组只有1个月或无历史数据,近两月订单总和会返回空白,可通过IF(ISBLANK([近两月订单总和]), 0, [近两月订单总和])设置默认值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 20:02:04