PowerQuery COUNTIF以前的日期

时间:2018-07-12 11:34:18

标签: excel aggregate powerquery excel-2016 m

我对PowerQuery有点生锈。
我需要在同一张表中计算“上一个”条目。

例如,假设我们有一个汽车销售表。
出于PowerQuery的目的,该表将命名为tblCarSales

enter image description here

我需要添加两个聚合列。

第一个汇总列是以前的销售计数。
Excel公式为=COUNTIF([Sale Date],"<"&[@[Sale Date]])

enter image description here

第二个汇总列是 制造商 的先前销售额计数。
Excel公式为=COUNTIFS([Sale Date],"<"&[@[Sale Date]],[Make],[@Make])

enter image description here

如何在PowerQuery中而不是使用Excel公式来实现此行为?
例如,我从源代码语句开始:

let
    Source = Excel.CurrentWorkbook(){[Name="tblCarSales"]}[Content]
in
    Source

...,其中源表仅提供MakeModelSale Date列。

1 个答案:

答案 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