我刚开始使用BI,需要您的帮助。我想创建一个可视化图表,显示前三个月的平均票数,并将其与当月进行比较。有没有简单的方法可以做到这一点? 我已经在网上尝试了许多解决方案,但是没有用。我认为是因为我的数据集可能不适合该解决方案。
我的数据:
门票|日期
1 | 2019年6月30日
1 | 6/10/2019
1 | 2019年7月1日
0 | 2019年7月2日
1 | 2019/6/30
还有更多的列和行。票证的值为1或0,并且日期可以重复。这是我从API收到的数据。
This is what i currently have
随着时间的流逝,数据将越来越大。
我想在当前的可视化效果中添加一个3个月的滚动平均值线。
谢谢!
答案 0 :(得分:0)
我们在这里:
首先,我创建了列FirstDayMonth,该列用于分组同一月的所有数据
<!--Choice radiobuttons-->
function Display(obj) {
fioid=obj.id;
if(fioid=='exampleRadios1'){
document.getElementById("fiz").style.display='block';
document.getElementById("ip").style.display='none';
document.getElementById("ur").style.display='none';
} else if(fioid=='exampleRadios2'){
document.getElementById("ip").style.display='block';
document.getElementById("fiz").style.display='none';
document.getElementById("ur").style.display='none';
} else if(fioid=='exampleRadios3'){
document.getElementById("ur").style.display='block';
document.getElementById("fiz").style.display='none';
document.getElementById("ip").style.display='none';
}}
<div class="col-12">
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios"
id="exampleRadios1" value="FIZ" onclick="Display(this);" checked>
<label class="form-check-label" for="exampleRadios1">
FIZ
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios"
id="exampleRadios2" value="IP" onclick="Display(this);">
<label class="form-check-label" for="exampleRadios2">
IP
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios"
id="exampleRadios3" value="UR" onclick="Display(this);">
<label class="form-check-label" for="exampleRadios3">
UR
</label>
</div>
</div>
<div>
<p style="text-align: justify; font-family: Times New Roman;">
<span style='display: block;' id="fiz">This is FIZ</span>
<span style='display: none;' id="ip">This is IP</span>
<span style='display: none;' id="ur">This is UR</span>
</p>
<div>
我的桌子如下:
接下来,我创建一个按FirstDayMonth分组的汇总表
FirstDayMonth = EOMONTH(Tickets[Date];-1)+1
我添加一列Ave3PrevMonth
TicketsMonth = SUMMARIZE(Tickets;Tickets[FirstDayMonth];"Amount"; SUM(Tickets[Tickets]))
这是个棘手的问题,因为Power bi的日期不强。.
我添加了额外的PeriodStart列以显示取平均值的日期:
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