У меня есть входная таблица в PowerBI, например:
Я хочу создать сводную таблицу, в которой просто сохраните строку для самой последней даты каждого месяца.
Значение вывода
Стартовая таблица:
Выделите столбец даты, а затем добавьте год и месяц на ленте.
Сгруппируйте следующим образом.
Объедините обратно в исходный код и разверните.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("Vc3BDYAwDEPRXXKulMZOSpml6v5rQBWK4Ppk+Y8hVtUORQWkiNMps6T2rbR2ppqC77Z1S8VHWzi2Wtsa9y88XVkX85d7agsZRMicFw= = ", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date = _t, id = _t]),
#"Changed Type with Locale" = Table.TransformColumnTypes(Source, {{"Date", type date}}, "en-US"),
#"Inserted Year" = Table.AddColumn(#"Changed Type with Locale", "Year", each Date.Year([Date]), Int64.Type),
#"Inserted Month" = Table.AddColumn(#"Inserted Year", "Month", each Date.Month([Date]), Int64.Type),
#"Grouped Rows" = Table.Group(#"Inserted Month", {"Year", "Month"}, {{"Date", each List.Max([Date]), type nullable date}}),
#"Removed Columns" = Table.RemoveColumns(#"Grouped Rows",{"Year", "Month"}),
#"Merged Queries" = Table.NestedJoin(#"Removed Columns", {"Date"}, #"Changed Type with Locale", {"Date"}, "Removed Columns", JoinKind.LeftOuter),
#"Expanded Removed Columns" = Table.ExpandTableColumn(#"Merged Queries", "Removed Columns", {"id"}, {"id"})
in
#"Expanded Removed Columns"
добавить два столбца в таблицу:
Месяц = месяц([Дата])
Недавняя дата = maxx(фильтр('Таблица',[Месяц]=ранее('Таблица'[месяц])),'Таблица'[Дата])
создать новую таблицу с формулой:
Новая таблица = значения («таблица» [последняя дата])
3. установить связь между двумя таблицами (один к одному с обоими направлениями перекрестного фильтра):
создать новый столбец в новой таблице:
идентификатор = связанный («Таблица» [идентификатор])
И еще метод:
let
//change next line to reflect actual data source
Source = Excel.CurrentWorkbook(){[Name = "Table3"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"id", Int64.Type}}),
//add columns with End of Month Date and
// Days until end of Month
#"Add End Of Month" = Table.AddColumn(#"Changed Type", "EOM", each Date.EndOfMonth([Date]), type date),
#"Added Custom" = Table.AddColumn(#"Add End Of Month", "Days to EOM", each Duration.Days([EOM]-[Date])),
//Group by EOM and select by minimum Days to EOM
#"Grouped Rows" = Table.Group(#"Added Custom", {"EOM"}, {
{"Date", (t)=> Table.SelectRows(t, each [Days to EOM]= List.Min(t[Days to EOM])),
type table[Date=date, id=Int64.Type]}
}),
//Remove unneeded columns and expand the tables
#"Removed Columns" = Table.RemoveColumns(#"Grouped Rows",{"EOM"}),
#"Expanded Date" = Table.ExpandTableColumn(#"Removed Columns", "Date", {"Date", "id"})
in
#"Expanded Date"