Гид по технологиям

Как создать таблицу дат в Power BI

6 min read Power BI Обновлено 04 Dec 2025
Создать таблицу дат в Power BI
Создать таблицу дат в Power BI

Календарь рядом со смартфоном на столе

Почему таблица дат важна

Таблица дат (или календарная таблица) — это измерительная таблица, где каждая строка соответствует отдельной дате. Она содержит атрибуты: год, квартал, месяц, день недели и т.д. Правильно организованная таблица дат обеспечивает:

  • Корректную работу функций временной аналитики (time intelligence).
  • Единый источник дат для фильтрации и связывания таблиц модели данных.
  • Возможность строить надежные и сравнимые отчёты (например, сравнение периодов Year-over-Year).
  • Стандартизацию форматов и отсутствие «дыр» в календарном диапазоне.

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

Очки поверх календаря

Ключевые требования к таблице дат

  • Первая колонка (основная дата) должна иметь тип date/dateTime.
  • Значения в столбце дат должны быть уникальны и не содержать пустых значений.
  • Диапазон дат должен покрывать все анализируемые периоды (от самой ранней до самой поздней даты в ваших таблицах фактов).
  • Отметьте таблицу как таблицу дат в Power BI (см. раздел маркировки ниже).

Варианты создания таблицы дат — обзор

  1. Auto date/time — автоматическая генерация Power BI (быстро, но с ограничениями).
  2. CALENDARAUTO() — автоопределяет диапазон по данным модели.
  3. CALENDAR(start, end) — полный контроль над диапазоном.
  4. Продвинутые скрипты DAX с ADDCOLUMNS/VAR для создания множества предрасчитанных атрибутов.

Выбор зависит от требований: если вам нужно быстро — Auto date; если нужна воспроизводимость и контроль — собственный DAX.

Включение Auto Date/Time (быстрое решение)

Auto Date/Time автоматически создаёт скрытые таблицы и иерархии для каждой колонки даты в модели. Это удобно при простом анализе, но не всегда подходит для сложных моделей и унификации дат.

Шаги:

  1. Откройте Power BI Desktop.
  2. Перейдите в ленту «Файл» > «Параметры и настройки» > «Параметры».
  3. В разделе «Текущий файл» выберите «Загрузка данных» > блок «Интеллект времени».
  4. Установите флажок «Включить Auto date/time».

Иерархия будет включать Год, Квартал, Месяц и День.

Настройка Power BI для активации авто-датирования

Примечание: Auto date удобно для быстрого анализа, но скрытые таблицы сложно контролировать и кастомизировать (например, добавить фискальные периоды).

Создание таблицы дат с помощью DAX — базовый подход

CALENDAR и CALENDARAUTO — две основные функции:

  • CALENDAR(startDate, endDate) — вы задаёте диапазон явно.
  • CALENDARAUTO([fiscal_year_end_month]) — сканирует модель и берёт минимальную и максимальную даты.

Пример: создать таблицу дат от 01.01.2022 до 31.12.2023

Date = CALENDAR(DATE(2022,1,1), DATE(2023,12,31))

Если хотите, чтобы дата автоматически расширялась до текущего дня:

Date = CALENDAR(DATE(2022,1,1), TODAY())

Добавление простых колонок (год, месяц, сокращённое название месяца, день):

Year = YEAR('Date'[Date])
Month = MONTH('Date'[Date])
Month Cat = FORMAT('Date'[Date], "MMM")
Day = DAY('Date'[Date])
Week = "Week " & WEEKNUM('Date'[Date])
Qtr = "Qtr " & QUARTER('Date'[Date])

После создания колонки с категорией месяца (Month Cat) не забудьте отсортировать её по числовому столбцу Month: в режиме моделирования выберите «Сортировать по столбцу» -> Month.

Показано, как сортировать месяц с помощью опции «Сортировать по столбцу».

Продвинутый шаблон даты на DAX (рекомендованный для производственных моделей)

Если вы хотите получать готовую таблицу с набором полезных полей сразу, используйте шаблон с VAR и ADDCOLUMNS. Пример упрощенного варианта:

DateTable =
VAR StartDate = DATE(2020, 1, 1) // Укажите дату начала
VAR EndDate = DATE(YEAR(TODAY()), 12, 31) // Конец — конец текущего года
RETURN
    ADDCOLUMNS(
        CALENDAR(StartDate, EndDate),
        "DayOfWeek", WEEKDAY([Date]),
        "DayOfWeekName", FORMAT([Date], "dddd"),
        "Year", YEAR([Date]),
        "Month", MONTH([Date]),
        "MonthName", FORMAT([Date], "MMMM"),
        "Quarter", QUARTER([Date])
    )

Этот скрипт создаёт таблицу с полями для дня недели, имени дня, года, месяца и квартала. Его легко расширить фискальными атрибутами, маркерами рабочих дней и т.д.

Скрипт DAX для создания таблицы дат

Советы при расширении шаблона:

  • Добавьте столбец IsBusinessDay по календарю выходных и праздничных дней вашей юрисдикции.
  • Добавьте флаг FiscalYear/FiscalMonth, если отчётность идёт по финансовому году.
  • Создайте колонку MonthSort = Year*100 + Month для корректной сортировки перекрывающихся годов.

Как отметить таблицу как таблицу дат

После создания таблицы важно пометить её в Power BI, чтобы встроенные функции временной аналитики использовали именно её.

Шаги:

  1. В режиме «Отображение модели» (Model) найдите созданную таблицу в панели полей.
  2. Кликните правой кнопкой по имени таблицы и выберите «Отметить как таблицу дат».
  3. В открывшемся окне выберите колонку, содержащую дату (Date) и нажмите OK.

Также эту опцию можно найти в ленте Power BI в разделе таблицы при выделенной таблице.

Показано, как использовать опцию «Отметить как таблицу дат» в Power BI

Показано, где найти и как использовать опцию «Отметить как таблицу дат» на ленте Power BI

Частые сценарии и рекомендации

  • Если в данных отсутствуют даты для некоторых периодов (напр., пропущенные дни), добавьте их в таблицу дат — иначе агрегации по времени будут некорректны.
  • Для сравнения по годам используйте функции SAMEPERIODLASTYEAR, DATEADD, PARALLELPERIOD, если таблица дат корректно помечена.
  • Для больших моделей предпочитайте собственную таблицу дат, а не Auto date/time — она даёт контроль над производительностью и видимостью полей.

Рекомендации по производительности

  • Используйте целевой диапазон дат: не создавайте миллионы строк «на всякий случай» без нужды.
  • Если модель работает с большими объёмами данных, сохраняйте минимально необходимый диапазон и обновляйте его при подготовке данных.
  • Предрасчитайте необходимые текстовые представления (например, MonthName) в самой таблице дат, чтобы не рассчитывать их в визуализациях.

Чек-листы по ролям

Чек-лист для аналитика данных:

  • Убедиться, что диапазон таблицы дат покрывает все даты из фактов.
  • Проверить уникальность и отсутствие пустых дат.
  • Проверить порядок сортировки месяца (Sort By Column).
  • Проверить метку «Отметить как таблицу дат».

Чек-лист для BI-разработчика:

  • Добавить флаги: рабочий день, праздничный день, фискальный период.
  • Оптимизировать размер таблицы (диапазон дат).
  • Документировать принятую логику SortBy, Fiscal Year и правила округления.

Чек-лист для менеджера отчётности:

  • Подтвердить требования к фискальным периодам и региональным праздникам.
  • Убедиться в наличии контрольных точек при обновлении диапазона дат.

Мини-методология: от требования к внедрению

  1. Сбор требований: период охвата, фискальные правила, рабочие/праздничные дни.
  2. Выбор подхода: Auto date (быстро) или DAX (контроль).
  3. Создание таблицы и предрасчёт атрибутов.
  4. Маркировка как таблица дат.
  5. Тестирование: SAMEPERIODLASTYEAR, сравнение числа дней в периодах.
  6. Документирование и автоматизация обновления.

Отладка и распространённые ошибки

  • Неверная сортировка месяцев: решается через Sort By Column по числовому столбцу месяца.
  • Пропуски в датах: добавить недостающие даты в таблицу дат.
  • Дублирование дат: проверить генерацию CALENDAR/ADDCOLUMNS — должна быть уникальность.
  • Auto date мешает — отключите его, если используете собственную таблицу.

Когда авто-решение не подходит (контрпримеры)

  • Нужны фискальные годы, не совпадающие с календарными — Auto date не даст правильного фискального разбиения.
  • Нужны нестандартные группы (например, 4-4-5 финансовые периоды) — требуется кастомная таблица.
  • Региональные праздничные дни и рабочие смены — нуждаются в дополнительной логике и справочниках.

Краткий словарь (1 строка)

  • CALENDAR: функция DAX, создаёт последовательность дат между двумя крайними датами.
  • CALENDARAUTO: функция DAX, определяется автоматически по данным модели.
  • ADDCOLUMNS: добавляет вычисляемые колонки в таблицу внутри DAX.
  • Mark as date table / Отметить как таблицу дат: назначает таблицу источником дат для временной аналитики.

Decision tree: Как выбрать подход (Mermaid)

flowchart TD
    A[Нужна ли быстрая временная фильтрация?] -->|Да| B{Требуются кастомные периоды?}
    A -->|Нет — нужна строгая модель| C[Создать таблицу DAX]
    B -->|Нет| D[Включить Auto date/time]
    B -->|Да| C
    C --> E[Использовать CALENDAR / ADDCOLUMNS]
    D --> F[Проверить скрытые таблицы и ограничения]
    E --> G[Отметить как таблицу дат и протестировать]
    F --> G

Шаблон проверки качества (test cases)

  • Проверить, что COUNTROWS(ALL(‘Date’)) = последняядата - перваядата + 1.
  • Проверить, что нет NULL в колонке Date.
  • Для каждого месяца проверить, что сумма дней совпадает с ожидаемым количеством дней (28–31).
  • Проверить корректность YEAR-to-YEAR вычислений (SAMEPERIODLASTYEAR).

Короткое резюме

Таблица дат — фундамент для корректной временной аналитики в Power BI. Для простых задач можно использовать Auto date/time, но в большинстве производственных сценариев рекомендуется создавать собственную таблицу дат с DAX: это даёт контроль, расширяемость и повторяемость. После создания — обязательно пометить таблицу как таблицу дат и протестировать расчёты.

Ключевые шаги для внедрения: определить требования, выбрать метод (Auto vs DAX), создать таблицу, добавить необходимые столбцы, пометить как таблицу дат, протестировать.

Дополнительные ресурсы и дальнейшие шаги

  • Если вы новичок в DAX: изучите функции CALENDAR, CALENDARAUTO, FORMAT, WEEKNUM, QUARTER, ADDCOLUMNS.
  • Подумайте о добавлении справочника праздничных дней для вашей страны — это повысит точность бизнес-метрик.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как стать менеджером социальных сетей — обязанности и чек-листы
Маркетинг

Как стать менеджером социальных сетей — обязанности и чек-листы

Как подключить Beats к Mac — инструкция
Инструкции

Как подключить Beats к Mac — инструкция

Данные акций в Google Sheets — Smart Chip и GOOGLEFINANCE
Финансы

Данные акций в Google Sheets — Smart Chip и GOOGLEFINANCE

Как отправлять фото в HD в WhatsApp
Инструкции

Как отправлять фото в HD в WhatsApp

Отключить рекомендации «Для всех вас» — Apple TV
Инструкции

Отключить рекомендации «Для всех вас» — Apple TV

Obsidian: заметки в базу знаний
Productivity

Obsidian: заметки в базу знаний