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

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

6 min read Data Modeling Обновлено 03 Jan 2026
Таблица дат в Power BI — создание и советы
Таблица дат в Power BI — создание и советы

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

Что такое таблица дат и зачем она нужна?

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

Зачем нужна таблица дат в Power BI:

  • Для корректных вычислений временной аналитики (time intelligence).
  • Чтобы создавать и фильтровать даты в модели данных централизованно.
  • Для удобного построения визуализаций с иерархиями (год → квартал → месяц → день).
  • Чтобы гарантировать, что все даты стандартизированы и отсутствуют пропуски.
  • Для правильного построения отношений между таблицами (fact и dimension).

Важно: без корректной таблицы дат функции вроде TOTALYTD, SAMEPERIODLASTYEAR и других временных функций DAX могут давать неправильные результаты.

Требования к таблице дат

Ключевые требования при создании таблицы дат:

  • Первый столбец должен быть типа date/date-time и содержать только даты.
  • Значения дат должны быть уникальными и без пустых строк.
  • В таблице не должно быть пропусков: все даты в требуемом диапазоне должны присутствовать.
  • После создания таблицу нужно пометить как «Date Table» в Power BI.

Автоматическое создание через Auto Date/Time

Power BI может автоматически генерировать календарные иерархии на основе ваших полей дат.

Как включить Auto date/time:

  1. Перейдите в Файл > Параметры и настройки.
  2. Выберите Параметры > Текущий файл > Загрузка данных > Time Intelligence.
  3. Отметьте «Enable Auto date/time».

Иерархия будет включать Year, Quarter, Month и Day.

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

Настройка Power BI: включение Auto date/time

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

Power BI поддерживает функции CALENDAR и CALENDARAUTO. Разница — CALENDAR использует явно указанные границы, CALENDARAUTO пытается определить диапазон автоматически по данным модели.

Пример с CALENDAR (фиксированный диапазон):

  1. Перейдите на вкладку Главная.
  2. Нажмите Новая таблица.
  3. Введите DAX-формулу:
Date = CALENDAR(DATE(2022,1,1), DATE(2023,12,31))

Если нужно, чтобы диапазон расширялся автоматически до текущей даты, используйте TODAY():

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 (Sort By Column), чтобы месяцы отображались в правильном порядке.

Формула DAX: использование CALENDAR()

Сортировка по столбцу для месяцев в Power BI

Создание таблицы дат с CALENDAR() и TODAY()

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

Если вы знакомы с DAX, удобнее создавать таблицу через VAR + ADDCOLUMNS — это позволяет сгенерировать базовый диапазон и добавить вычисляемые столбцы в одном выражении.

Пример скрипта:

DateTable =   
VAR StartDate = DATE(2020, 1, 1) // You can set the start date according to your requirement  
VAR EndDate = DATE(YEAR(TODAY()), 12, 31) // Set end date to the end of the current year  
RETURN  
    ADDCOLUMNS (  
        CALENDAR (StartDate, EndDate),  
        "DayOfWeek", WEEKDAY([Date]),  
        "DayOfWeekName", FORMAT([Date], "dddd")  
    )  
  

Как использовать:

  1. Нажмите Новая таблица.
  2. Вставьте скрипт и при необходимости измените StartDate.

Этот шаблон легко расширять: добавляйте FiscalYear, IsHoliday (булев), WeekOfYear и другие вычисляемые поля в ADDCOLUMNS.

Скрипт DAX, создающий таблицу дат

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

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

Шаги:

  1. Правой кнопкой мыши на имени таблицы в панели Поля.
  2. Выберите Отметить как таблицу дат. Опция «Отметить как таблицу дат» в Power BI (панель полей)
  3. Или используйте соответствующую кнопку на ленте Power BI. Опция «Отметить как таблицу дат» в Power BI (лента)
  4. Укажите столбец с датой и подтвердите Ok.

Когда собственная таблица дат не нужна и когда Auto Date/Time пригодится

Контрпримеры / когда не нужно создавать таблицу дат вручную:

  • Небольшая однотабличная модель для быстрого ад-хок отчёта; Auto Date/Time ускоряет работу.
  • Если вы не используете сложные временные расчёты и производительность не критична.

Когда ручная таблица предпочтительнее:

  • Большие модели данных, где важна оптимизация памяти и контроля диапазона дат.
  • Нужен финансовый год (fiscal year), начиная с нестандартной даты.
  • Требуется учитывать праздники, скользящие окна и сложные бизнес-правила.

Альтернативные подходы

  • CALENDARAUTO([fiscal_year_end_month]) — автоматически определяет диапазон дат из модели.
  • Использование внешней таблицы календаря из CSV/SQL с уже подготовленными атрибутами (праздники, сезоны).
  • Комбинация: импортировать базовый календарь и дополнять DAX-вычислениями.

Мини-пошаговая методология (быстрый SOP)

  1. Определите диапазон дат (покройте все фактические значения из ваших таблиц фактов).
  2. Создайте таблицу через CALENDAR/CALENDARAUTO или импортируйте внешний календарь.
  3. Добавьте ключевые столбцы: Year, MonthNum, MonthName, Day, DayOfWeek, WeekOfYear, Quarter.
  4. Добавьте бизнес-столбцы: FiscalYear, IsHoliday, Season, IsBusinessDay.
  5. Отсортируйте текстовые категории по числовым столбцам (MonthName по MonthNum).
  6. Пометьте таблицу как Date Table и укажите столбец дат.
  7. Создайте отношения между датой в фактах и датой в календаре.
  8. Прогоните тесты приёмки (см. раздел Критерии приёмки).

Ролевые чек-листы

Для аналитика:

  • Убедиться в покрытии диапазона дат всей историей отчётов.
  • Проверить корректность сортировки месяцев.
  • Настроить расчёты year-to-date, period-over-period.

Для инженера данных:

  • Проверить уникальность и отсутствие NULL в столбце даты.
  • Оптимизировать формат данных (тип date вместо text).
  • Добавить индексацию/оптимизацию в источнике при импорте большого календаря.

Для владельца продукта/бизнеса:

  • Подтвердить требуемый формат финансового года.
  • Дать список требуемых бизнес-атрибутов (праздники, сезонность).

Критерии приёмки

  • Диапазон дат покрывает минимальную и максимальную дату фактов.
  • Нет пустых или дублируемых дат.
  • MonthName корректно отсортирован по MonthNum.
  • Таблица помечена как Date Table в Power BI.
  • Временные DAX-функции дают ожидаемые результаты (например, TOTALYTD).

Фактбокс: ключевые моменты

  • Обязательное поле: уникальная дата (одна запись = один день).
  • CALENDAR — явное задание диапазона; CALENDARAUTO — автоматическое определение.
  • Пометка «Mark as Date Table» обязательна для корректной работы time intelligence.

Примеры тестовых сценариев и приёмки

  • Создайте тестовый набор фактов, где минимальная дата = 2021-02-10 и максимальная = 2023-11-30. После создания календаря проверьте, что эти даты присутствуют.
  • Тест для сортировки месяцев: убедитесь, что январь идёт перед февралем даже при использовании текстовых названий.
  • Тест на годовую агрегацию: сравните сумму продаж за год, рассчитанную с помощью связи на таблицу дат, и суммой по исходным данным.

Глоссарий — 1 строкой

  • Таблица дат: справочная таблица с одной строкой на каждый календарный день.
  • Time intelligence: DAX-функции для расчётов по времени (YTD, MTD и др.).
  • CALENDAR/CALENDARAUTO: DAX-функции для генерации диапазона дат.

Риски и рекомендации по их уменьшению

  • Риск: пропуски в диапазоне дат → Рекомендация: всегда проверяйте min/max дат в фактах и включайте буфер по краям.
  • Риск: неправильная сортировка месяцев → Рекомендация: используйте числовой столбец MonthNum и Sort By Column.
  • Риск: дублирование календарей в модели → Рекомендация: одна централизованная таблица дат, используемая всеми фактами.

Резюме

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

Короткий чек-лист: покрытие диапазона → уникальные даты → дополнительные атрибуты → сортировка → пометка как Date Table → создание связей.

Важно: перед деплоем проверьте ключевые временные расчёты (YTD, QoQ, SamePeriodLastYear) на тестовых данных.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Обзор приложения NPR для iPhone
Медиа

Обзор приложения NPR для iPhone

Workflow: создать расширение iOS и автоматизировать задачи
iOS

Workflow: создать расширение iOS и автоматизировать задачи

Как пожаловаться на пользователя в Discord
Безопасность

Как пожаловаться на пользователя в Discord

Technology Previews в Lightroom Mobile — как включить
Фотография

Technology Previews в Lightroom Mobile — как включить

Спортивные обновления через Amazon Alexa
Спорт

Спортивные обновления через Amazon Alexa

Edge не скачивает файлы — как исправить
Браузеры

Edge не скачивает файлы — как исправить