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

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

问题描述

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

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

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

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

具体问题如下图所示:

本案例的初始数据如下:

库存变动表:

日期库存增减
2023/3/539
2023/3/845
2023/3/10-55
2023/3/1628
2023/3/18-65
2023/3/25-28
2023/3/2816
2023/3/30-5

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

解题要点

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

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

日期库存增减累计值MIN(过去的最小累计值,0)累计值 - MIN(过去的最小累计值,0)
2023/3/53939039
2023/3/84584084
2023/3/10-5529029
2023/3/162857057
2023/3/18-65-8-80
2023/3/25-28-36-360
2023/3/2816-20-3616
2023/3/30-5-25-3611

解决方案

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

然后,创建如下度量值:

实际库存 = 
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PowerBI | 夕枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值