首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

日趋势分析这些指标肯定能用得着!#POWER BI#No.009

小伙伴们大家好,今天我们来研究一下如何用 Power BI 动态求所选日期区间内的平均值,最大值以及移动平均值。

我们来看看效果演示:

通过选择不同的指标名称实现了图表的指标切换,指标名称包括:销售额、利润额、订单数、销售数量。

使用滑块选择不同的日期区间,图表中自动标记该日期区间内指标的最大值和平均线。

输入移动平均天数,移动平均曲线自动根据设置的移动平均天数计算每日的移动平均值。

模型结构如下:

1个事实表:【F01-订单明细】

1个维度表:【D04-日期表】

维度表与事实表之间创建一对多的关系。

关于动态指标的切换在之前的文章中有涉及到,此处不再赘述,感兴趣的小伙伴可以去看看往期分享:原来DAX函数是全动态图表实现的幕后英雄 #POWER BI# No.006

这里把动态指标的DAX公式分享给大家:

动态指标 =

SWITCH (

SELECTEDVALUE ( 'FZ02_指标切换'[Name] ),

"Sales", [销售总额],

"Profit", [利润总额],

"Order", [订单总数],

"Quantity", [销售数量],

[销售总额]

)

接下来求最大值,度量值写法如下:

动态指标_最大值_日 =

MAXX (

ALLSELECTED ( 'D04-日期表' ),

[动态指标]

)

MAXX 是一个迭代函数,扫描当前所选日期的每一行所对应的 [动态指标] 值,然后求这些值中的最大值。ALLSELECTED 函数可以获取当前外部筛选器选择的日期。

平均值的度量值写法如下:

动态指标_平均值_日 =

AVERAGEX (

ALLSELECTED ( 'D04-日期表'),

[动态指标]

)

AVERAGEX 是一个迭代函数,扫描当前所选日期的每一行所对应的 [动态指标] 值,然后对这些值求平均。

移动平均值的度量值写法如下:

动态指标_移动平均_N日 =

VAR datefilter =

DATESINPERIOD ( 'D04-日期表'[日期],

MIN ( 'D04-日期表'[日期] ),

- [参数_移动平均天数 值],

DAY

)

RETURN

AVERAGEX ( datefilter, [动态指标] )

VAR 用来存储中间常量,从而简化代码。有VAR 后面自然要使用RETURN 来返回值,它们是成对出现的。

[参数_移动平均天数 值]是什么呢?这是我们设置的参数,参数设置方法参见动图演示:

我们可以给参数设置一个默认值,同时勾选 [将切片器添加到此页] 就可以自动生成一个日期区间的切片器了。

新建参数后会自动创建一个参数表,表中会自动出现一个度量值来计算当前切片器选择的值,如下图所示:

DATESINPERIOD函数语法如下:

假设 [参数_移动平均天数 值] 等于7,DATESINPERIOD函数所对应的公式含义为:

从当前日期点-7+1天 开始,到当前日期点为止的这一段时间。

假如当前日期点为2020年6月20日,那么DATESINPERIOD函数所对应的公式将生成一个日期表,如下图所示:

然后用AVERAGEX函数计算这些日期对应的 [动态指标] 值的平均值。这样就求出了该日期点的7日移动平均值。

度量值都写好了,接下来就要创建图表了,图表结构如下:

如何在图表中突出显示最大值呢?这里也少不了DAX公式:

动态指标_最大值_日_颜色区分 =

IF (

[动态指标] = [动态指标_最大值_日],

1,

)

公式含义:如果当前日期的 [动态指标] 值等于所选日期区间内动态指标的最大值,则返回1,否则返回0。

有了这个度量值,如何设置柱形图的颜色呢?具体操作参见动图演示:

这里使用规则分别对DAX公式生成的值进行着色即可。

好了,今天的分享就到这里,我们下期再见!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200622A02HIT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券