我对PowerQuery有点生锈。
我需要在同一张表中计算“上一个”条目。
例如,假设我们有一个汽车销售表。
出于PowerQuery的目的,该表将命名为tblCarSales
我需要添加两个聚合列。
第一个汇总列是以前的销售计数。
Excel公式为=COUNTIF([Sale Date],"<"&[@[Sale Date]])
第二个汇总列是 制造商 的先前销售额计数。
Excel公式为=COUNTIFS([Sale Date],"<"&[@[Sale Date]],[Make],[@Make])
如何在PowerQuery中而不是使用Excel公式来实现此行为?
例如,我从源代码语句开始:
let
Source = Excel.CurrentWorkbook(){[Name="tblCarSales"]}[Content]
in
Source
...,其中源表仅提供Make
,Model
和Sale Date
列。
答案 0 :(得分:1)
您可以使用List和Table函数来执行此类操作。我会同时显示。
let
Source = Excel.CurrentWorkbook(){[Name="tblCarSales"]}[Content],
#"Added Custom" = Table.AddColumn(Source, "Previous Sale Count",
(C) => List.Count(List.Select(Source[Sale Date],
each _ < C[Sale Date]))),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Previous Sale Count By Make",
(C) => Table.RowCount(Table.SelectRows(Source,
(S) => S[Sale Date] < C[Sale Date] and S[Make] = C[Make])))
in
#"Added Custom1"
我们必须使用这些函数,以便Power Query知道我们正在查看哪些上下文。要进一步阅读,请查看此Power Query M Primer。