系统: Excel 2013
已使用多个列创建了一个主文件,其中包括一个ID列和两个日期列(创建日期和发布日期)。
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表(有日期和计数),还有一个单独的表,其中包含所有日期,以便从两个powerpivot表中运行查找。有更好的方法吗?
发布于 2015-11-06 03:07:16
下面是转换表的另一种方法
关键是在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
发布于 2015-11-06 06:46:02
如果您想要在Power模型中将其创建为一个表,那么Power Query是在2016年之前获得Power版本的方法,还有另一个答案可以说明这一点。
如果您正在使用2016+ (此功能应该出现在我听说的Excel的GA版本中)或Power桌面应用程序中,那么您可以使用DAX在您的模型中创建计算表:
假设FactTableCreateDate与DimDateDate之间存在积极关系,FactTableReleaseDate与DimDateDate之间假定为非活动关系。
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]
)
最后,我想知道为什么这需要作为一个表存在于您的模型中,因为它似乎是一种报告需求,而且通常在Pivot模型中,您会在一个枢轴表中,而不是在PP模型中这样做。如果这是您实际需要的用例,那么我上面所写的度量也将适用于此。
https://stackoverflow.com/questions/33556758
复制