Читаю книгу The Definitive Guide to DAX: Business intelligence with Microsoft Excel, SQL Server Analysis Services, and Power BI (Business Skills) и в главе про работу с Custom Calendar наткнулся на описание реализации недельного календаря — чтобы на графиках и в таблицах выводить данные по неделям. Только недели получаются в таком формате:
На мой взгляд это совершенно неудобно. Привычно видеть сразу о каких дата идет речь, например так:
Поделюсь как это сделать.
В Power Query есть функции Date.StartOfWeek и Date.EndOfWeek. С помощью которых получаем столбцы с датой начала и конца недели.
#"Inserted Start of Week" = Table.AddColumn(#"Inserted Week of Month", "StartOfWeek", each Date.StartOfWeek([Дата],1), type date),
#"Inserted End of Week" = Table.AddColumn(#"Inserted Start of Week", "EndOfWeek", each Date.EndOfWeek([Дата],1), type date),
Далее объединяем эти столбцы.
Но по умолчанию недели будут сортироваться в алфавитном порядке
Чтобы это исправить — нам нужно создать столбец индекс недели в формате “2017-52” по которому они должны сортироваться.
Для этого с помощью функции Date.Year создаем столбец с годом, с помощью функции Date.WeekOfYear столбец с номером недели и объединяем их.
Затем указываем, что наш столбец неделя нужно сортировать по этому значению. Полный код для вставки в Power Query можно взять с гитхаба
Спасибо, что поделились своим решением, оно действительно удобнее 🙂