2014-10-02 56 views
0

标准,我已经有2个表:计数记录匹配的PowerPivot

  1. RefundData:包含退款的详细信息(有关列名:RefundAmount
  2. Buckets:3米栏:BucketLowBucketHighCountOfRecords

退款金额范围从$ 0.01到$ 25,000.00。

我试图计算Buckets表中每个桶级别内的RefundData表中的退款金额。

某些样本数据:

RefundAmount 
0.29 
81.75 
1000.25 
1500.74 
2154.55 
125.52 

BucketLow BucketHigh CountOfRecords 
0   1000   3 
1000   2000   2 
2000   3000   1 

我已经试过:

CountOfRecords字段我已经尝试添加下面的表达式来计算的RefundAmount的发生是> = BucketLow' AND < BucketHigh`

=calculate(count('RefundData'[RefundAmount]),'RefundData'[RefundAmount]>=[BucketLow],'RefundData'[RefundAmount]<[BucketHigh]) 

的PowerPivot是给我下面的错误:

BucketLow找不到或不能在此表达式中使用。

我错过了什么?

我觉得我真的很接近但缺少一些简单的东西。

回答

1

我想通了。小的语法问题。 PowerPivot中的CALCULATE函数采用至少1参数

  1. 表达式(必需)
  2. [过滤器1](可选)
  3. [过滤器2](可选)
  4. 等...

我原本以为我只能把我的过滤器要求放在CALCULATE这样的功能中:

'RefundData'[RefundAmount]>=[BucketLow] 

但代替滤波器参数需要封装到另一个功能:FILTER

所以不是这样的:

=CALCULATE(
      COUNT('RefundData'[RefundAmount]), 
      'RefundData'[RefundAmount]>=[BucketLow], 
      'RefundData'[RefundAmount]<[BucketHigh] 
     ) 

的公式应该是这样的:

=CALCULATE(
      COUNT('RefundData'[RefundAmount]), 
      FILTER('RefundData','RefundData'[RefundAmount]>=[BucketLow]), 
      FILTER('RefundData','RefundData'[RefundAmount]<[BucketHigh]) 
     )