Sumif相当于Power Pivot Measure Calculations

时间:2016-10-17 11:59:03

标签: excel powerpivot dax

这是我的第一个问题,我会尽力以一个好的方式提问我。

我在使用Excel方面非常有经验,但对于Power Tools来说却很安静。我有一个以下列方式设置的数据模型

表SalesData:

Day | Amount Ordered | Amount Sent | toBeAchived (Service Level per Month)* 
1          10              10                     87,5%
2          20              15                     87,5%
3          15              15                     87,5%
..
51         20              18                     90,0%

表日历:

Day | Month
1       1
2       1
3       1
..      
51      2

然后我创建了一个度量: 服务水平:=总和(订购金额)/总和(发送金额)

如果我现在创建一个数据透视表,我可以汇总月份并查看第1个月的服务级别。

现在我想构建一个图表,在x-Axis上有几天,但是有Mothly平均服务水平,但是由于它的分解,我每天都会得到这个度量。

所以我需要的是一个sumif(订购金额,月= @Month),这在Excel表格中很容易。

*我尝试像这样的Calculate函数作为CalculatedColumn: 计算(总和('销售表'[订购金额]),日历[月] =日历[月])

当然不起作用。所以问题是,如何将CALCULATE函数中的过滤器设置为每行的@Month值?

感谢您的提前帮助

1 个答案:

答案 0 :(得分:1)

如果我理解了您的要求,我会提供一个计算每月服务水平度量的答案。但是,我不清楚您将如何根据月度值计算每月的平均服务水平,因为平均值将与每月的服务水平值相同,在您的示例中是月份的平均值{{1}将是1,对吗?

首先使用以下表达式在87.5表中创建一个名为SalesMonth的计算列:

SalesData
  

注意在创建上一个计算列之前,您必须创建一个关系(如果尚不存在)   在= RELATED ( 'Calendar'[Month] ) 表和SalesData表之间使用Day列   表。

现在为每月订购的总金额创建一个度量标准:

Calendar

必须为每月发送的总金额创建相同的衡量标准:

Ordered Monthly :=
  CALCULATE (
    SUM ( SalesData[Amount Ordered] ),
    FILTER (
       ALL ( SalesData ),
       COUNTROWS (
          FILTER ( SalesData, SalesData[SalesMonth] = EARLIER ( SalesData[SalesMonth] ) )
          )
      )

最后,您可以使用以下表达式创建Sent Monthly:= CALCULATE ( SUM ( SalesData[Amount Sent] ), FILTER ( ALL ( SalesData ), COUNTROWS ( FILTER ( SalesData, SalesData[SalesMonth] = EARLIER ( SalesData[SalesMonth] ) ) ) ) ) 度量:

Service Level per Month

这是已创建措施的一个示例:

enter image description here

注意从1到5的天数对应于第1个月,而34天和35天对应于第2个月。

如果有帮助,请告诉我。