计算与PowerPivot中的条件匹配的另一个表中的记录

时间:2014-10-02 23:33:48

标签: excel-2010 powerpivot

我有两张桌子:

  1. RefundData:包含退款详情(相关列名:RefundAmount
  2. Buckets:3列:BucketLowBucketHighCountOfRecords
  3. 退款金额介于0.01美元至25,000.00美元之间。

    我试图计算RefundData表格中退款金额,该金额属于Buckets表格中每个Bucket级别。

    一些示例数据:

    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出现的&gt; = BucketLow' AND < BucketHigh`

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

    PowerPivot给了我以下错误:

    无法在此表达式中找到或未使用列BucketLow

    我错过了什么?

    我觉得我非常接近但却错过了一些简单的事情。

1 个答案:

答案 0 :(得分:1)

我明白了。轻微的语法问题。 PowerPivot中的CALCULATE函数至少需要1个参数

  1. 表达式(必填)
  2. [Filter1](可选)
  3. [Filter2](可选)
  4. 等...
  5. 我原本以为我只能将过滤器要求放在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])
              )