简体   繁体   English

如何使用Power BI中的当前数据集计算3个月的滚动平均值?

[英]How to Calculate 3 Month Rolling Average with my current dataset in Power BI?

I'm new to power BI and i require your assistance. 我是BI的新手,需要您的帮助。 I want to create a visualisation showing the average number of tickets from the previous 3 months and compare it with the current month. 我想创建一个可视化图表,显示前三个月的平均票数,并将其与当月进行比较。 Is there any easy way to do this? 有没有简单的方法可以做到这一点? I have tried many solutions online but it dosen't work. 我已经在网上尝试了许多解决方案,但是没有用。 I think it is because my dataset may not suit the solution. 我认为这是因为我的数据集可能不适合该解决方案。

My data: 我的资料:
Tickets | 门票| Date 日期
1 | 1 | 6/30/2019 6/30/2019
1 | 1 | 6/10/2019 6/10/2019
1 | 1 | 7/1/2019 2019年7月1日
0 | 0 | 7/2/2019 7/2/2019
1 | 1 | 6/30/2019 6/30/2019

There are many more columns and rows. 还有更多的列和行。 The value of ticket is either 1 or 0 and the date can be repeated. 票证的值为1或0,并且日期可以重复。 This is the data i received from an API. 这是我从API收到的数据。

This is what i currently have 这是我目前拥有的
The data would get bigger and bigger as time goes by. 随着时间的流逝,数据将越来越大。 I would want to add a 3month rolling average line in this current visualization that i have. 我想在此当前可视化中添加3个月的滚动平均值线。

Thank you! 谢谢!

Here we go: 开始了:

First I created a column FirstDayMonth,this I use to group all data of the same month 首先,我创建了一个列FirstDayMonth,该列用于分组同一月的所有数据

FirstDayMonth = EOMONTH(Tickets[Date];-1)+1

My table looks like: 我的桌子看起来像:

在此处输入图片说明

Next I create a summarized table grouped by the FirstDayMonth 接下来,我创建一个按FirstDayMonth分组的汇总表

TicketsMonth = SUMMARIZE(Tickets;Tickets[FirstDayMonth];"Amount"; SUM(Tickets[Tickets]))

I add a column Ave3PrevMonth 我添加一列Ave3PrevMonth

Ave3PrevMonth = 
    var totalMonths = YEAR(TicketsMonth[FirstDayMonth]) * 12 + MONTH(TicketsMonth[FirstDayMonth]) - 3
    var periodStart = DATE(totalMonths/12;MOD(totalMonths;12);1)
    var periodEnd = TicketsMonth[FirstDayMonth]
return 
    CALCULATE(SUM(TicketsMonth[Amount]);
        FILTER(TicketsMonth; TicketsMonth[FirstDayMonth] >= periodStart && TicketsMonth[FirstDayMonth] < periodEnd))/3

This is the tricky bit as Power bi is not strong with dates.. 这是个棘手的问题,因为Power bi的日期不强。

I added an extra column PeriodStart to show the date from where average is taken: 我添加了额外的PeriodStart列以显示取平均值的日期:

PeriodStart = 
    var totalMonths = YEAR(TicketsMonth[FirstDayMonth]) * 12 + MONTH(TicketsMonth[FirstDayMonth]) - 3
return DATE(totalMonths/12;MOD(totalMonths;12);1)

End result: 最终结果: 在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM