DAX计算多重标准问题



我通过PowerPivot计算函数给我正确的数字有问题。假设以下信息:

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中我不能让它工作。

那么,这里有几件事要介绍。

  1. 如果问题在其他地方解决了,为什么要更换工具?
  2. 为什么这个聚合需要在计算列中?这里看到的聚合类型通常是在数据透视表中按度量执行的,而不是在计算列中执行的。
  3. 如果,理解上述内容,您仍然相信在模型中的计算列中这样做是正确的解决方案,那么您的第3和第4项测量都适用于我的样本数据,表之间没有关系,每个表的[位置]之间有关系,或者每个表的[日期]之间有关系。

除此之外,你想要的最好的表述是:

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

我不愿意建议,因为它与你的第四个定义相同,有两个过滤器,只是表达得更清晰。

你的真实数据与这个样本有什么不同?

最新更新