По причинам, которые я до конца не понимаю (кажется, что-то связано со свертыванием запросов), Power Query Remove Duplicates
при запуске на определенных источниках данных, очевидно, не соответствует порядку сортировки. Но если вы используете Table.Buffer
, то это гарантирует, что свертывание не произойдет и что Remove Duplicates
произойдет после сортировки / фильтрации.
Не уверен, что будет быстрее на больших наборах данных - - Table.Buffer
против Table.Group
Файл CSV
Response-ID,Task-ID,Executed Action,Status,Date
1,A,Some Task to be done,Open,20.01.2020
2,A,Another Action done today,Open,25.01.2020
3,B,New Task,Open,25.01.2020
4,A,More actions in this matter,Done,26.01.2020
5,C,Another Task,Open,27.02.2020
6,B,Whatever,Done,29.02.2020
7,D,Now what?,Open,02.03.2020
8,C,Almost done...,Open,02.03.2020
Первые несколько строк MCode немного отличаются, но это должно дать вам суть:
let
Source = Csv.Document(File.Contents("C:\Users\ron\Desktop\test.csv"),[Delimiter=",", Columns=5, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Response-ID", Int64.Type}, {"Task-ID", type text}, {"Executed Action", type text}, {"Status", type text}, {"Date", type text}}),
#"Changed Type with Locale" = Table.TransformColumnTypes(#"Changed Type", {{"Date", type date}}, "en-150"),
#"Filtered Rows" = Table.SelectRows(#"Changed Type with Locale", each ([Status] = "Open")),
#"Sorted Rows" = Table.Sort(#"Filtered Rows",{{"Date", Order.Descending}}),
#"Buffered Table" = Table.Buffer(#"Sorted Rows"),
#"Removed Duplicates" = Table.Distinct(#"Buffered Table", {"Task-ID"}),
#"Sorted Rows1" = Table.Sort(#"Removed Duplicates",{{"Task-ID", Order.Ascending}})
in
#"Sorted Rows1"
Результаты