DAX/PowerBI系列 - 庫存總價值(Inventory Value)


DAX/PowerBI系列 - 庫存總價值(Inventory Value)

歡迎交流與騷擾

 

 

 

難度: ★☆☆☆(2星)

適用: ★☆☆☆(2星)

 

概況:

有多少貨(庫存)當然重要(對於運營人員),這些貨值多少錢當然也十分重要(對於高層管理/財務人員)。

一般在每個會計周期結束時,會根據市場售價或者成本價來會評估庫存總價值(取低者) 。

評估方法有四種:先進先出(FIFO: first-in, first-out),后進先出(LIFO: last-in, first-out),均價(AVCO: average cost),指定價格

 

正文:

前文DAX/PowerBI系列 - 累計總計(Cumulative Total)介紹了這個模式普片適用於基於時間對業務/操作進行累計統計度量,例如:計算年度累計,月度累計,庫存量,庫存價值。

這里基於前文的Cumulative Total得到庫存數目,同時,得到某時間內最后一筆交易的單價給產品定價,就能算出總庫存價格。

還有,可以利用DAX/PowerBI系列 - 參數表(Parameter Table)來做what-if分析。

 

 

最終PowerBI效果顯示如下(耐心等待PowerBI 出來,噔噔噔噔~~~)

 https://app.powerbi.com/view?r=eyJrIjoiZmQ1MTBiYmQtZDIyYi00OGQ1LWFjOTgtNjE2N2VlOTc0OWQyIiwidCI6ImQxYWY4NDdiLTJjZTEtNDRjYi1iYjUwLWQ1ODAyYmI0M2M4YiIsImMiOjEwfQ%3D%3D

 

 

應用場景:

 

歡迎轉載,請保留原文鏈接和作者信息。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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM