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)

DAX/PowerBI系列 - 库存总价值(Inventory Value)的更多相关文章

  1. DAX/PowerBI系列 - 关于时间系列 - 时间相关数值比较 - 用非自带函数

    DAX/PowerBI系列 - 关于时间系列 - 时间相关数值比较 - 用非自带函数 文末有彩蛋,解决蛋疼问题 难度: ★★☆☆☆(2星) 适用范围: ★★★☆☆(3星) 概况: 基于时间的汇总可能是 ...

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

    DAX/PowerBI系列 - 累计总计(Cumulative Total) 2017/07/23 更新:B列公式(见最后) 难度: ★★☆☆☆(2星) 适用: ★★☆☆☆(2星) 概况: 这个模式普 ...

  3. DAX/PowerBI系列 - 累计总计(Cumulative Total, Running Total)

    DAX/PowerBI系列 - 累计总计(Cumulative Total) 2017/07/23 更新:B列公式(见最后) 2019/08/08 更新:在可视化数据的时候,一定要选择日期维度的日期列 ...

  4. DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy)

    DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy)参考文章见最后 难度: ◆◆◇◇◇(2星) 应用场景: 其实很多时候对数据汇总都会有层级关系的问题,不过说的不是 ...

  5. DAX/PowerBI系列 - 参数表(Parameter Table)

    DAX/PowerBI系列 - 参数表(Parameter Table) 难度: ★☆☆☆☆(1星) 适用范围: ★★★★☆(4星) 概况: 这个模式比较简单灵活,而且很实用.所用的DAX语句也比较简 ...

  6. DAX/PowerBI系列 - 关于时间系列 - 如何用脚本生成时间维度 (Generate Date Dimension)

    跟大家的交流是我的动力. :) DAX/PowerBI系列 - 关于时间系列 - 如何用脚本生成时间维度 (Generate Date Dimension) 难度: ★☆☆☆☆(1星) 适用范围: ★ ...

  7. DAX/PowerBI系列 - 玩转阿里云 Alicloud Pricing

    DAX/PowerBI系列 - 玩转 阿里云主机 Ali Cloud ECS 难度: ★★☆☆☆(1星) 适用范围: ★★★☆☆(3星) 欢迎交流与骚扰 这是啥: 双十一就到了,码农门,程序猿们有没有 ...

  8. (玩起来)DAX/PowerBI系列 - 参数表(Parameter Table) - 多时间段数值对比

    盆友们,边看文章边玩,请耐心等待PowerBI load出来~~~~ (7.8秒钟) DAX/PowerBI系列 - 参数表(Parameter Table) - 多时间段数值对比 难度: ★☆☆☆☆ ...

  9. DAX/PowerBI系列 - 参数表(Parameter Table) 度量值模板

    DAX/PowerBI系列 - 参数表(Parameter Table) 度量值模板 难度: ★★☆☆☆(2星) 适用范围: ★★★☆☆(3星) 概况: 当你有多个度量值都需要计算YTD,MoM,而又 ...

随机推荐

  1. return返回两个三元表达式的和,返回不正确,同样要注意在JavaScript中,也是如此

    public string b() { string b = ""; "; } public int c() { public string b() { string b ...

  2. openfire课程

    https://blog.csdn.net/huwenfeng_2011/article/category/2874473/2 https://www.cnblogs.com/Fordestiny/p ...

  3. 60cms Cookies欺骗漏洞审计

    源码地址:https://files.cnblogs.com/files/ssooking/60cms.zip 运行60cms目录下的Netbox.exe即可开启Asp Web服务,默认端口80 环境 ...

  4. .net core 2.0 虚拟目录下载 Android Apk 等文件

    当Android 文件 Apk 放在Asp.net core wwwroot 虚拟目录下面.访问是 404,设置Content-Type类型 app.UseStaticFiles(); //设置实际目 ...

  5. Linux文件属性有哪些?(共十位)

    -rw-r--r-- 那个是权限符号,总共是 - --- --- --- 这几个位. 第一个短横处是文件类型识别符: - 表示普通文件: c 表示字符设备(character): b 表示块设备(bl ...

  6. bootstrap动态添加Tab标签页

    好久没有写博客了(主要是懒),工作中用到一个动态添加Tab的功能,众所周知,bootstrap没有动态添加Tab的功能,网上又没找到什么好用的,那咱就自己写呗?(因为懒,所以只写了添加的方法.(๑&g ...

  7. 微信小程序——购物车结算

    项目需要做个购物车结算功能,先分析需求: 1.全选,反选的功能.当选中的个数 = 购物车的数量时,勾选全选按钮,反之则取消选中全选按钮: 2.改变选中状态时,计算总价和总数量: 3.单个产品的数量加减 ...

  8. 使用git创建与合并分支

    一.概述 学会使用git命令对项目进行创建分支,并在创建结束后合并到主分支上. 问:为什么要创建分支? 答:在原来的分支上创建一个自己的分支进行开发,在开发完毕后一次性合并到原先的分支,这样既保证安全 ...

  9. CentOS安装和配置Docker和Nginx

    纯粹记录下: 1 安装Docker容器: yum install docker-ce 2. 搜索官网nginx docker search nginx 3. 找到需要的版本安装: docker pul ...

  10. CentOS 6.x 如何升级 glibc 2.17

    CentOS 6.x 如何升级 glibc 2.17 ldd --version rpm -qa | grep glibc #查看glibc的版本 strings /lib64/libc.so.6 | ...