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

时间:2019-09-01 07:33:17

标签: powerbi

我刚开始使用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个月的滚动平均值线。

谢谢!

1 个答案:

答案 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>

我的桌子如下:

enter image description here

接下来,我创建一个按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

最终结果: enter image description here