作者 | Jackson
在计算产品周转天数的时候,我们可能会算过去7日周转,15日周转,30日周转等,涉及这种变量的时候,我们可以用参数来代替,计算过去N日的产品周转,在Power BI里通过改变参数值动态查看周转天数。
在Power BI Desktop上传样本数据,日期表,库存表,销量表,然后建立关系。
然后计算度量值库存,销量和过去7日的日均销量:
过去7日日均销量 =
DIVIDE(CALCULATE('度量值表'[销量],DATESINPERIOD('日期表'[日期],TODAY()-1,-7,DAY)),7)
要想动态查看库存周转天数,需要把7日改为N日,这时我们可以建立一个参数表。选择建模下面的“新建参数”。
确定一个参数名称,然后按需求确定最大和最小值,增量为1,勾选“将切片器添加到此页”。
这时把过去7日日均销量的度量值公式修改一下7的参数,把7改为“过去N日参数值”:
过去N日日均销售量 =
DIVIDE(CALCULATE('度量值表'[销量],DATESINPERIOD('日期表'[日期],TODAY()-1,-'过去N日参数'[过去N日参数值],DAY)),'过去N日参数'[过去N日参数值])
这时候拖动“过去N日的参数”按钮即可实现动态查看过去N日的库存周转天数:
其他涉及动态改变常量值的场景,可以考虑引用新建参数的功能实现动态的效果。
在别的环境下,比如在SSDT(SQLSERVER DATA TOOLS)环境中搭建数据模型时,如果没有新建参数按钮,如何实现同样的功能?
在Power BI Desktop上示例另一种方法,代替新建参数功能实现同样的效果。我们先新建一张参数表,参数值为需要选定的参数范围。
然后建立度量值:过去N日的值,过去N日日均销量V2(version 2),当日库存周转天数V2:
过去N日的值 =
IF(ISFILTERED('参数表'[参数值]),SELECTEDVALUE('参数表'[参数值]),0)过去N日日均销量V2 =DIVIDE(CALCULATE('度量值表'[销量],
DATESINPERIOD('日期表'[日期],TODAY()-1,-'度量值表'[过去N日的值],DAY)),'度量值表'[过去N日的值])
当日库存周转天数V2 = DIVIDE('度量值表'[当日库存],'度量值表'[过去N日日均销量V2])
建好相关度量值后,在Desktop界面上建立过去N日的值的筛选器(参数值),通过点选参数值,可以实现同样的效果。
或者,不用手动创建参数表,用公式generateseries创建参数表,generateseries包含3个参数:起始值,结束值和增量。返回的是一个单列的列表,而且参数是连续的。
有了参数表,还要有筛选的值,
通过selectedvalue函数把在筛选器里选择的参数确定出来,然后传递到公式中参与运算:
过去N日日均销量V3 =
DIVIDE(CALCULATE('度量值表'[销量],DATESINPERIOD('日期表'[日期],TODAY()-1,-'度量值表'[筛选的参数],DAY)),'度量值表'(筛选的参数))
当日库存周转天数V3 =
DIVIDE('度量值表'[当日库存],'度量值表'[过去N日日均销量V3])
下面我们来进行一下总结:
总结
当需要把一个常量改为变量计算指标的时候(比如库存周转天数,变换过去N天的值),需要一张参数表,可以手动创建,也可以公式(generateseries)创建,参数表要有起始值和结束值,中间要连续。然后把参数值列表放到筛选器中,通过selectedvalue确定筛选的参数值,然后传递到公式中参与计算,实现动态计算的效果。
好啦,今天的分享就到这里,欢迎各位小伙伴积极留言~
* PowerPivot工坊原创文章,转载请注明出处!
延伸阅读:
多种DAX方法计算TOP1的值
Power Query小攻略:图书在架率表格全自动更新
计算过去一段时间的销售额
DATESINPERIOD:计算过去某段时间的指标
如何处理按列排序引起的问题
如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。点击左下角“阅读原文”可直达云课堂。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。
长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~
|
|