Календарь праздников LuckyTemplates — расчет даты с помощью DAX

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

Этот пример взят из одной из инициатив под названием «Проблема недели», где каждый месяц мы берем реальную проблему DAX или Power Query и подробно разбираем ее.

Календарь праздников LuckyTemplates — расчет даты с помощью DAX

Я использовал технику под названием «Отладка резиновой утки». Обычно он используется для отладки, но я считаю, что он также очень полезен для разработки исходной среды, которую вы собираетесь использовать для решения сложной проблемы, например, в LuckyTemplates.

Календарь праздников LuckyTemplates — расчет даты с помощью DAX

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

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

Ниже приведена реальная проблема DAX для этой конкретной задачи. У нас есть таблица с 10 праздниками с месяцем и днем. Некоторые из дней являются конкретными днями, а некоторые относительными. Нам нужно придумать Дату Праздника и Мероприятия Празднования.

Календарь праздников LuckyTemplates — расчет даты с помощью DAX

Для этого нам нужно разобрать поле «День» на два компонента. Первый анализ — это вхождение (третий, последний, первый, второй), а второй анализ — это день (понедельник, четверг). Это две важные части информации, которые нам нужно разделить.

Оглавление

Вычисление определенных дат в календаре праздников LuckyTemplates

Обычно я делаю это в Power Query, просто разбивая по разделителям, но поскольку мы делаем это с DAX, нам придется делать это по-другому. (Обратите внимание, что нам не разрешено использовать Power Query в этом испытании.)

Нам нужно вычислить минимальную и максимальную даты для указанного года, месяца и имени дня. В этом случае, например, мы можем сказать за 2027 год, январь и третий понедельник. Как только мы получим этот минимальный день для данного месяца, мы можем добавить к нему семь дней, чтобы добраться до второго понедельника, 14 дней, чтобы добраться до третьего понедельника, и 21 день, чтобы добраться до четвертого понедельника.

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

Что я всегда делаю, так это переменную результата ( VAR Result ) в конце и мой последний оператор, который просто возвращает результат . Это позволяет очень легко вернуться и протестировать переменные, которые я построил. Я могу пройти и отследить и решить его по частям.

Календарь праздников LuckyTemplates — расчет даты с помощью DAX

Последний метод, которым я хочу поделиться с вами, — это то, что я называю поиском неизвестных функций. Например, если я не знаю, какую функцию использовать для этой задачи календаря праздников LuckyTemplates, я перейду на вкладку « Внешние инструменты» и перейду к руководству по SQLBI DAX .

Календарь праздников LuckyTemplates — расчет даты с помощью DAX

Здесь есть очень хорошая функция, называемая «Группы» (слева), где функции сгруппированы по типу. Итак, если я думаю о парсинге текстовой строки, например, я могу пойти искать Text functions .

Календарь праздников LuckyTemplates — расчет даты с помощью DAX

Он предоставляет все текстовые функции, которые есть в DAX. Это отличный способ быстро найти функцию DAX, необходимую для меры.

Календарь праздников LuckyTemplates — расчет даты с помощью DAX

Показатели DAX для календаря праздников LuckyTemplates

Для меры «Дата праздника» я создал серию , извлекая даты из слайсера, месяц отпуска, номер месяца и день из таблицы «Дата»   .

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

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

CharsBeforeSpace (символы перед пробелом) это просто SpacePosition. Количество символов CharsAfterSpace (символов после пробела) равно длине ( SelDayLen ) строки минус положение пробела. Исходя из этого, мы можем сделать FirstParse и SecondParse .

Календарь праздников LuckyTemplates — расчет даты с помощью DAX

На данный момент у нас теперь есть две переменные, одна из которых представляет событие, а другая — день.

И затем у нас есть базовый ( Calc1st ), где мы берем фильтр из таблицы Dates. Затем мы применяем фильтры выбранного года из слайсера, названия месяца, а затем дня недели из того второго синтаксического анализа, который мы сделали.

Календарь праздников LuckyTemplates — расчет даты с помощью DAX

Точно так же мы делаем то же самое для последнего вычисления ( VAR CalcLast ).

Календарь праздников LuckyTemplates — расчет даты с помощью DAX

Как только у нас есть все это, он переходит к оператору , и последняя часть — это результат RETURN.

Календарь праздников LuckyTemplates — расчет даты с помощью DAX

Наконец, я хочу провести вас через меру Celebrated On в качестве дополнительного бонуса за испытание. Это просто , в котором я взял дату праздника, которую мы рассчитали в предыдущем показателе, перешел к таблице «Даты» и нашел название дня недели. А затем я просто сделал оператор SWITCH , в котором мы взяли результат DayLookup . И, наконец, я завершаю это с помощью RETURN DateAdjust .

Календарь праздников LuckyTemplates — расчет даты с помощью DAX


Создание таблицы календаря для праздничных дней в LuckyTemplates
Пользовательские календари LuckyTemplates: расчет для месяца при смене месяца —
сравнение времени 445 календарей для нестандартных таблиц дат в LuckyTemplates

Заключение

Как я уже упоминал, эта задача календаря праздников LuckyTemplates — реальная проблема. Решение, которое я придумал, довольно сложное, но действительно эффективное при расчете конкретных дат праздников.

Надеюсь, вы многому научились из этого урока. Посмотрите полное видеоруководство, чтобы получить более подробное пошаговое объяснение показателей DAX.

Ваше здоровье!

Leave a Comment

Расчет недельных продаж с помощью DAX в LuckyTemplates

Расчет недельных продаж с помощью DAX в LuckyTemplates

В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

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

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

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

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

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

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.