powerbi - 如何使用 Power BI 中的当前数据集计算 3 个月的滚动平均值?
问题描述
我是 Power BI 的新手,需要您的帮助。我想创建一个可视化,显示前 3 个月的平均票数,并将其与当月进行比较。有什么简单的方法可以做到这一点?我在网上尝试了很多解决方案,但都不起作用。我认为这是因为我的数据集可能不适合该解决方案。
我的数据:
门票 | 日期
1 | 2019年 6 月 30
日 1 | 2019
年 6 月 10 日 1 | 2019 年 7 月 1 日
0 | 2019
年 7 月 2 日 1 | 2019 年 6 月 30 日
还有更多的列和行。票的价值是 1 或 0,日期可以重复。这是我从 API 收到的数据。
这就是我目前拥有
的数据随着时间的推移会越来越大。我想在我拥有的当前可视化中添加 3 个月的滚动平均线。
谢谢!
解决方案
开始了:
首先我创建了一个列 FirstDayMonth,我用它来分组同一个月的所有数据
FirstDayMonth = EOMONTH(Tickets[Date];-1)+1
我的桌子看起来像:
接下来我创建一个按 FirstDayMonth 分组的汇总表
TicketsMonth = SUMMARIZE(Tickets;Tickets[FirstDayMonth];"Amount"; SUM(Tickets[Tickets]))
我添加一列 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
这是一个棘手的问题,因为 Power bi 不适合日期。
我添加了一个额外的列 PeriodStart 以显示取平均值的日期:
PeriodStart =
var totalMonths = YEAR(TicketsMonth[FirstDayMonth]) * 12 + MONTH(TicketsMonth[FirstDayMonth]) - 3
return DATE(totalMonths/12;MOD(totalMonths;12);1)
推荐阅读
- java - 如何将其转换为 Java lambda 格式?
- sql-server - 如何进行 SQL Server 递归 CTE
- r - R根据数据范围和变量组合填充数据值
- android - 有没有办法从android中的图像视图中获取图像路径?
- javascript - jsdoc - 参数对象内的默认属性值
- python - 在 Python 中,当我删除一个变量和 gc.collect() 时,为什么我可以找到地址来获取内容?
- node.js - 有没有办法使用 fs.readFile 读取或转换请求接收的对象
- java - 从github下载jar文件?
- javascript - MongoDB 存储“Promise”对象而不是散列密码
- spring-boot - Springboot在oneTOMany关系中添加问题