← Все курсы · Курс Power BI · Все руководства

DAX Временная аналитика: DATEADD, TOTALYTD и месяц, которого нет

Почему каждый расчет времени начинается с таблицы дат · Часть Analyst Prep Kit

К , аналитик данных · Опубликовано

К концу этой страницы вы сможете построить таблицу дат, соответствующую заявленным требованиям Майкрософт, написать работающие показатели текущего года и предыдущего периода, а также объяснить, почему отчет без таблицы дат сообщает о 6-процентном падении, которого никогда не было. В наших шестнадцати приказах вообще нет апреля, и один этот факт ломает или исправляет все, что ниже.

Вот чем на самом деле заняться сегодня. Откройте свою модель и проверьте, есть ли в ней реальная таблица дат, помеченная как единица, со строкой для каждого дня и без пробелов. Если это не так, каждый раз расчет в этом отчете либо неправильный, либо будет неправильный, а добавление таблицы — это пятиминутная работа, которая исправляет все ошибки сразу.

Краткая версия: анализ времени DAX работает, беря даты в текущем фильтре и сдвигая их. Он может переходить только к датам, которые существуют в столбце дат, поэтому таблица дат должна содержать каждый день, включая дни без продаж.

Откуда берутся периоды, вот в чем вся идея, так что картина понятна.

The calendar supplies the period the data does not have Two horizontal rows of blocks, one above the other. The upper row, labelled orders, has four solid blocks, and there is a conspicuous empty space between the third and the fourth where a fifth block would sit if it existed, so the row reads as having a hole in it. The lower row, labelled calendar, has five blocks in an unbroken line with no space between them, each the same width as the blocks above. Four short arrows drop from the four solid blocks in the upper row straight down into the lower row, each landing in the block directly beneath it. The fourth block of the lower row, the one sitting under the empty space, receives no arrow and is drawn with a dashed outline and no fill, so it reads as a period that exists but has nothing in it. The lower row remains complete and evenly spaced throughout. orders calendar
В таблице заказов есть дыра там, где должен быть апрель, потому что заказ не был размещен. В календаре нет дыры, потому что календарь — это список периодов, а не список событий. Каждый раз расчет в DAX идет по нижней строке, поэтому он должен быть завершен.
Что вы узнаете
  1. Почему таблица дат не является обязательной
  2. Строим один и отмечаем его
  3. С начала года с TOTALYTD
  4. Предыдущий период с DATEADD и ошибка, которую он выдает
  5. Тот же период прошлого года и что означает пробел
  6. Месяц за месяцем, и месяц, которого нет
  7. Финансовые годы и единственный аргумент, который меняет все
  8. Полное до и после
  9. Крайние случаи, которые застают людей врасплох
  10. Почему это работает
  11. Использование этого на вашей собственной модели
  12. Все на одном экране
Каждая цифра на этой странице реальна, и каждое поведение задокументировано. Шестнадцать заказов за пять месяцев 2026 года, при этом апрельских скандалов практически не было. Приведенные здесь правила DAX взяты из собственных справочных страниц Майкрософт, а не из опыта, и они цитируются непосредственно в разделе «почему это работает». Если ВЫЧИСЛЕНИЕ все еще нечеткое, РАСЧЕТ и фильтрация контекста на первом месте, потому что каждый раз интеллектуальная функция представляет собой ВЫЧИСЛЕНИЕ с переписанными датами.

Вот вся таблица фактов, обобщенная по месяцам. Шестнадцать заказов, по одному в неделю, и в течение пяти недель с конца марта до начала мая ничего не было.

МесяцЗаказыВыручка
январь 2026 г.42,630
февраль 2026 г.42,245
март 2026 г.42,585
апрель 2026 г.0вообще нет строк
май 2026 г.42,430
Общий169,890

1. Почему таблица дат не является обязательной

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

Четыре, а не пять. В апреле нет заказов, поэтому в нем нет строк, поэтому у него нет значения месяца, поэтому он никогда не отображается. Это не особенность Power BI, это то, что группировка делает в каждом инструменте, и это тот же молчаливый пробел, который был скрыт в Месяц за месяцем в SQL и в Excel.

A таблица дат исправляет это, представляя список периодов, а не список событий. В нем есть одна строка за день, независимо от того, произошло ли что-то или нет, поэтому группировка по столбцу месяца всегда дает двенадцать строк за год. В руководстве Майкрософт конкретно указано, что соответствует требованиям, и список достаточно короткий, чтобы его можно было проверить вручную:

Прочтите четвертую и пятую из них вместе, и причина станет очевидной. Временной интеллект работает путем сдвига набора дат назад или вперед. Если дата, на которую он хочет перейти, отсутствует в таблице, он не может приземлиться, а если таблица останавливается на полпути через год, расчетам с начала года нечего накапливать.

Скажите вслух, почему «охватить полные годы» — это требование, а не предложение. Для измерения марта за текущий год необходимо, чтобы существовали январь и февраль, даже если в них ничего не продавалось, а для сравнения за январь 2026 года за предыдущий год необходимо представить весь 2025 год, даже если бизнес начался в июне.

2. Создание и разметка

Перед кодом: вам нужна каждая дата от начала ваших данных до конца. Прежде чем читать дальше, скажите, откуда должны взяться эти две даты.

Из данных, поэтому таблица расширяется при поступлении новых строк. Это делают две функции DAX, и я использую вторую.

-- Option 1: you control the range
Date =
CALENDAR ( DATE ( 2026, 1, 1 ), DATE ( 2026, 12, 31 ) )

-- Option 2: the range follows the model, and always covers full years
Date = CALENDARAUTO ()

CALENDARAUTO является более безопасным значением по умолчанию именно по той причине, которую указал первый раздел: в руководстве Майкрософт отмечается, что оно «гарантирует, что возвращаются полные годы дат и, таким образом, соответствуют требованиям для отмеченной таблицы дат», и что обновление пересчитывает ее, поэтому диапазон расширяется по мере поступления данных за новые годы. Вам не обязательно не забывать расширять его в январе следующего года.

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

Year        = YEAR ( 'Date'[Date] )
Month       = FORMAT ( 'Date'[Date], "mmm yyyy" )
Month Sort  = YEAR ( 'Date'[Date] ) * 100 + MONTH ( 'Date'[Date] )
Quarter     = "Q" & ROUNDUP ( MONTH ( 'Date'[Date] ) / 3, 0 )

Три завершающих шага, которые люди пропускают, и каждый из которых вызывает определенную ошибку.

  1. Сортировка по месяцам Сортировка. Выберите столбец «Месяц», затем «Инструменты столбца», «Сортировать по столбцу». Без него ваша ось будет читать апрель, февраль, январь, март, май в алфавитном порядке, и это произойдет на первой диаграмме, которую вы построите.
  2. Свяжите это с таблицей фактов. Один ко многим из 'Date'[Date] к Orders[OrderDate], однонаправленное, от даты до заказа. Таблица дат — это измерение, а таблица заказов — это факт, который представляет собой форму. руководство по звездообразной схеме это о.
  3. Отметить как таблицу дат. Щелкните таблицу правой кнопкой мыши, выберите «Отметить как таблицу дат», выберите столбец даты. Требуется для классической разведки времени и бесплатен.

Одна вещь, которую нужно выключить, пока вы там. Параметр «Автоматическая дата/время» Power BI незаметно создает скрытую таблицу дат позади каждого столбца даты в вашей модели. Это удобно для быстрого просмотра и не является единым общим календарем, поэтому фильтры из него не распространяются на другие ваши таблицы. При наличии реальной таблицы дат это излишне и приводит к раздуванию модели.

3. С начала года с TOTALYTD

Перед мерой: вам нужен доход, накопленный с начала года. Предскажите, что он покажет в марте, учитывая приведенные выше месячные показатели.

2630 плюс 2245 плюс 2585, что составляет 7460. Вот мера и весь столбец.

Total Revenue = SUM ( Orders[Revenue] )

Revenue YTD = TOTALYTD ( [Total Revenue], 'Date'[Date] )
МесяцОбщий доходДоход с начала года
январь 2026 г.2,6302,630
февраль 2026 г.2,2454,875
март 2026 г.2,5857,460
апрель 2026 г.(пустой)7,460
май 2026 г.2,4309,890

Апрель — это строка, на которую стоит обратить внимание. Выручка пуста, потому что нет заказов, а промежуточная сумма держится на уровне 7460, а не падает или исчезает, потому что с начала года означает все с 1 января до конца апреля, а это все еще 7460. В отчете без таблицы дат вообще не отображаются строки за апрель, и читатель никогда не узнает, что месяц прошел без каких-либо данных.

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

Revenue YTD Long =
CALCULATE (
    [Total Revenue],
    DATESYTD ( 'Date'[Date] )
)

Каждый раз интеллектуальная функция имеет такую ​​форму: РАСЧЕТ, фильтр которого представляет собой таблицу дат, созданную функцией даты. Поэтому правила РАСЧЕТА применяются здесь без изменений, и почему фильтр в таблице дат заменяет любой фильтр даты, который был у визуального элемента.

4. Предыдущий период с DATEADD и выдаваемая им ошибка

Перед функцией: вам нужен доход за прошлый месяц рядом с доходом за этот месяц. Предскажите, что произойдет, когда эта мера будет предложена в мае в предыдущем месяце, учитывая, что в апреле заказов нет.

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

Revenue Prior Month =
CALCULATE (
    [Total Revenue],
    DATEADD ( 'Date'[Date], -1, MONTH )
)
МесяцОбщий доходДоход за предыдущий месяц
январь 2026 г.2,630(пустой)
февраль 2026 г.2,2452,630
март 2026 г.2,5852,245
апрель 2026 г.(пустой)2,585
май 2026 г.2,430(пустой)

Внимательно прочитайте последние две строки, потому что эта пара представляет собой все значение таблицы дат. Предыдущим месяцем апреля является март, 2585, поэтому в отчете показан месяц, в котором показатель с 2585 упал до нуля. Предыдущим месяцем мая является апрель, который пуст, поэтому в отчете корректно не учитывается изменение. Ни одно из этих предложений недоступно для отчета, пропущенного за апрель.

Два задокументированных факта о DATEADD стоит запомнить, поскольку они объясняют большинство ошибок, с которыми люди сталкиваются при его использовании.

Он возвращает только существующие даты. В ссылке Майкрософт говорится: «Таблица результатов включает только даты, которые существуют в столбце дат». Перейдите на дату, которой нет в вашем календаре, и вы ничего не получите взамен, молча.

Даты в контексте должны быть последовательными. На той же странице указано: «Если используется синтаксис столбца даты и даты в текущем контексте не образуют непрерывный интервал, функция возвращает ошибку». Это конкретная причина, по которой DATEADD не работает в модели без таблицы дат: значения Дата заказа в контексте — это фактические даты заказа, в которых есть пятинедельный пробел, а дыра не является непрерывным интервалом.

Для общего случая существует более короткая функция. PREVIOUSMONTH('Date'[Date]) делает ту же работу, что и DATEADD(..., -1, MONTH) нужно ввести меньше, а DATEADD следует оставить, поскольку он занимает любой интервал и любое число: минус 3 квартала, минус 1 год, плюс 2 недели.

5. Тот же период прошлого года и что означает пробел

До результата: наши данные охватывают период с января по май 2026 года и ничего больше. Предскажите, что даст сравнение за предыдущий год.

Пусто в каждой строке, и это скорее правильный ответ, чем неудачный.

Revenue LY =
CALCULATE ( [Total Revenue], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )

Revenue YoY % =
DIVIDE ( [Total Revenue] - [Revenue LY], [Revenue LY] )

Заказов на 2025 год нет, поэтому все цифры за предыдущий год пусты, а вместе с ними и каждый процент роста. DIVIDE здесь заслуживает свое место: если написать через косую черту, то весь столбец будет представлять собой ошибки деления на ноль, а ошибки в визуальном представлении будут выглядеть как неработающий отчет, а не как отсутствующая история.

Об этом стоит сказать, потому что пустой столбец за предыдущий год — это самый распространенный отчет «показатель не работает», и примерно в половине случаев показатель верен, а истории просто нет. Два вопроса решают проблему за десять секунд. Таблица дат вообще охватывает прошлый год? А были ли какие-нибудь скандалы за прошлый год?

Если ваша таблица дат была построена с помощью CALENDAR(MIN(...), MAX(...)) по таблице фактов ответ на первый вопрос — нет, и в этом ошибка. Это практическая причина предпочесть CALENDARAUTO или явно расширенный диапазон: для показателя предыдущего года требуется предыдущий календарный год, даже если данные за предыдущий год отсутствуют.

Теперь представьте свою собственную модель. Если кто-то завтра спросит о росте в годовом исчислении, будет ли ваша таблица дат уже содержать год, предшествующий вашей самой ранней транзакции?

6. Месяц за месяцем, и месяц, которого нет

Перед сравнением: вот две версии одного и того же отчета: одна построена непосредственно на Дата заказа, а другая — на таблице дат. Посмотрите на майский ряд каждого из них и решите, какой из них говорит правду.

Revenue MoM % =
DIVIDE ( [Total Revenue] - [Revenue Prior Month], [Revenue Prior Month] )
МесяцВыручкаНет таблицы датС таблицей дат
Ян2,630(пустой)(пустой)
февраль2,245−14.6%−14.6%
Мар2,585+15.1%+15.1%
апрельниктострока не показана−100.0%
Может2,430−6.0%(пустой)

Левая версия состоит из четырех строк, каждая из которых выглядит правдоподобной, но она неверна по двум различным причинам. Апреля нет, поэтому месяца, в котором бизнес ничего не продал, не видно. А майское значение -6,0 процента рассчитывается по сравнению с мартом, поскольку март находится строкой выше него, поэтому к двухмесячному сравнению прилагается метка «по сравнению с прошлым месяцем».

Правая версия имеет пять строк, сообщает об апреле как о полном коллапсе и отказывается вычислить изменение за май, поскольку месяцем ранее он был пуст. Этот пробел не является пробелом в отчете; это отчет, в котором говорится, что процентное изменение от нуля не имеет значения. Арифметика та же, что и в Месяц за месяцем в Excel, где один и тот же прибор дает одни и те же два ответа.

Ни в одной из колонок не требовалась другая мера. Мера одинакова в обоих случаях. Единственная разница заключается в том, содержит ли модель таблицу каждого месяца.

7. Финансовые годы и единственный аргумент, который меняет все

До изменения: год вашей организации заканчивается 30 июня. Прежде чем читать дальше, предскажите, что произойдет со столбцом за текущий год.

Вообще ничего, по этим данным, и понимание почему имеет смысл. TOTALYTD принимает необязательный последний аргумент для конца года.

Revenue FYTD =
TOTALYTD ( [Total Revenue], 'Date'[Date], , "6/30" )

В ссылке Майкрософт точна информация о формате: это «буквальная строка с датой, определяющей дату окончания года. По умолчанию — 31 декабря», часть года игнорируется, а рекомендуемый способ записи — месяц/день. Обратите внимание на пустой третий аргумент; этот слот является дополнительным фильтром, и его нужно оставить открытым с помощью запятой.

По нашим данным, финансовый год, продолжающийся с 1 июля 2025 года по 30 июня 2026 года, содержит все пять наших месяцев, поэтому столбец текущего финансового года идентичен календарному и заканчивается на 9890. В тот момент, когда появится приказ на декабрь 2025 года, два столбца разойдутся: календарная версия перезапустится в январе, а финансовая версия перенесет декабрь вперед.

Два практических замечания. Если вы для чего-либо используете финансовый календарь, поместите столбцы финансового года, финансового квартала и финансового месяца в таблицу дат, а не вычисляйте их в показателях, чтобы каждый визуальный элемент мог группироваться по ним напрямую. И проверьте, где начинается ваш финансовый год, прежде чем писать строку: год, заканчивающийся 30 июня, начинается 1 июля, и отклонение этого показателя на месяц незаметно сдвигает каждое сравнение в отчете на один период.

Полное до и после

Оба раза одно и то же требование: доход по месяцам с промежуточной суммой и изменением по месяцам.

До

Model:    Orders table only. Month axis built from Orders[OrderDate].
Measure:  Revenue MTD = TOTALYTD ( SUM ( Orders[Revenue] ), Orders[OrderDate] )
Result:   Four rows. May shows -6.0% "against last month".

Четыре неисправности по одной причине. Апрель отсутствует на оси. Майское изменение по сравнению с мартом. DATEADD против Orders[OrderDate] может привести к прямой ошибке, поскольку даты в контексте не являются смежными. И в следующем месяце все будет по-другому, в зависимости от того, в каких месяцах есть заказы.

после

Model:    'Date' table from CALENDARAUTO(), Year / Month / Month Sort columns,
          Month sorted by Month Sort, one-to-many to Orders[OrderDate],
          marked as a date table. Auto date/time turned off.

Total Revenue       = SUM ( Orders[Revenue] )
Revenue YTD         = TOTALYTD ( [Total Revenue], 'Date'[Date] )
Revenue Prior Month = CALCULATE ( [Total Revenue], DATEADD ( 'Date'[Date], -1, MONTH ) )
Revenue MoM %       = DIVIDE ( [Total Revenue] - [Revenue Prior Month],
                               [Revenue Prior Month] )

Пять строк, апрель включен и пуст, с начала года значение держится на уровне 7460 и достигает 9890, а Мэй правильно отказывается сообщать об изменении по сравнению с пустым месяцем. Каждая мера называет таблицу дат, а не таблицу фактов, что делает функции времени допустимыми. Здесь нет ничего умного; это те же четыре строки, которые нужны каждой модели, лежащие на столе без дыр.

Крайние случаи, которые застают людей врасплох

Шесть, каждая из которых стоила кому-то дня.

Анализ времени по столбцу даты таблицы фактов. Иногда это срабатывает, что хуже, чем никогда не работать, потому что дает сбой только тогда, когда период оказывается пустым. Всегда передавайте столбец таблицы дат.

Столбец даты со временем в нем. Если Дата заказа содержит компонент времени, связь с календарем, содержащим только дату, ничему не соответствует, и каждая мера возвращает пустое значение. Удалите время в Мощность запроса.

Ось месяца отсортирована в алфавитном порядке. Апрель, февраль, январь, март, май. Исправлено с помощью сортировки по столбцу, и оно невидимо, пока кто-нибудь не прочитает диаграмму.

Таблица дат, которая останавливается на сегодняшнем дне. Диапазон, построенный на основе максимальной даты таблицы фактов, означает, что даты следующего года не существуют, поэтому прогнозные измерения или обновление в начале января ничего не обнаруживают. CALENDARAUTO избегает этого.

Два столбца дат, одна связь. Дата заказа и дата отгрузки не могут быть одновременно активно связаны с одним календарем. Либо используйте USERELATIONSHIP в конкретных показателях или создайте вторую таблицу дат (это подход, который Майкрософт рекомендует для ролевых измерений).

Автоматическая дата/время остаются включенными. Он создает скрытый календарь для каждого столбца даты, расширяет модель и дает вам группировку по месяцам, которая не распространяется на другие таблицы. Отключите его, как только появится реальная таблица дат.

Почему это работает

Каждая функция на этой странице представляет собой фильтр по таблице измерений, поэтому все они терпят неудачу одинаково, если измерение неполное. Таблица дат — это измерение в обычном реляционном смысле: набор периодов, по которым вы хотите провести анализ, объединенных с фактами. Группировка фактов сама по себе может вернуть только периоды, в которых произошли факты, поскольку группировка разделяет имеющиеся у вас строки, а не строки, которые вы ожидали, что является реляционной алгеброй, лежащей в основе каждого инструмента, который это делает (Кодд, 1970, Коммуникации ACM, 13(6), 377–387). Таблица дат восстанавливает пропущенные периоды, будучи тем, по чему вы группируете, и факты объединяются в нее. Многомерное моделирование Кимбалла делает измерение даты каноническим примером, а собственное руководство Майкрософт называет его «наиболее последовательной таблицей, которую вы найдете в звездообразной схеме» (Кимбалл & Росс, 2013, Инструментарий хранилища данных, 3-е издание, Уайли; монография, а не журнальная статья).

Конкретное поведение является поведением продукта, поэтому авторитетным источником является справочная документация Майкрософт, а не исследование. Требования к таблице дат в первом разделе приведены из руководства по таблице дат Power BI. Два правила DATEADD в разделе четыре, согласно которым возвращаются только существующие даты и что несмежные даты в контексте вызывают ошибку, цитируются из ссылки DATEADD. Строковый формат TOTALYTD на конец года в седьмом разделе взят из справочника TOTALYTD. Эти страницы перечислены ниже, и их стоит прочитать напрямую.

Одно замечание о том, почему эта страница продолжает просить вас предсказать, прежде чем показывать ответ. Попытка дать ответ до того, как вы увидите правильный, достоверно повышает, насколько хорошо сохраняется правильный ответ, даже если попытка неверна (Бисра, Лю, Несбит, Салими и Винн, 2018, Обзор педагогической психологии, 30(3), 703–725). Значение -6,0 процента, которое на самом деле соответствует двухмесячному сравнению, остается верным, потому что вас спросили, в какой колонке первой была указана правда.

Использование этого на вашей собственной модели

Преобразование таблицы дат в большой отчет — это настоящая работа, и она ограничена. Сделайте это по порядку.

  1. Сначала добавьте таблицу дат, с CALENDARAUTO(), прежде чем прикасаться к какой-либо мере. Год, месяц, сортировка по месяцам, квартал.
  2. Отсортируйте столбец месяца и отметьте таблицу. Два щелчка на каждого, и оба невидимы, пока не укусят.
  3. Расскажите об этом один раз, один-ко-многим, в одном направлении, к основной фактической дате. Затем отключите Автоматическую дату/время.
  4. Перепишите меры времени, чтобы назвать таблицу дат. Найдите свои меры по столбцу даты таблицы фактов; каждое появление внутри функции времени — это ошибка, ожидающая пустого периода.
  5. Восстановить ось месяца из таблицы дат. и посчитаем ряды. Если теперь отображается пустой период отсутствия активности, модификация сработала.

Если у вас под рукой есть бумага, один дополнительный рисунок стоит пяти минут. Нарисуйте свои последние двенадцать месяцев в виде ряда прямоугольников, а затем отметьте, какие из них действительно содержат строки в вашей таблице фактов. Любое пустое поле — это строка, которую ваш текущий отчет не показывает, и видеть их в собственных данных более убедительно, чем любой мой пример.

Подробнее об этом и еще что-нибудь подобное. Все инструкции находятся в одном месте на индекс направляющих: SQL, Python, Excel, Power BI и связанные с ними рабочие привычки.

Все на одном экране

Это лист поиска. Закройте правую колонку, проработайте левую и произнесите каждый ответ вслух, прежде чем проверять его.

ИдеяЧто это значит
Зачем таблица датГруппировка фактов возвращает только те периоды, в которых были факты. Эйприл исчезает.
Шесть требованийТип даты, уникальный, без пробелов и пропущенных дат, полные годы, помечены как таблица дат.
CALENDARAUTOАссортимент соответствует модели и всегда охватывает полные годы. Более безопасный вариант по умолчанию.
Три шага настройкиСортировать месяц по числовому ключу, соотносить один ко многим, отмечать как таблицу дат.
Автоматическая дата/времяСкрытый календарь в столбце даты. Выключите его, как только у вас появится настоящий.
TOTALYTDТекущий итог в течение года. В пустой апрель держится на уровне 7460.
Функция каждый разВЫЧИСЛЕНИЕ, фильтром которого является таблица дат. Все правила РАСЧЕТА применяются.
DATEADDСместите даты в контексте. Возвращает только даты, существующие в столбце.
Ошибка DATEADDНесмежные даты в контексте возвращают ошибку. Это ошибка таблицы фактов и даты.
PREVIOUSMONTHСокращение для DATEADD(-1, МЕСЯЦ). DATEADD принимает любой интервал.
SAMEPERIODLASTYEARПусто, если нет предыдущего года. Обычно это данные, а не мера.
DIVIDEПробел вместо ошибки в нулевом знаменателе. Используйте его везде.
Без таблицы дат, май−6,0% с пометкой «прошлый месяц», фактически по сравнению с мартом.
С таблицей дат, майПусто, потому что апрель был пуст. Сам апрель показывает −100%.
Финансовый годЧетвертый аргумент TOTALYTD — строка «месяц/день». По умолчанию — 31 декабря.
Две роли на свиданииТолько одно активное общение. USERELATIONSHIP или вторая таблица дат.
Единственная привычка, которую следует сохранить. Каждый раз функция называет столбец даты таблицы дат, а не таблицы фактов. Если вы обнаружите, что мера времени указывает на столбец фактов, это не проблема стиля, это ошибка, которая проявляется в первый месяц, когда ничего не происходит. Если какая-либо мера нарушается таким образом, который не описан на этой странице, существует общая шлейф диагностики на предмет застревания.

Еще одна мысль, и мне бы искренне хотелось услышать ответы других людей. В первом месячном отчете, который я составил, пропущен месяц без продаж, и я спокойно сравнил этот разрыв, и чтобы найти его, потребовалась финансовая выверка. Какой период отсутствует в вашей отчетности, и заметил ли кто-нибудь?

Ссылки

Измерение текущего года верно для одиннадцати месяцев и неверно для двенадцатого.

Power BI для аналитиков состоит из 187 страниц, таблица дат и зависящие от нее функции управления временем построены в том порядке, в котором они ломаются.

Power BI для аналитиков, 19 долларов США →
Потренируйтесь в этом на модели перед собой.

тот Курс Power BI дает вам повторы: таблицы дат, которые нужно построить, карточки с шестью требованиями и тем, что возвращает DATEADD, а также вопросы, которые просят вас предсказать, какой месяц отчет пропустит. Теперь вы владеете методом; комплект - это практика. Ничего устанавливать, учетная запись не требуется.

Откройте комплект Power BI →