在 power pivot 或 power query 中创建摘要 table

create a summary table in power pivot or power query

系统:Excel2013

已创建一个包含多个列的主文件,包括 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 创建如下所示的摘要table?

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 table(带有日期和计数)和一个单独的 table 创建了这个 table,所有日期都为 运行 从两个 powerpivot table 中查找。有更好的方法吗?

这里有另一种方法来转换您的 table

重点是——用calculatable记录在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

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

如果您使用的是 2016+(据我所知,此功能应该出现在 Excel 的 GA 版本中)或 Power BI Desktop 应用程序,那么您可以创建计算 tables 在您的模型中使用 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]
)

最后,我想知道为什么这需要在您的模型中作为 table 存在,因为它似乎是一种报告需求,通常在 Power Pivot 模型中,您会在一个枢轴 table,不是PP模型。如果这是您实际需要的用例,那么我上面写的措施也适用于此。