2013-08-16 55 views
2

我对DAX和PowerPivots非常陌生。我正在使用PowerPivot从SQL服务器提取数据。我正在使用的数据非常庞大而且非常复杂,但我正在考虑针对此问题的简化版本。DAX跨2组总计(或计数)

比方说,我有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 

任何帮助,将不胜感激。

编辑:还有一件事,数据不一定按日期排序。我可能会按日期排序,但这需要修改其他一些内容,所以如果可能的话,我的偏好不会这么做。在我继承的工作表中有很多其他公式,重新排序可能会导致其他问题。

回答

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

+0

我贴给你一个答案,但我通过你对订购数据分解公式在表评论感到困惑。在你的文章开头,你说过你正在将数据从SQL Server导入PowerPivot。我不确定你提到的公式是什么。另外,如果您正在使用计算的度量并且具有适当的日期维度,则不必为了使其工作而订购数据。 – mmarie

+0

谢谢mmarie。我对DimDate的概念感到困惑。这是我需要创建的新表吗? 至于公式,它们是DAX公式/列,由我之前在其上工作的人添加到工作簿中。我还是新来的,所以我可能没有太大意义。我道歉。 – Predator

+0

是的,你需要一个日期维度来使它工作。您可以从Windows Azure Data Market免费下载:https://datamarket.azure.com/dataset/1542c52d-d466-4094-a801-9ef8fd7c6485打开PowerPivot,获取外部数据,从数据服务,Windows Azure Marketplace。搜索DateStream。您需要选中/取消选中底部的框来选择您想要的日历。 – mmarie