DAX在两组中运行总计(或计数)

时间:2013-08-16 14:06:48

标签: powerpivot dax

我是DAX和PowerPivots的新手。我正在使用PowerPivot从SQL服务器提取数据。我正在使用的数据非常庞大和复杂,但我正在考虑这个问题的简化版本。

假设我有2列,其中一列包含产品名称,另一列包含产品销售日期。每次销售1件产品时,我都有一排。

Product | Date
Orange  | 08/13/2013
Orange  | 08/13/2013
Orange  | 08/13/2013
Apple   | 08/14/2013
Apple   | 08/16/2013
Orange  | 08/17/2013
Orange  | 08/17/2013

我想使用DAX获取迄今为止在整个数据集中销售了多少产品的运行计数。这就是我想要的结果。

Product | Date        | Cumulative Sales
Orange  | 08/13/2013  | 1
Orange  | 08/13/2013  | 2
Orange  | 08/13/2013  | 3
Apple   | 08/14/2013  | 1
Apple   | 08/16/2013  | 2
Orange  | 08/17/2013  | 4
Orange  | 08/17/2013  | 5

任何帮助都将不胜感激。

编辑:还有一件事,数据不一定按日期排序。我可能会按日期订购,但它需要修改其他一些东西,所以如果可能的话,我不会这么做。我继承的表格中有很多其他公式,重新排序可能会破坏别的东西。

1 个答案:

答案 0 :(得分:2)

您可以在PowerPivot中进行计算测量以处理此问题。如果您想获得所有时间的累计销售额,您可以这样做:

    CALCULATE(     SUM( FactSales[SalesAmount] ),
    FILTER(
        ALL( DimDate) ,
        DimDate[Datekey] <= MAX( DimDate[Datekey] )
    )
)

如果您希望能够选择特定时间段(例如:选定的周数或月数的运行总数),您可以这样做:

 CALCULATE( SUM( FactSales[SalesAmount])  ,
                 FILTER(
                    ALLSELECTED( DimDate),
                    DimDate[Datekey] <= MAX( DimDate[Datekey] )
                )
    )

来源:Javier Guillen's blog