2015-10-16 95 views
0

我在通过PowerPivot给出正确数字的计算函数时遇到问题。假设有以下信息。DAX计算多个标准问题

RepairsTable 

Repair ID Location Amount Date 
1 West 50 Aug 
2 East 60 Aug 
3 West 40 Sep 
4 East 30 Sep 
5 West 1000 Sep 

MilesTable 

Location Miles Date Total Amt Repairs 
West 100 Sep 
East 100 Aug 

在数表中的总金额是维修PowerPivot中的计算列,我想展示基于位置&从表修理修理日期的总金额$。

我已经使用以下公式:

=CALCULATE(SUM(RepairsTable[Amount]),FILTER(RepairsTable,RepairsTable[Date]=MilesTable[Date])) 

=CALCULATE(SUM(RepairsTable[Amount]),FILTER(RepairsTable,RepairsTable[Location]=MilesTable[Location])) 

除了:

=CALCULATE(SUM(RepairsTable[Amount]),FILTER(RepairsTable,RepairsTable[Date]=MilesTable[Date]&&RepairsTable[Location]=MilesTable[Location])) 

=CALCULATE(SUM(RepairsTable[Amount]),FILTER(RepairsTable,RepairsTable[Date]=MilesTable[Date]),FILTER(RepairsTable,RepairsTable[Location]=MilesTable[Location])) 

我不能为我的生活似乎拿出了Total Amt Repairs计算列中的正确值。我要寻找的值是:

1040 for West/Sep 
60 for East/Aug 

我能做到这一点就好了,在电子表格中的SUMIFS功能,但我不能让它在的PowerPivot工作。

回答

0

所以,这里要介绍几件事情。

  1. 如果问题在别处解决,为什么要更换工具?
  2. 为什么此聚合需要在计算列中?您在此查看的聚合类型通常是通过度量值在数据透视表中执行的,而不是在计算列中执行。
  3. 如果了解上述内容,您仍然相信在模型的计算列中执行此操作是正确的解决方案,那么您的第三和第四个度量都适用于我的样本数据,而表格之间没有关系,与每个表[位置]之间的关系或每个表[日期]之间的关系。

除此之外,你想要什么是最好的配方如下:

=CALCULATE(
    SUM(RepairsTable[Amount]) 
    ,RepairsTable[Date] = EARLIER(MilesTable[Date]) 
    ,RepairsTable[Location] = EARLIER(MilesTable[Location]) 
) 

我毫不犹豫地建议它,虽然,因为这等同于你的第4个定义有两个过滤器,只是更干净表达。

真实数据与本示例有什么不同?