码迷,mamicode.com
首页 > 其他好文 > 详细

DAX/PowerBI系列 - 库存总价值(Inventory Value)

时间:2017-04-10 19:24:47      阅读:1248      评论:0      收藏:0      [点我收藏+]

标签:运营   att   image   rod   操作   oda   color   unit   code   

DAX/PowerBI系列 - 库存总价值(Inventory Value)

 

难度: ★☆☆☆(2星)

适用: ★☆☆☆(2星)

 

概况:

前文DAX/PowerBI系列 - 累计总计(Cumulative Total)介绍了这个模式普片适用于基于时间对业务/操作进行累计统计度量,例如:计算年度累计,月度累计,库存量,库存价值。

这里是上面的扩展,详细说说评估库存价值。

 

 

正文:

有多少货(库存)当然重要(对于运营人员),这些货值多少钱当然也十分重要(对于高层管理/财务人员)。

这里基于前文的Cumulative Total得到库存数目,同时,得到某时间内最后一笔交易的单价给产品定价,就能算出总库存价格。

还有,可以利用DAX/PowerBI系列 - 参数表(Parameter Table)来做what-if分析。

 

 

最终PowerBI效果显示如下(耐心等待PowerBI 出来,噔噔噔噔~~~)

 技术分享

 

PowerBI效果显示如下:

 

 技术分享

 

应用场景:

 

欢迎转载,请保留原文链接和作者信息。O(∩_∩)O谢谢。
DAX/PowerBI系列 - 库存总价值(Inventory Value)
作者:马丁叔叔             链接:http://www.cnblogs.com/lizardbi/p/DAX-PATTERN-POWERBI-Inventory-Value.html

 

 

数据模型:

技术分享

Movements表中,正数表示入库/进货数目,负数表示出库/销售数目。UnitCost对应成本和售价。

 技术分享

 

要点:

  • 根据movement得到最后的transaction DateKey
  • 得到根据上面DateKey库存
  • 得到某时段的交易价格

 

 

 
库存
 最后买价 最后卖价 
UnitsInStock := --库存
IF (
    MIN ( Date‘[DateKey] )
        <= CALCULATE ( MAX ( Movements[DateKey] ), ALL ( Movements ) ),
    CALCULATE (
        SUM ( Movements[Quantity] ),
        FILTER (
            ALL( Date‘[Date] ),
            Date‘[Date] <= MAX ( Date‘[Date] )
        )
    )
)
LastBuyPrice :=
IF (
    HASONEVALUE ( Products[ProductKey] ),
    AVERAGEX (
        CALCULATETABLE (
            TOPN (
                1,
                Movements,
                Movements[DateKey]
            ),
            Movements[Quantity] > 0, --买/入库
            FILTER (
                ALL ( Date‘[Date] ),
                Date‘[Date] <= MAX ( Date‘[Date] )
            )
        ),
        Movements[UnitCost]
    )
)
LastSellPrice :=
IF (
    HASONEVALUE ( Products[ProductKey] ),
    AVERAGEX (
        CALCULATETABLE (
            TOPN (
                1,
                Movements,
                Movements[DateKey]
            ),
            Movements[Quantity] < 0, --卖/出库
            FILTER (
                ALL ( Date‘[Date] ),
                Date‘[Date] <= MAX ( Date‘[Date] )
            )
        ),
        Movements[UnitCost]
    )
)

 

 

注1:以上三个度量都是根据当前上下文(Filter Context)用MAX ( ‘Date‘[Date] )得到。

注2:这里限定了最后买/卖价格只有当仅有一个产品选中是有效

注3:AVERAGEX的作用是用来求得某天的均价(如果某天有多个价格的话),可以换成MAXX,MINX等

 

 

 

  

 

 

玩起来:

要把玩上面的PowerBI请戳:DAX/PowerBI系列 - 库存总价值(Inventory Value)

 

DAX/PowerBI系列 - 库存总价值(Inventory Value)

标签:运营   att   image   rod   操作   oda   color   unit   code   

原文地址:http://www.cnblogs.com/lizardbi/p/DAX-PATTERN-POWERBI-Inventory-Value.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!