我通过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中我不能让它工作。
那么,这里有几件事要介绍。
- 如果问题在其他地方解决了,为什么要更换工具?
- 为什么这个聚合需要在计算列中?这里看到的聚合类型通常是在数据透视表中按度量执行的,而不是在计算列中执行的。
- 如果,理解上述内容,您仍然相信在模型中的计算列中这样做是正确的解决方案,那么您的第3和第4项测量都适用于我的样本数据,表之间没有关系,每个表的[位置]之间有关系,或者每个表的[日期]之间有关系。
除此之外,你想要的最好的表述是:
=CALCULATE(
SUM(RepairsTable[Amount])
,RepairsTable[Date] = EARLIER(MilesTable[Date])
,RepairsTable[Location] = EARLIER(MilesTable[Location])
)
我不愿意建议,因为它与你的第四个定义相同,有两个过滤器,只是表达得更清晰。
你的真实数据与这个样本有什么不同?