解決方案是將原始數據與自身結合,使用最小聚合來計算最早日期。
在查詢這個出發數據稱爲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"
如果你想保留原始的每一行,你需要加入它反對原來的桌子。如果您只希望每個日期的最早行,那麼這是最好的。 –
謝謝,這個伎倆! –