在power pivot或power query

时间:2015-11-05 23:27:00

标签: powerpivot powerquery

系统:Excel 2013

已创建包含多个列的主文件,包括1个ID列和2个日期列(创建日期和发布日期)。

ID      CreateDate  Release Date
124520  04/09/2015  05/09/2015
228551  05/09/2015  07/09/2015
228552  06/09/2015  08/09/2015

如何使用PowerPivot或PowerQuery创建如下所示的汇总表?

Date        NumOfIDsCreated     NumOfIDsReleased
04/09/2015  1                   0
05/09/2015  1                   1
06/09/2015  1                   0
07/09/2015  0                   1
08/09/2015  0                   1

目前,我在Excel中创建了这个表,其中包含两个powerpivot表(包含日期和计数)和一个包含所有Dates的单独表,以便从两个powerpivot表中运行查找。有没有更好的方法呢?

2 个答案:

答案 0 :(得分:0)

以下是转换表

的另一种方法

关键点是 - 在 group_by_date 中使用可计算记录。

let
    src = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    change_types = Table.TransformColumnTypes(src,{{"CreateDate", type date}, {"ReleaseDate", type date}}),
    unpivot = Table.UnpivotOtherColumns(change_types, {"ID"}, "attr", "value"),
    group_by_date = Table.Group(unpivot, {"value"}, {{"rec", each 
    [
        NumOfIDsCreated=List.Count(List.Select([attr], each _="CreateDate")),
        NumOfIDsReleased=List.Count(List.Select([attr], each _="ReleaseDate"))
    ]}}),
    expand = Table.ExpandRecordColumn(group_by_date, "rec", {"NumOfIDsCreated", "NumOfIDsReleased"}, {"NumOfIDsCreated", "NumOfIDsReleased"}),
    sort = Table.Sort(expand,{{"value", Order.Ascending}})
in
    sort

答案 1 :(得分:0)

如果您想在Power Pivot模型中将其创建为表格,那么Power Query是2016年之前版本Power Pivot的方式,还有另一个答案显示。

如果您使用2016+(此功能应出现在我听过的GA版本的Excel中)或Power BI Desktop应用程序,那么您可以使用DAX在模型中创建计算表格:

假设FactTable [CreateDate]和DimDate [Date]之间存在活动关系,并且FactTable [ReleaseDate]和DimDate [Date]之间存在非活动关系。

CreateDateCount:= // Note this is a measure
COUNTROWS(FactTable)

ReleaseDateCount:= // also a measure
CALCULATE(
    COUNTROWS(FactTable)
    ,USERELATIONSHIP(FactTable[ReleaseDate], DimDate[Date])
)

SummarizedFact= // note this is a calculated table
FILTER(
    ADDCOLUMNS(
        DimDate
        ,"IDsCreated"
        ,[CreateDateCount]
        ,"IDsReleased"
        ,[ReleaseDateCount]
    )
    ,[IDsCreated] || [IDsReleased]
)

最后,我想知道为什么这需要作为模型中的表格存在,因为它似乎是一种报表需求,并且通常在Power Pivot模型中,您可以在数据透视表中执行此操作,而不是在PP模型。如果这是您实际需要的用例,那么我上面提到的措施也适用于此。