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 出来,噔噔噔噔~~~)

应用场景:


见 DAX/PowerBI系列 - 累计总计(Cumulative Total)

欢迎转载,请保留原文链接和作者信息。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)

最新文章

  1. Redis 主从配置和参数详解
  2. php判断是否为微信浏览器访问
  3. centos中安装字体
  4. mvc 用户控件 ascx 获取 View 页面的值
  5. URL.createObjectURL() 与 URL.revokeObjectURL()
  6. [Luogu4174][NOI2006]最大获益
  7. 无网络环境下安装Dynamics CRM
  8. 你不知道的JavaScript--Item1 严格模式
  9. java比较排序Comparable和Comparator
  10. Mysql使用information.shema.tables查询数据库表大小
  11. Prime Ring Problem dfs
  12. 使用CXF实现基于Rest方式的WebService(转)
  13. zTree 学习笔记之(一)
  14. 解决GetTickCount的问题
  15. 数学图形(2.26) 3D曲线结
  16. RPC服务框架dubbo(一):简介和原理解析
  17. maven项目的多级目录
  18. 【BZOJ4773】负环 倍增Floyd
  19. Codeforces #428 Div2 D
  20. 1.Ioc&amp;DI和Spring

热门文章

  1. elastic search query &amp; filter &amp; query_string
  2. 学习笔记:The Log(我所读过的最好的一篇分布式技术文章)
  3. elephant-bird学习笔记
  4. 【转】app之YdbOnline说明文档
  5. 【物联网】 9个顶级开发IoT项目的开源物联网平台(转)
  6. java基础----&gt;String中的split方法的原理
  7. vscode编辑器自动生成.vue文件
  8. CentOS7安装Go环境
  9. Docker学习笔记之二:制作镜像并PUSH
  10. Druid连接池(一)