这个分享6和分享7,其实上周就写好了,忍住了整个假期。要保证一周两发嘛,所以就昨天和今天发了。我是不是很厉害!
DAX分享3的时候,我们介绍了用DAX在PowerBI中计算running 12 months average(就是累计12个月的average,也有人叫moving 12 months。一样的东西。)
如果不知道DAX分享3的内容,请移步这个链接https://mp.weixin.qq.com/s/KrFvGFLU4CWh5mCudBcNQQ
或者直接关注DAX Share看DAX分享3的内容。
今天我们要做的结果如下,在input the month的地方,随便你输入几个月的值,我们的paramter 字段就会计算几个月的running total,具体计算了几个月的总和,可以参考month2. 当前我输入的值是10.
结果如下
是不是很好玩的样子?Er...其实贼简单~~唉...一种说出来就不好玩了的感觉.
首先,新建一个变量(New Parameter)。
可以根据你的需要修改里面的数值。这个因为我们输入的是month,所以用whole number。都是字面意思,我就不多解释了。默认值(Default)你可以写也可以不写。添加这个切片到页面(Add slicer to this page)是默认打钩的。
确认之后得到下面的内容。
其他的属性我就不多说了。只提一下三个.Slicer header,Slider,Title。
Slicer header就是这个parameter的名字,之前你起了什么名字就显示什么名字。我不喜欢这个显示,右侧’on‘请向左移。可以在title里面从新起名字。Slider也左移,把那个线去掉,不显示。
paremeter搞定,建好之后,你可以看到右侧FIELDS里面出现了一个Parametre的表。这个很有趣的。Parameter 计算字段(Calculate Column)显示的是你对paramter的定义;Paramter Value取的就是你当前输入的parameter的数值。下次分享我们可以分享下SELECTEDVALUE,应该有点意思。
Parameter = GENERATESERIES(0, 60, 1)
Parameter Value = SELECTEDVALUE(Parameter[Parameter], "")
下一步就是写DAX了。其实也很简单啦。思路和DAX分享3中的一样。
就是把一个固定值换成了变量定义的currentinput。
改个名字parameter total和par month。
定义如下:
paremeter total =
VAR currentinput = SELECTEDVALUE(Parameter[Parameter],12)
RETURN
SUMX(
DATESINPERIOD('Date'[Date],LASTDATE('Date'[Date]),-currentinput,MONTH)
,CALCULATE(SUM(financials[ Sales])) )
par months =
VAR currentinput = SELECTEDVALUE(Parameter[Parameter],12)
RETURN
CALCULATE(
DISTINCTCOUNT(financials[Date])
,DATESINPERIOD('Date'[Date],LASTDATE('Date'[Date]),-currentinput,MONTH)
)
我输入了一个3,结果如下:
说起来很高深的样子,其实弄下来都很简单的。so easy!
随便关注不关注DAX Share吧。二维码总归要留下的。