Как я могу обобщить таблицу на основе последнего дня месяца

У меня есть входная таблица в PowerBI, например:

Дата идентификатор 17.10.2022 4343 18.10.202222 3169 23.11.2022 4681 23.12.2022 6542 16.12.2022 534324 30.01.2023 4343 18.01.2023 35325

Я хочу создать сводную таблицу, в которой просто сохраните строку для самой последней даты каждого месяца.

Значение вывода

Дата идентификатор 18.10.202222 3169 23.11.2022 4681 23.12.2022 6542 30.01.2023 4343
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
116
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Стартовая таблица:

Выделите столбец даты, а затем добавьте год и месяц на ленте.

Сгруппируйте следующим образом.

Объедините обратно в исходный код и разверните.

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"
  1. добавить два столбца в таблицу:

    Месяц = ​​месяц([Дата])

    Недавняя дата = maxx(фильтр('Таблица',[Месяц]=ранее('Таблица'[месяц])),'Таблица'[Дата])

  2. создать новую таблицу с формулой:

    Новая таблица = значения («таблица» [последняя дата])

3. установить связь между двумя таблицами (один к одному с обоими направлениями перекрестного фильтра):

  1. создать новый столбец в новой таблице:

    идентификатор = связанный («Таблица» [идентификатор])

И еще метод:

  • Добавьте столбец с датой окончания месяца
  • Добавьте столбец с разницей между указанной датой и концом месяца.
  • Сгруппируйте по концу месяца и выберите строку с минимальной разницей
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"

Другие вопросы по теме