Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi PowerPivot 3个月滚动平均值_Powerbi_Powerpivot_Dax - Fatal编程技术网

Powerbi PowerPivot 3个月滚动平均值

Powerbi PowerPivot 3个月滚动平均值,powerbi,powerpivot,dax,Powerbi,Powerpivot,Dax,在PowerPivot中创建度量值需要一些帮助。我在谷歌上搜索并尝试了我能找到的所有选择,并取得了成功。我有一个关于销售线索的事实表。有些线索给了我们一个机会,有些则没有。我需要测量潜在客户的价值。我对这些值求和,并将其与表中的记录数相除 Average Total of Leads:=calculate(Table1[Sum of Value]/Table1[Count of Lead name]) 我的问题是创建一个可以给我3个月滚动平均值的度量 我试过: Roll3Average:=[A

在PowerPivot中创建度量值需要一些帮助。我在谷歌上搜索并尝试了我能找到的所有选择,并取得了成功。我有一个关于销售线索的事实表。有些线索给了我们一个机会,有些则没有。我需要测量潜在客户的价值。我对这些值求和,并将其与表中的记录数相除

Average Total of Leads:=calculate(Table1[Sum of Value]/Table1[Count of Lead name])
我的问题是创建一个可以给我3个月滚动平均值的度量

我试过:

Roll3Average:=[Average Value of leads]/CALCULATE(DISTINCTCOUNT(dimdate[MonthName]), 
          DATESINPERIOD(dimdate[Dates],
                        LASTDATE(dimdate[Dates]),-3,Month
                       )
         )
Rolling3Average:=IF(COUNTROWS(VALUES(dimdate[MonthName])) = 1, 
    CALCULATE( 
[Average of Value]/ COUNTROWS(VALUES(dimdate[MonthName] ) )  , 
            DATESBETWEEN( 
                dimdate[Dates], 
                FIRSTDATE(PARALLELPERIOD(dimdate[dates], -2, MONTH)), 
                LASTDATE(PARALLELPERIOD(dimdate[dates], 0, MONTH)) 
            ), ALL(DimDate) 
    ) 
)
Total Sales rolling:=
CALCULATE (averagex(Table1,[Average Total of deals]),
    FILTER (ALL ( dimdate),dimdate[Month] >= MAX (dimdate[Month]) -2&& dimdate[Month] <= MAX ( DimDate[Month])))
我试过:

Roll3Average:=[Average Value of leads]/CALCULATE(DISTINCTCOUNT(dimdate[MonthName]), 
          DATESINPERIOD(dimdate[Dates],
                        LASTDATE(dimdate[Dates]),-3,Month
                       )
         )
Rolling3Average:=IF(COUNTROWS(VALUES(dimdate[MonthName])) = 1, 
    CALCULATE( 
[Average of Value]/ COUNTROWS(VALUES(dimdate[MonthName] ) )  , 
            DATESBETWEEN( 
                dimdate[Dates], 
                FIRSTDATE(PARALLELPERIOD(dimdate[dates], -2, MONTH)), 
                LASTDATE(PARALLELPERIOD(dimdate[dates], 0, MONTH)) 
            ), ALL(DimDate) 
    ) 
)
Total Sales rolling:=
CALCULATE (averagex(Table1,[Average Total of deals]),
    FILTER (ALL ( dimdate),dimdate[Month] >= MAX (dimdate[Month]) -2&& dimdate[Month] <= MAX ( DimDate[Month])))
我试过:

Roll3Average:=[Average Value of leads]/CALCULATE(DISTINCTCOUNT(dimdate[MonthName]), 
          DATESINPERIOD(dimdate[Dates],
                        LASTDATE(dimdate[Dates]),-3,Month
                       )
         )
Rolling3Average:=IF(COUNTROWS(VALUES(dimdate[MonthName])) = 1, 
    CALCULATE( 
[Average of Value]/ COUNTROWS(VALUES(dimdate[MonthName] ) )  , 
            DATESBETWEEN( 
                dimdate[Dates], 
                FIRSTDATE(PARALLELPERIOD(dimdate[dates], -2, MONTH)), 
                LASTDATE(PARALLELPERIOD(dimdate[dates], 0, MONTH)) 
            ), ALL(DimDate) 
    ) 
)
Total Sales rolling:=
CALCULATE (averagex(Table1,[Average Total of deals]),
    FILTER (ALL ( dimdate),dimdate[Month] >= MAX (dimdate[Month]) -2&& dimdate[Month] <= MAX ( DimDate[Month])))
我做不好

我希望有人能看到我的错误

@马库斯

我的数据模式仍然有问题

我链接了一个非常简单的示例。我希望有人能帮助我


谢谢

注意,在我使用的示例中,我使用的是[Sales],而不是Lead

您要进行的主要结构更改是在dimDates表中创建月索引。拥有该字段的优点是,它使计算3个月内的总数变得更容易,因为它消除了处理跨年度的需要,如第2个示例中所示。另一个优点是有一个月索引可以处理非标准日历,例如4-4-5

首先:

Sales:=SUM(Data[Qty])
下一部分是计算3个月内的销售线索。下面我们使用month_索引字段快速定义要求和的日期范围

3_Month_Sales :=
CALCULATE (
    [Sales],
    FILTER (
        ALL ( dimdate ),
        dimdate[Month_index] <= MAX ( dimdate[Month_index] )
            && dimdate[Month_index]
                >= MAX ( dimdate[Month_index] ) - 2
    )
)
更复杂的方法,我学到了可以在计算中包装SUMX。计算的思想是看你的3个月的周期,然后sumx是按年份然后按月迭代。最后检查销售额是否大于0,如果大于0,则分配1。然后将这些1相加

Count_of_Periods :=
CALCULATE (
    SUMX (
        VALUES ( dimdate[Year] ),
        SUMX ( VALUES ( dimdate[Month] ), IF ( [Sales] > 0, 1 ) )
    ),
    FILTER (
        ALL ( dimdate ),
        dimdate[Month_index] <= MAX ( dimdate[Month_index] )
            && dimdate[Month_index]
                >= MAX ( dimdate[Month_index] ) - 2
    )
)
下面是一幅使用一些随机样本数据的图像,以及不同字段如何相互作用。作为该示例的一部分,删除了2017年4月的数据,以显示计算期间的计数如何能够处理该期间没有数据的事实


非常感谢您的帮助Marcus,非常感谢您的帮助@Marcus,它工作正常,但不幸的是它仍然不能满足我的需要。如果我只看销售的话,效果很好,但我需要把它分解为潜在客户的销售。所以我需要测量潜在客户的价值。销售额除以潜在客户数,我尝试使用潜在客户数。谢谢你,我希望能找到解决办法。