博客:www.jiaopengzi.com

焦棚子的文章目录

请点击下载附件

一、背景

双十二回来后遇到一个比较有意思的计算销售额和利润率的需求(见下文说明)。

先看下效果。


结果

说明:

1、订单表中不体现销售价格,如上图《出库》。

2、销售价格单独管理,如上图《价格表》;

说明:价格是不断调整的,以上图红色填充的sku1为例,

即

2018/12/1至2018/12/10销售价:592,

2018/12/11至2018/12/13销售价:581,

2018/12/14后销售价:500。

3、库存每月1号给出一个当月期初库存如上图《期初库存》,包含成本价和数量

4、入库商品的成本价是浮动的如上图中黄色填充sku1,

即

2018/12/1期初成本价:201,

2018/12/10入库成本价:201,

2018/12/11入库成本价:211,

约定:成本价按照加权平均求得

以sku1为例:

总成本=201100+201100+211*200=82400

总数量=100+100+200=400

成本单价=82400/400=206

二、数据源

1、出库

2、期初库存

3、入库

4、价格表

5、关系

三、上度量值

1、订单数量

订单数量:=DISTINCTCOUNT('出库'[订单id])

2、出库

出库:=SUM('出库'[数量])

3、期初

期初:=SUM('期初库存'[数量])

4、入库

入库:=SUM('入库'[数量])

5、销售价

销售价:=SUM('价格表'[售价])

6、库存

库存:=
VAR TF1 =
IF ( MAX ( '出库'[日期] ) < MAX ( '日期表'[date] ), FALSE (), TRUE () )
VAR TF2 =
ISFILTERED ( '日期表'[date] )
RETURN
SWITCH (
TRUE (),
TF1 && TF2, CALCULATE ( '度量值'[期初], DATESMTD ( '日期表'[date] ) )
+ CALCULATE ( '度量值'[入库], DATESMTD ( '日期表'[date] ) )
- CALCULATE ( '度量值'[出库], DATESMTD ( '日期表'[date] ) ),
TF2 = FALSE (), CALCULATE ( '度量值'[期初], DATESMTD ( '日期表'[date] ) )
+ CALCULATE ( '度量值'[入库], DATESMTD ( '日期表'[date] ) )
- CALCULATE ( '度量值'[出库], DATESMTD ( '日期表'[date] ) )
)

7、销售额

销售额:=
SUMX (
ADDCOLUMNS (
'出库',
"单价", CALCULATE (
[销售价],
FILTER (
ALL ( '价格表' ),
'价格表'[日期] <= '出库'[日期]
&& '价格表'[日期]
>= TOPN (
1,
CALCULATETABLE (
VALUES ( '价格表'[日期] ),
FILTER ( ALL ( '价格表' ), '价格表'[日期] <= '出库'[日期] && '价格表'[sku] = '出库'[sku] )
),
'价格表'[日期], DESC
)
&& '价格表'[sku] = '出库'[sku]
)
)
),
'出库'[数量] * [单价]
)

8、成本

成本:=
VAR DS =
STARTOFMONTH ( '出库'[日期] )
VAR DE =
ENDOFMONTH ( '出库'[日期] )
VAR T1 =
DATESBETWEEN ( '日期表'[date], DS, DE )
VAR T2 =
SUMMARIZE (
sku,
sku[sku],
"CC", DIVIDE (
SUMX (
CALCULATETABLE ( '期初库存', DS, ALL ( '日期表'[date] ) ),
'期初库存'[成本价] * '期初库存'[数量]
)
+ SUMX ( CALCULATETABLE ( '入库', T1, ALL ( '日期表'[date] ) ), '入库'[成本价] * '入库'[数量] ),
SUMX ( CALCULATETABLE ( '期初库存', DS, ALL ( '日期表'[date] ) ), '期初库存'[数量] )
+ SUMX ( CALCULATETABLE ( '入库', T1, ALL ( '日期表'[date] ) ), '入库'[数量] )
)
)
RETURN
SUMX (
ADDCOLUMNS ( '出库', "成本单价", SUMX ( FILTER ( T2, [sku] = '出库'[sku] ), [CC] ) ),
[成本单价] * [数量]
)

9、利润率

利润率:=DIVIDE('度量值'[销售额]-'度量值'[成本],'度量值'[销售额])

四、总结

1、根据业务创建相关度量值上下文;

2、本案例中难点主要在度量值6、销售额和7、成本;

3、销售额中价格巧妙使用TOPN,成本中对加权求平均dax的转换。

4、如有先进先出的需求,体现在批次管理即可,本案例不是先进先出的案例。

by焦棚子

焦棚子的文章目录

114_Power Pivot 销售订单之销售额、成本、利润率相关的更多相关文章

  1. 112_Power Pivot 销售订单按 sku 订单类型特殊分类及占比相关

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 经过了一个双十一后,天天面对的都是订单.于是有了关于销售订单按sku类型分类的需求. 说明:(暂且不讨论这样分类 ...

  2. 113_Power Pivot 销售订单之重复购买率及购买间隔天数相关

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 1.背景 在论坛中看到朋友在提复购率(重复购买率)等相关问题,今天把结果贴出来. 问题原贴:计算订单中的老顾客复购率 感谢 ...

  3. [SAP ABAP开发技术总结]SD销售订单定价过程

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. 转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代

    转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代   原文地址:SAP囚徒 - 通过销售订单领用到成本中心,FI替代实现不同成本中心记账科目不同作者:SAP囚徒 物品领用通常是库存管理的范畴 ...

  5. SAP 销售订单交货对成本中心记账

    销售订单发货不计入主营业务成本,而是直接接入费用科目,与成本中心挂钩的业务经常发生.不少公司只是简单地处理交货,计入主营业务成本,然后财务再手工将成本归结到相关的成本中心.其实SAP系统是支持销售订单 ...

  6. VA01销售订单批导问题解决

    1业务场景 事务代码:VA01创建销售订单,VA02修改销售订单 可以通过BAPI_SALESORDER_CREATEFROMDAT2批量创建 可以通过BAPI_SALESORDER_CHANGE批量 ...

  7. sap 中怎样把非限制库存转为销售订单库存?

    把非限制库存转为销售订单库存: MB1B 移动类型413 把销售订单库存转为非限制库存: MB1B移动类型411 E 切记!

  8. Netsharp快速入门(之11) 销售管理(开发销售订单工作区)

    作者:秋时 杨昶   时间:2014-02-15  转载须说明出处 4.3     销售订单开发 4.3.1  部件工作区设置 1.创建部件工作区,建工作区向导中要注意勾选组合并系部分.具体要建立的部 ...

  9. Netsharp快速入门(之13) 销售管理(单据流转 销售订单生成发货单)

    作者:秋时 杨昶   转载须说明出处 4.5     单据流转 4.5.1  单据流转的目的 单据流转主要为了实现业务关系的流转,并记录相互之间的关系.例如从销售订单生成销货单,两张单据之间有对应的关 ...

随机推荐

  1. C语言形参和实参的区别(非常详细)

    如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品:从一定程度上讲,函数的作用就是根据不同的参数产生不同的返回值.这一节我们先来讲解C语言函数的参数,下一节再讲解C语言函数的返回值.C语 ...

  2. 小程序踩坑记录-上传图片及canvas裁剪图片后上传至服务器

    最近在写微信小程序的上传图片功能,趟过了一些坑记录一下. 想要满足的需求是,从手机端上传图片至服务器,为了避免图片过大影响传输效率,需要把图片裁剪至适当大小后再传输 主要思路是,通过wx.choose ...

  3. mpvue小程序加载不出图片 Failed to load local image resource

    我的GitHub博客,很多内容可以看,喜欢的给星星哦 https://github.com/liangfengbo/frontend 第一道:图片引入本地静态文件失效? mpvue开发小程序时候,要添 ...

  4. CSS - 定位属性position使用详解(static、relative、fixed、absolute)

    position 属性介绍 (1)position 属性自 CSS2 起就有了,该属性规定元素的定位类型.所有主流浏览器都支持 position 属性. (2)position 的可选值有四个:sta ...

  5. PAT B1002写出这个数

    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1. 输出格式: 在一行内输出 n 的 ...

  6. 实际业务处理 Kafka 消息丢失、重复消费和顺序消费的问题

    关于 Kafka 消息丢失.重复消费和顺序消费的问题 消息丢失,消息重复消费,消息顺序消费等问题是我们使用 MQ 时不得不考虑的一个问题,下面我结合实际的业务来和你分享一下解决方案. 消息丢失问题 比 ...

  7. MySQL性能优化的5个维度

    面试官如果问你:你会从哪些维度进行MySQL性能优化?你会怎么回答? 所谓的性能优化,一般针对的是MySQL查询的优化.既然是优化查询,我们自然要先知道查询操作要经过哪些环节,然后思考可以在哪些环节进 ...

  8. nacos集群模式搭建踩坑记录

    首先数据库使用的本地的mysql 1.看日志提示no set datasource,使用虚拟机ping本地后发现无法ping通,原因是本地没有关闭防火墙. 2.看日志提示不允许建立数据库连接,原因是r ...

  9. FFMPEG第一次学习

    习惯用OneNote笔记,直接复制了,链接和一些命令放在最下面了 里面的库文件是我下的雷神的课件文件,我传到了自己github,链接也放最后了 转载自:https://blog.csdn.net/le ...

  10. 安卓记账本开发学习day4

    在代码层面,展示出来的界面应该如下图 但是实际运行效果如下图 很明显,"其他"都没有显示出来,经过一点点排查,发现是IncomeFragment.java文件的代码存在错误 @Nu ...