人生没有彩排
每一天都是现场直播

如何在PowerBI中计算保守策略下的实际库存?

在供应链管理和库存分析中,准确计算实际库存是至关重要的。本篇文章将介绍如何在PowerBI中计算一种采用保守策略的场景下的实际库存的计算方法。

问题描述

某公司正在进行促销活动,但为了避免库存积压,他们采取了保守的策略:如果当天的订单数量大于实际库存数量,那么就按实际库存发货,多余订单则退单处理。

以下是该公司的库存变动表,正数代表入库数量,负数则代表订单数量(应出库数量)。

要求:计算每天的实际库存量,库存不能为负数,最小为0。

换句话说就是:按日期升序累计“库存增减”字段,当累计值为负数时让其等于0,并从0继续累计。

具体问题如下图所示:

本案例的初始数据如下:

库存变动表:

日期 库存增减
2023/3/5 39
2023/3/8 45
2023/3/10 -55
2023/3/16 28
2023/3/18 -65
2023/3/25 -28
2023/3/28 16
2023/3/30 -5

若需其它辅助表等,可自行创建并建模。

解题要点

在本案例中,由于库存最小为零,即累计值为负数时需要让其等于零,后面再从零开始累计,因此正常的累计值会比遇零重置的累计值多累加一部分数值,因此只需要减掉这一部分差值即可。

具体的计算逻辑可参考下表:

日期 库存增减 累计值 MIN(过去的最小累计值,0) 累计值 – MIN(过去的最小累计值,0)
2023/3/5 39 39 0 39
2023/3/8 45 84 0 84
2023/3/10 -55 29 0 29
2023/3/16 28 57 0 57
2023/3/18 -65 -8 -8 0
2023/3/25 -28 -36 -36 0
2023/3/28 16 -20 -36 16
2023/3/30 -5 -25 -36 11

解决方案

首先,数据模型如下图所示:

然后,创建如下度量值:

实际库存 = 
VAR CurDate = MAX('库存变动表'[日期])
VAR BaseTbl = 
    FILTER(
        ALL('库存变动表'[日期],'库存变动表'[库存增减]),
        '库存变动表'[日期]<=CurDate
    )
VAR AddAcc = 
    ADDCOLUMNS(
        BaseTbl,
        "Acc",
            SUMX(
                FILTER(BaseTbl,'库存变动表'[日期]<=EARLIER('库存变动表'[日期])),
                '库存变动表'[库存增减]
            )
    )
VAR CurAcc = MAXX(FILTER(AddAcc,'库存变动表'[日期]=CurDate),[Acc])
VAR ClosestMinAcc = MIN(0,MINX(AddAcc,[Acc]))
RETURN
CurAcc-ClosestMinAcc

然后创建一个矩阵,并将日期字段作为行标签,再将上面的度量值以及库存增减字段一起放入矩阵的值字段即可,结果如下图所示:

其他方案

以下解决方案精选自技术交流群中的其他小伙伴,希望他们的独到见解和解决思路能够为大家提供更多启发,内容已征得同意,特此分享出来供大家参考和借鉴。

1、WT:

2、XSY:

总结

以上方法仅供参考,若有更优雅的解决方案,欢迎留言讨论,或者加入我们的技术交流群,一起享受这种思维碰撞的快乐吧!

PBI/DAX技术交流群(QQ):344353627

赞(2) 打赏
未经允许不得转载:夕枫 » 如何在PowerBI中计算保守策略下的实际库存?
订阅评论
提醒
guest
0 评论
最新
最久 最赞
内联反馈
查看所有评论

觉得文章有用的话就支持一下吧~

感谢您的打赏支持,我将持续输出有价值的内容!

支付宝扫一扫打赏

微信扫一扫打赏