номер недели в power bi
WEEKNUM
Возвращает номер недели для заданной даты в соответствии со значением return_type. Номер недели указывает, что неделя попадает в число в пределах года.
Для этой функции используются две системы:
Синтаксис
Параметры
Термин | Определение |
---|---|
дата | Дата в формате datetime. |
return_type | (Необязательно.) Число, определяющее, в какой день начинается неделя. Значение по умолчанию: 1. См. заметки. |
Возвращаемое значение
Примечания
По умолчанию функция WEEKNUM использует календарь, в котором неделя, содержащая 1 января, считается первой неделей года. Однако стандарт календаря ISO 8601, широко используемый в Европе, определяет первую неделю как содержащую большинство дней (четыре или более), которые выпадают в новый год. Это означает, что, если return_type представляет любое допустимое число больше 21, для года, в котором число дней в первой неделе января не превышает три дня, функция WEEKNUM возвращает номера недель, отличные от определения в стандарте ISO 8601.
Для return_type (кроме 21) следующие допустимые значения могут не поддерживаться некоторыми источниками данных DirectQuery:
return_type | Начало недели | Система |
---|---|---|
1 или не указано | Воскресенье | 1 |
2 | Понедельник | 1 |
11 | Понедельник | 1 |
12 | Вторник | 1 |
13 | Среда | 1 |
14 | Четверг | 1 |
15 | Пятница | 1 |
16 | Суббота | 1 |
17 | Воскресенье | 1 |
21 | Понедельник | 2 |
Пример 1
В приведенном ниже примере возвращается номер недели для 14 февраля 2010 г. В этом вычислении предполагается, что неделя начинается в понедельник.
Пример 2
В следующем примере возвращается номер недели для даты, хранящейся в столбце HireDate из таблицы Employees. В этом вычислении предполагается, что неделя начинается в воскресенье.
Применение автоматических даты и времени в Power BI Desktop
Эта статья предназначена для разработчиков моделей данных, создающих модели импорта или составные модели в Power BI Desktop. В ней рассказывается о параметре Автоматические дата и время.
Автоматические дата и время — это параметр загрузки данных в Power BI Desktop. Этот параметр предназначен для поддержки удобного создания отчетов логики операций со временем на основе столбцов дат, загруженных в модель. В частности, он позволяет авторам отчетов, использующим вашу модель данных, фильтровать, группировать и детализировать данные с помощью календарных периодов времени (годы, кварталы, месяцы и дни). При этом вам не нужно явно разрабатывать эти возможности логики операций со временем.
Если этот параметр включен, Power BI Desktop создает скрытую таблицу с автоматическими датой и временем для каждого столбца дат, для которых выполняются все следующие условия:
Принцип работы
Каждая таблица c автоматическими датой и временем на самом деле является вычисляемой таблицей, которая создает строки данных с помощью функции DAX CALENDAR. Каждая таблица также содержит шесть вычисляемых столбцов: День, №Месяца, Месяц, №Квартала, Квартал и Год.
Имена и значения столбцов переводятся и форматируются в Power BI в соответствии с языком модели. Например, если модель была создана на английском языке, названия месяцев и т. д. в ней в по-прежнему будут отображаться на английском языке даже при просмотре с помощью клиента для корейского языка.
В Power BI Desktop также создается связь между столбцом Дата в таблице с автоматическими датой и временем и столбцом дат модели.
Таблица с автоматическими датой и временем содержит полные календарные годы, включая все значения дат, хранящиеся в столбце дат модели. Например, если самое раннее значение в столбце дат равно 20 марта 2016 года, а последнее — 23 октября 2019 года, таблица будет содержать 1461 строку. Представляется одна строка для каждой даты за четыре календарных года с 2016 по 2019. Когда Power BI обновляет модель, также обновляются все таблицы с автоматическими датами и временем. Таким образом, модель всегда содержит даты, охватывающие значения столбцов дат.
Строки таблицы с автоматическими датой и временем (если бы их можно было увидеть) выглядели бы следующим образом.
Таблицы с автоматическими датой и временем всегда скрыты даже от разработчиков моделей. Они не отображаются в области Поля или в схеме представления модели, а их строки нельзя увидеть в представлении данных. Кроме того, выражения DAX не могут ссылаться на таблицу и ее столбец напрямую.
С ними также нельзя работать при использовании функции Анализ в Excel или подключении к модели с помощью конструкторов отчетов, отличных от Power BI.
Таблица также определяет иерархию, предоставляя визуальные элементы с детализацией по годам, кварталам, месяцам и дням.
Если бы на схеме представления модели можно было просмотреть таблицу с автоматическими датой и временем, то она выглядела бы следующим образом (связанные столбцы выделены).
Работа с автоматическими датой и временем
Если для столбца дат существует таблица с автоматическими датой и временем (и этот столбец видимый), авторы отчетов не смогут найти этот столбец как поле в области Поля. Вместо этого они видят развертываемый объект с именем столбца дат. Его можно легко найти, так как он оформлен со значком календаря. Когда авторы отчета развертывают объект календаря, они видят иерархию с именем Иерархия дат. После развертывания иерархии они видят четыре уровня: Год, Квартал, Месяц и День.
Иерархия, созданная на основе автоматических даты и времени, может использоваться для настройки визуального элемента точно так же, как и обычные иерархии. Визуальные элементы можно настроить с использованием всей иерархии Иерархия дат или конкретных уровней иерархии.
Но есть одна дополнительная возможность, которая не поддерживается обычными иерархиями. Когда иерархия с автоматическими датой и временем (или уровнем из иерархии) добавляется в контейнер визуального элемента, авторы отчета могут переключаться между использованием иерархии и столбца дат. Это разумный подход для некоторых визуальных элементов, если требуется только столбец дат, а не иерархия и ее уровни. Начните с настройки поля визуального элемента (щелкните правой кнопкой мыши поле или щелкните стрелку вниз), а затем используйте контекстное меню для переключения между иерархией и столбцом дат.
Кроме того, вычисления модели, написанные на языке DAX, могут ссылаться на столбец дат напрямую или на столбцы скрытой таблицы с автоматическими датой и временем косвенно.
Формула, записанная в Power BI Desktop, может ссылаться на столбец дат обычным способом. Однако на столбцы таблицы с автоматическими датой и временем необходимо ссылаться с помощью специального расширенного синтаксиса. Сначала вы ссылаетесь на столбец дат, а затем указываете точку (.). После этого автоматическое заполнение строки формул позволит выбрать столбец из таблицы с автоматическими датой и временем.
Вот допустимое выражение меры в Power BI Desktop:
Хотя это выражение меры допустимо в Power BI Desktop, это неправильный синтаксис для DAX. На внутреннем уровне Power BI Desktop транспонирует выражение для ссылки на истинный (скрытый) столбец таблицы с автоматическими датой и временем.
Настройка параметра автоматических даты и времени
Автоматические дату и время можно настроить глобально или для текущего файла. Глобальный параметр применяется к новым файлам Power BI Desktop, и его можно включить или отключить в любое время. В новой установке Power BI Desktop оба варианта включены по умолчанию.
Параметр для текущего файла также можно включить или отключить в любое время. Если этот режим включен, создаются таблицы с автоматическими датой и временем. Если этот режим отключен, из модели удаляются все таблицы с автоматическими датой и временем.
Будьте внимательны, когда отключаете параметр для текущего файла, так как это приведет к удалению таблиц с автоматическими датой и временем. Не забудьте исправить все неработающие фильтры отчетов или визуальные элементы, которые были настроены для их использования.
В Power BI Desktop выберите Файл > Параметры и настройки > Параметры, а затем перейдите на страницу Глобальная или Текущий файл. На этих страницах параметр находится в разделе Логика операций со временем.
Дальнейшие действия
Дополнительные сведения, связанные с темой этой статьи, см. в следующих ресурсах.
Календарь в Power Pivot
Сперва создаём таблицу выбирая дату начала и дату конца
calendar = CALENDAR («01.05.2021», «30.12.2021»)
Добавляем в Power Pivot с помощью языка DAX
Для года
Номер месяца
Месяц
МММ-ГГГ
Номер дня недели
День недели
Week number
YYYY-WW
Weeks
Day Of Week Number
week diff
Как настроить сортировку недель по порядку в Power BI
По умолчанию Power BI будет делать сортировку неправильно. Например вот так будут отображаться график по месяцам, хотя в данных используется январь из следующего года и он должен быть в конце
Такая же ситуация с неделями. Чтобы избежать этого, нужно выводить порядковые номера недель или месяцев, в зависимости от того, что будете сортировать.
Добавляем столбцы с номерами недель и недель с годами
Далее встаём на столбец с интервалами недель «Weeks» и применяем сортировку по столбцу «YYYY-WW»
После этого, выводя график в отчёте, нужно выбрать по чему будем сортировать.
После этого данные встанут в нужном порядке
Номер недели в power bi
Создание календаря при помощи DAX
Мы с хозяином собрались с силами, и решили написать свою 1-ю статью, посвященную созданию календаря. Несмотря на то, что не писал про это только ленивый, подобная вещь очень важна
Календарь в Power BI можно создать, по большому счету, 3-мя различными способами:
Загрузка из внешнего источника – это самый примитивный способ, проблема тут только в том, чтобы найти подходящий. Если упорства не хватило, то календарь можно самостоятельно сформировать в MS Excel.
Рвав-рвав, правильно гуглить – тоже труд, и лично мне без упорства никуда, знаете, сколько терпения нужно по кустам шариться?
Формирование при помощи Power Query – тут все зависит от собственных скилов, можно либо написать кучу строчек в расширенном редакторе, либо использовать встроенные конструкции меню “Transform” (“Преобразование”), которых может и не хватить.
Рвав-рвав, способ не совсем для тех, кто только “встал на лапки”, как я на заглавном фото, тут мне 2-х месяцев нет).
Формирование при помощи DAX – это тот самый способ, который мы планируем рассмотреть подробно, поскольку он наиболее часто используется в нашей работе. Скилы тут тоже нужны, без этого никуда, но затраты времени до получения конечного результата существенно меньше.
Построение календаря, основанного на DAX-формулах, состоит из следующих этапов:
Получение базового набора дат, то есть списка значений с датами.
Дополнительно можно добавить градацию по неделям (может пригодиться для создания платежного календаря), или дням недели (бывает нужно при логистике, посменной работе и пр.).
При получении основного набора дат желательно учесть следующие моменты:
При создании календаря правильно будет поместить его в отдельную таблицу, создание которой можно осуществить средствами Power BI при помощи кнопки “New Table” (“Создать таблицу”), расположенной на вкладке “Modeling” (“Моделирование”).
Если при создании календаря в Power BI уже были предварительно загружены какие-то данные, содержащие даты, то самое простое – это использовать функцию “CALENDARAUTO”, при этом список дат будет сгенерирован автоматически за весь период данных, созданная таблица будет иметь один столбец с типом “Date/Time” (“Дата/Время”), полученные значения по умолчанию будут иметь следующий вид: “01.01.2019 0:00:00”
Рвав-рвав, особенностью работы данной функции является то, что в случае наличия в данных пустых значений дат ваш календарь будет сформирован, как говорится, “от царя Гороха”, что, согласитесь, представляет некоторое неудобство.
Поэтому, при использовании функции “CALENDARAUTO” должна быть уверенность, что ваши данные корректны.
Синтаксис данной функции:
Тип данных, если время вам не нужно, лучше поменять на “Date” (“Дата”), созданный столбец по умолчанию будет иметь имя “Date” (“Дата”).
В тех случаях, когда предварительно загруженных данных, содержащих даты, нет, или если вам необходимо сформировать набор дат за неполный период времени, можно использовать функцию “CALENDAR”. Параметрами данной функции являются “start_date” и “end_date”, то есть начальная и конечная дата периода.
Однако использовать конструкцию “в лоб”, написав формулу Таблица = CALENDAR ( 01.01.2019, 31.12.2019 ) не получится, значения необходимо обработать дополнительно при помощи функции “DATE”.
Итоговая конструкция для получения списка дат по 2019-му году будет выглядеть следующим образом:
Как только расчеты произведены, необходимо установить нужный тип данных, а также, в целях дополнительного удобства, можно переименовать получившуюся таблицу с имененм “Таблица” – в “Календарь”, а ее единственный столбец “Date” – в “Дата”.
Для наполнения получившейся таблицы нужными временными разрезами существует несколько вариантов:
1-й способ – использование встроенной иерархии дат;
2-й способ – использование “выделенной” функции;
3-й способ – использование универсальной функции.
Дополнительные временные разрезы в таблицу “Календарь” можно добавить путем создания необходимого количества расчетных столбцов при помощи кнопки “New Column” (“Создать столбец”), расположенной на вкладке “Modeling” (“Моделирование”).
1-й способ – использование встроенной иерархии дат:
Формула для получения значения года выглядит следующим образом:
Формула для получения номера квартала:
Формула для получения названия квартала:
Формула для получения номера месяца:
Формула для получения названия месяца:
Рвав-рвав, как вы, наверно, уже поняли, подобным образом мы получили минимальный набор временных разрезов, о котором упоминалось выше. Лично я за этот способ агитирую всеми лапами, однако, указанный способ имеет как достоинства, так и недостатки. Пожалуй, нужно не забыть написать статейку по этому поводу.
2-й способ – использование “выделенной” функции:
Формула для получения года:
Формула для получения номера месяца:
Формула для получения номера недели в году (2-й параметр – это начало недели, так как в России неделя начинается с понедельника, то значение равно “2”):
Формула для получения номера дня в неделе (2-й параметр – это выбор номера дня и начала недели, так как в России 1-й день недели – понедельник, то значение равно “2”):
Рвав-рвав, выделенных функций довольно мало, поэтому, если 1-й метод не устраивает, нужно воспользоваться либо универсальной функцией расчета дополнительных значений (вариант №3), либо использовать какие-то другие способы.
Для получения номера квартала можно использовать следующую формулу:
Рвав-рвав, на момент написания статьи формула, указанная выше, была одним из «обходных» способов получения номера квартала, сейчас есть функция «QUARTER».
3-й способ – использование универсальной функции:
В качестве универсальной функции для формирования календаря можно воспользоваться функцией “FORMAT”. Ниже представлены несколько примеров ее использования, поскольку предопределенных и пользовательских форматов чисел, даты и времени великое множество.
Формула для получения года:
Формула для получения номера квартала:
Формула для получения номера месяца:
Формула для получения названия месяца:
Рвав-рвав, с календарем мы, наконец, закончили. Пойду игрушку распотрошу, чтоб хозяину веселее было!
Создание таблиц дат в Power BI Desktop
В этой статье описаны средства моделирования данных, работающие с Power BI Desktop. В ней описываются оптимальные методики разработки для создания таблиц дат в моделях данных.
Для работы с функциями логики операций со временем выражений анализа данных (DAX) необходимо соблюдать предварительное требование к модели: в модели должна иметься хотя бы одна таблица дат. Таблица дат — это таблица, которая соответствует следующим требованиям:
Для добавления таблицы дат в модель можно использовать любую из нескольких возможностей:
Таблица дат, возможно, является наиболее согласованной функцией, которая будет добавлена в любую из ваших моделей. Более того, в организации таблица дат должна быть определена согласованно. Поэтому мы рекомендуем создать шаблон Power BI Desktop, включающий в себя полностью настроенную таблицу дат. Поделитесь шаблоном со всеми разработчиками моделей в вашей организации. Таким образом, каждый раз, когда кто-то разрабатывает новую модель, он может начать с согласованно определенной таблицы дат.
Использование функции «Автоматические дата и время»
Функция Автоматические дата и время обеспечивает удобную, быструю и простую в использовании логику операций со временем. Авторы отчетов могут работать с логикой операций со временем при фильтрации, группировании и детализации в определенные календарные периоды.
При работе с календарными периодами, а также при наличии упрощенных требований к модели в отношении времени рекомендуется всегда включать параметр «Автоматические дата и время». Кроме того, использовать этот параметр удобно при создании специализированных моделей, а также при просмотре или профилировании данных. Однако при таком подходе не поддерживается разработка одной таблицы дат, которая может распространять фильтры на несколько таблиц. Дополнительные сведения см. на странице Автоматические дата и время в Power BI Desktop.
Подключение с помощью Power Query
Если источник данных уже содержит таблицу дат, рекомендуется использовать ее в качестве источника для таблицы дат модели. Обычно это необходимо при подключении к хранилищу данных, так как оно будет содержать таблицу измерения даты. Таким образом, ваша модель использует единый источник достоверной информации для времени в вашей организации.
Если вы разрабатываете модель DirectQuery, а источник данных не содержит таблицу дат, настоятельно рекомендуем добавить таблицу дат в источник данных. Она должна соответствовать всем требованиям к моделировании таблицы дат. Затем можно использовать Power Query для подключения к таблице дат. Таким образом, в вычислениях модели могут использоваться возможности логики операций со временем DAX.
Создание таблицы дат с помощью Power Query
Таблицу дат можно создать с помощью Power Query. Дополнительные сведения см. в записи блога Криса Уэбба (Chris Webb) Generating A Date Dimension Table In Power Query (Создание размерной таблицы дат в Power Query).
Если у вас нет определения хранилища данных или другого согласованного определения времени в вашей организации, рекомендуем использовать Power Query для публикации потока данных. Затем подключите всех разработчиков моделей данных к потоку данных, чтобы добавить таблицы дат в модели. Поток данных станет единым источником достоверной информации для времени в вашей организации.
Если необходимо создать таблицу дат, рекомендуется сделать это с помощью DAX. Это может быть проще для вас. Более того, это будет удобней, так как DAX включает некоторые встроенные средства аналитики для упрощения создания таблиц дат и управления ими.
Создание таблицы дат с помощью DAX
Таблицу дат в модели можно сгенерировать, создав вычисляемую таблицу с помощью функций DAX CALENDAR или CALENDARAUTO. Каждая функция возвращает таблицу дат с одним столбцом. Затем вычисляемую таблицу можно расширить с помощью вычисляемых столбцов, чтобы обеспечить поддержку требований к фильтрации и группированию по интервалу дат.
Клонирование с помощью DAX
Если в модели уже есть таблица дат и требуется дополнительная таблица, ее можно легко клонировать. Это необходимо в том случае, когда дата представляет собой ролевое измерение. Вы можете клонировать таблицу, создав вычисляемую таблицу. Выражение вычисляемой таблицы — это просто имя имеющейся таблицы дат.
Дальнейшие действия
Дополнительные сведения, связанные с темой этой статьи, см. в следующих ресурсах.