解决方案是将原始数据与自身结合,使用最小聚合来计算最早日期。
在查询这个出发数据称为Query1
:
ID,Date
501,01/01/2017
203,08/06/2015
304,01/04/2014
501,01/01/2016
201,01/02/2015
501,01/08/2015
加入与数据:合并>合并查询(又名“加入”)>合并查询,新建(以避免修改查询1)
选择每次Query1
ID列,并保留默认的左外种联接:
接下来,选择Transform> Structured Column> Aggregate,然后选择“Count of Date”(如果UI提示最小聚合会更好,但我们可以通过直接触摸代码来修复)。
接下来,打开公式栏(视图>布局>公式栏)并编辑公式以将List.Count
替换为List.Min
。重新命名新的列,你就完成了!
我全 “M” 的公式:
查询1:
let
Source = Table.PromoteHeaders(Csv.Document("ID,Date
501,01/01/2017
203,08/06/2015
304,01/04/2014
501,01/01/2016
201,01/02/2015
501,01/08/2015"))
in
Source
Merge1:
let
Source = Table.NestedJoin(Query1,{"ID"},Query1,{"ID"},"NewColumn",JoinKind.LeftOuter),
#"Aggregated NewColumn" = Table.AggregateTableColumn(Source, "NewColumn", {{"Date", List.Min, "Earliest Date"}})
in
#"Aggregated NewColumn"
如果你想保留原始的每一行,你需要加入它反对原来的桌子。如果您只希望每个日期的最早行,那么这是最好的。 –
谢谢,这个伎俩! –