代码之家  ›  专栏  ›  技术社区  ›  Giffyguy

powerquery countif以前的日期

  •  0
  • Giffyguy  · 技术社区  · 6 年前

    我对powerquery有点生疏。
    我需要计算同一个表中的“previous”项。

    例如,假设我们有一张汽车销售表。
    出于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
    

    …其中源表只提供 Make 我是说, Model Sale Date 柱。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Alexis Olson    6 年前

    您可以使用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 是的。