Расчет недельных продаж с помощью DAX в LuckyTemplates
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Третьим столпом разработки LuckyTemplates являются вычисления DAX. Этот учебник содержит подробное руководство по DAX для начинающих, охватывающее основы форматирования и редактирования. Часто используемые функции DAX также включены в обсуждение.
Оглавление
Руководство по редактору DAX
Прежде всего, вот несколько советов по редактору DAX, которые вам нужно знать:
Используйте Ctrl + колесо прокрутки мыши , чтобы увеличить или уменьшить размер шрифта в окне редактора DAX.
Используйте Ctrl + Shift + L , чтобы обновить все экземпляры имени одновременно.
Добавьте префикс « @ » к именам виртуальных таблиц или временных столбцов в DAX.
Руководство DAX по форматированию
Ваш код DAX должен быть организован и легко понятен пользователям.
Вы пишете код не только для себя сегодня, но и для себя в будущем.
Важно разрабатывать коды DAX, которые легко читаются и понятны вам и другим как сейчас, так и в будущем.
Не беспокойтесь, если редактирование и систематизация могут в конечном итоге испортить ваш код. Компьютеры умны; пока синтаксис правильный, они смогут интерпретировать и выполнять коды, которые вы написали.
Отличная цитата Марко Руссо гласит:
Если он не отформатирован, это не DAX.
Существует несколько способов форматирования DAX. Рекомендуемый вариант — использовать инструмент очистки DAX , доступный в LuckyTemplates Analyst Hub.
Вы можете получить доступ к этому инструменту, используя эту . Другой способ — зайти на веб-сайт LuckyTemplates и выбрать «Ресурсы». В нижней части страницы вы найдете инструмент очистки DAX.
Чтобы использовать этот инструмент, скопируйте код из редактора DAX в файл LuckyTemplates. Вставьте его в средство очистки DAX и нажмите «Формат».
После завершения очистки вы можете вставить отформатированный код обратно в файл LuckyTemplates.
Вы также можете редактировать код в инструменте.
Комментарии в коде DAX
При работе со сложными кодами DAX рекомендуется добавлять комментарии. Вы очень выиграете от объяснения псевдокода. Но есть исключения.
Комментирование — это очень личная деятельность. Могут быть разные мнения о правильном уровне комментариев от разработчиков и пользователей. Итак, опять же, при создании кодов и комментариев важно учитывать, как они будут приняты и поняты пользователями или разработчиками в будущем. Это принесет большую пользу вам и бизнесу в долгосрочной перспективе.
Руководство по DAX для переменных
Используйте подробные имена переменных. Ключ в ясности . Важно создавать имена, которые ясны и легко понятны.
Опять же, компьютеры умны и могут легко понять, что написано. Так что помните, что вы пишете не для компьютера или LuckyTemplates; вы пишете для себя и для тех, кто будет использовать и поддерживать ваш код в последующие месяцы.
При использовании переменных в коде DAX рекомендуется использовать префикс перед именем переменной, чтобы гарантировать, что вы выберете правильную переменную в последующих строках. Префикс подчеркивания ( _ ) рекомендуется использовать. Это также помогает сократить список, представленный в функции IntelliSense в LuckyTemplates.
Вот пример:
Вы можете видеть, что при вводе подчеркивания представлены только два варианта. Количество вариантов значительно уменьшено, что повышает эффективность кодирования.
Другой рекомендуемой практикой является использование конструкции RETURN Result .
Это упрощает поэтапную разработку и отладку кодов DAX.
Квалификация расчетов DAX
При использовании столбцов в выражениях DAX необходимо быть конкретным, поскольку в нескольких таблицах может быть одно и то же имя столбца.
Например, может появиться столбец «Ключ клиента» как в таблицах «Клиенты», так и в таблицах «Продажи».
Хотя они часто означают одно и то же и содержат одни и те же данные, так будет не всегда. Чтобы получить желаемые результаты, вы всегда должны уточнять имена столбцов.
Кроме того, необходимо убедиться, что показатели не привязаны к таблице. Их можно перемещать из одной таблицы в другую, поэтому важно убедиться, что имена мер не являются квалифицированными.
Важные функции DAX, которые нужно знать
1. РАСЧЕТ
— одна из самых важных функций DAX, поскольку она позволяет изменять контекст вычисления.
Однако эта функция часто вызывает недоумение не из-за сложности ее использования, а из-за своего названия. Даже если он называется CALCULATE, на самом деле он не выполняет вычисления. Скорее, это изменение контекста вычисления.
Например, в этом показателе «Продажи за год» функция РАСЧЕТ используется для изменения контекста расчета «Общий объем продаж» на один год раньше текущего контекста оценки.
2. ДАТАДОБАВИТЬ
В DAX доступно множество функций анализа времени. Обычные коды DAX, скорее всего, будут использовать функции , и среди многих других. Но — одна из самых универсальных функций анализа времени DAX. И эта функция должна быть вашим первым выбором.
С DATEADD один и тот же синтаксис может использоваться для нескольких вычислений, как в обратном, так и в прямом направлении во времени, а также для YEAR, QUARTER, MONTH или DAY. Это позволяет очень легко создавать несколько показателей аналитики времени, используя копирование и вставку с небольшим редактированием.
3. РАЗДЕЛИТЬ
Разделение в LuckyTemplates можно выполнить разными способами. Самый простой способ — использовать простое арифметическое деление.
Однако случаи деления на ноль обычно требуют проведения сложных тестов, прежде чем продолжить. К счастью, есть функция DAX, которая сделает это за вас.
Функция автоматически выполняет деление на ноль, а также позволяет добавить альтернативный результат. Поскольку это проще арифметического деления в LuckyTemplates, код становится более читабельным.
4. ПЕРЕКЛЮЧИТЕ ИСТИНА
Другой код DAX — это логика .
Когда у вас есть несколько условий для оценки, это приведет к созданию нескольких вложенных операторов , которые часто трудно читать и отслеживать.
Оператор SWITCH TRUE позволяет гибко модифицировать код на более позднюю дату и настраивать новые условия. Он также более компактен, что облегчает чтение.
Руководство DAX по виртуальным таблицам
При создании виртуальной таблицы в коде DAX используйте функцию , чтобы сгруппировать столбцы в базовую таблицу. Затем окружите его конструкцией , чтобы добавить столбцы.
Повторяю, используйте префикс « @ » для столбцов с помощью функции ADDCOLUMNS, чтобы предотвратить двусмысленность и убедиться, что выбранный столбец виртуальной таблицы правильный.
Кроме того, при работе с виртуальными таблицами рекомендуется использовать DAX Studio или табличный редактор.
Между парой таблиц в LuckyTemplates может быть много связей. Код DAX будет использовать активное отношение по умолчанию. Но его можно изменить для использования определенного неактивного отношения с помощью команды .
Например, между столбцами «Дата» таблицы «Даты» и таблицей «Продажи» может быть множество взаимосвязей. Продажи [Дата заказа] — это активная связь, а Продажи [Дата счета] — неактивная связь. Если вы хотите использовать продажи [дата заказа] в расчетах, никаких дополнительных усилий не требуется. Однако, если вы хотите использовать продажи [дата счета-фактуры] в расчетах, вам нужно использовать ее вместе с командой USERELATIONSHIP .
В представлении модели в LuckyTemplates при наведении указателя мыши на сплошную линию отображается активная связь. В то время как две пунктирные линии показывают неактивную связь между каждым элементом в двух таблицах.
Просматривая образец отчета, также можно увидеть разницу между столбцом «Продажи по дате заказа», столбцом «Продажи по дате счета» и столбцом «Продажи по дате отгрузки».
Меры против вычисляемых столбцов
Для тех, кто работает с Excel, удобно использовать вычисляемые столбцы , поскольку они позволяют просматривать данные. Но в DAX и LuckyTemplates рекомендуется максимально использовать меры .
В некоторых случаях используются вычисляемые столбцы. Они часто разрабатываются в качестве отправной точки, чтобы помочь с визуализацией расчета. Но затем вам нужно впоследствии заменить их мерами, как только вы полностью визуализируете расчет в своей голове. Более того, вычисляемые столбцы можно использовать в срезах, в отличие от показателей.
Мера не увеличивает физический размер вашей модели данных во время ее расчета; это происходит только при использовании в визуальном элементе. Однако вычисляемый столбец увеличивает физический размер вашей модели данных, поскольку он вычисляется и физически сохраняется при каждом обновлении файла.
Руководство DAX по измерению ветвления
Один из самых ценных приемов в LuckyTemplates — ветвление измерений .
Отличный способ модульности кода — начать с простых или базовых мер, выполняющих простые вычисления, а затем комбинировать их по мере необходимости для выполнения более сложных вычислений. Поместите базовые и промежуточные меры в таблицы, чтобы увидеть расчеты по мере их выполнения.
Существуют разные взгляды на то, где должны располагаться конкретные меры, и у всех методов есть свои плюсы и минусы. Но более выгодно использовать выделенную группу мер при разработке LuckyTemplates. Если все меры расположены в одном месте в верхней части панели полей, это упрощает отслеживание логики вычислений DAX.
Контекст в вычислениях DAX
Одной из сильных сторон LuckyTemplates является контекст. И это также одна из самых сложных концепций для разработчиков.
Контекст — это среда, в которой выполняется вычисление.
Часто представлены два контекста: контекст строки и контекст фильтра . Но на самом деле есть и третья: контекст оценки .
И это возвращает вас к команде CALCULATE , которая снова позволяет пользователю изменить контекст вычисления. В DAX и LuckyTemplates есть два основных класса функций: функции агрегации и функции итерации .
Функции агрегации — это функции, которые агрегируют значения одного столбца. Примеры функций агрегирования включают , и . В то время как большинство функций агрегирования работают только с числовыми значениями или значениями даты, MAX и MIN также работают с текстовыми значениями.
Итерационные функции — это те, которые вычисляют выражение для каждой строки таблицы. Они также известны как X-функции . Примеры включают , , и . У них есть два параметра: таблица для итерации и выражение, которое выполняет вычисление. Это может использовать несколько столбцов из базовой таблицы или из других связанных таблиц.
Вот краткий пример того, как функции агрегации и итерации используются по-разному и при этом дают один и тот же результат:
Заключение
Это руководство по DAX предназначено для помощи новым пользователям LuckyTemplates, которые все еще исследуют и учатся. Это также очень полезно в качестве универсального контрольного списка для опытных разработчиков, которым нужен быстрый курс повышения квалификации. Это руководство — отличный строительный блок для расширенной разработки отчетов в LuckyTemplates.
В LuckyTemplates есть различные ресурсы с учебными пособиями по DAX, от основ до расширенного кодирования. Обязательно ознакомьтесь с ними, чтобы лучше разбираться в языке программирования DAX.
Грег
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.