Индекс Power BI, ранжированный по периоду в Запросе питания — для создания идентификатора периода

#powerbi #powerquery

Вопрос:

У меня есть специальная таблица дат.

Мне требуется создать идентификатор периода для каждого периода.

Создание индекса не решает проблему, так как он не ранжирует числа по периоду.

Чтобы дать вам пример моих данных и каковы мои ожидаемые результаты, смотрите здесь

Ниже приведены примерные данные:

 id          MonthInYear
----------- -----------
1           20180100
2           20180100
3           20180100
4           20180100
5           20180100
6           20180200
7           20180200
8           20180200
9           20180200
10          20180200
11          20180200
12          20180200
13          20180200
14          20180300
15          20180300
16          20180300
17          20180300
18          20180300
19          20180300
20          20180300
21          20180300
22          20180300
23          20180300
 

Скриншот моих требуемых результатов:

ожидаемый результат

Как мне создать идентификатор ранжированного периода в соответствии с ожидаемыми результатами, указанными выше в Power Query?

Ответ №1:

Пусть ваше имя таблицы-base_table, а теперь создайте новую таблицу base_table_date_id, используя приведенный ниже код-

 let
    Source = base_table,
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"id", Int64.Type}, {"MonthInYear", Int64.Type}}),
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"id"}),
    #"Removed Duplicates" = Table.Distinct(#"Removed Columns"),
    #"Sorted Rows" = Table.Sort(#"Removed Duplicates",{{"MonthInYear", Order.Ascending}}),
    #"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 1, 1, Int64.Type)
in
    #"Added Index"
 

Наконец, объедините обе таблицы base_table и base_table_date_id в новую таблицу, используя столбец MonthInYear. Новый код таблицы будет выглядеть следующим образом-

 let
    Source = Table.NestedJoin(base_table, {"MonthInYear"}, base_table_date_id, {"MonthInYear"}, "base_table_date_id", JoinKind.LeftOuter),
    #"Expanded base_table_date_id" = Table.ExpandTableColumn(Source, "base_table_date_id", {"Index"}, {"base_table_date_id.Index"})
in
    #"Expanded base_table_date_id"
 

Ее конечный результат-

введите описание изображения здесь