Расчет недельных продаж с помощью DAX в LuckyTemplates
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
В этом руководстве мы обсудим переменные, в том числе функции и CALCULATE . Вы поймете, как это поможет повысить производительность ваших запросов DAX и предоставить точные результаты.
Переменные следует использовать как можно чаще, потому что они могут легко найти коды для оптимизации. Они предотвращают получение неверных результатов и экономят ваше время на поиск ошибки. Однако переменные иногда препятствуют пересчету значения. Поэтому, как только они определены со значением, это значение не может быть изменено, даже с помощью CALCULATE .
Важно знать, где вы должны определять и использовать переменные, потому что их использование внутри и вне итерации приведет к разным результатам. Они должны быть определены близко к тому месту, где они будут использоваться. Это также помогает разбивать длинные коды, облегчая их понимание и отладку.
Оглавление
Создание запросов DAX с помощью CALCULATE и FILTER
Существуют разные способы получения результатов и ответов в DAX. Вам необходимо разработать свой собственный стиль и порядок создания отчета, чтобы вам было комфортно работать с тем, над чем вы работаете. Даже если у вас есть собственный стиль, вы все равно должны следовать определенным рекомендациям, в том числе использовать CALCULATE вместо других методов, таких как FILTER .
FILTER может отправлять много несжатых данных в обработчик формул и потенциально может инициировать CallBackDataID. Меры будут использоваться здесь, чтобы показать результаты CALCULATE и FILTER . Это также имеет определенную меру, которая является локальной для запроса. Определенные меры нельзя найти в модели данных, но они могут ускорить разработку и устранение неполадок в коде.
В первой строке вы видите меру, определяющую переменную для даты. Это означает, что он фильтрует таблицу фактов для дат, которые приходятся на 31 марта 2016 года или позже. Вы также можете увидеть простую меру общего объема продаж, которая повторяет таблицу фактов продаж и умножает количество и текущую цену.
Следующая мера — использование внутри . Если вы помните из модуля CallBackDataID , использование IF внутри функции SUMX создаст CallBackDataID .
Эта мера фильтрует всю таблицу Fact Sales. Он удаляет фильтры из таблицы Date.
Вы должны быть осторожны при фильтрации всей таблицы, потому что она также будет фильтровать все столбцы, которые находятся на одной стороне отношения «один ко многим».
Эта мера такая же, как и предыдущая мера; единственная разница в том, что он не фильтрует всю таблицу. Он использует SUMX только для итерации отфильтрованной таблицы.
Это еще одна мера, которая фильтрует таблицу «Продажи фактов», но на этот раз она применяется только к тому столбцу, в котором она находится.
Последняя мера использует CALCULATE и модель данных для фильтрации и извлечения данных.
Запустите и проверьте каждую меру
Во-первых, запустите измерение ЕСЛИ . Обязательно очистите кеш перед выполнением запроса и включите параметры времени сервера и план запроса.
Хотя он предоставляет правильные данные, производительность низкая из-за CallBackDataID и 3 Durations.
Если вы запустите меру, которая фильтрует всю таблицу Fact Sales, вы все равно сможете увидеть CallBackDataID . Он также сгенерирует 15 003 строки и выдаст неправильные результаты.
Когда вы запускаете меру, которая не фильтрует всю таблицу Fact Sales, вы получите правильные результаты. Однако вы по-прежнему будете видеть CallBackDataID и материализованные 15 003 строки, но только 7 строк вывода.
Запустите следующую меру, которая фильтрует столбец. Вы получите правильные результаты и устраните CallBackDataID . Но вы все еще можете видеть, что он материализовал много строк.
Запустите меру CALCULATE . Вы можете видеть, что он материализовал только 10 строк и сгенерировал правильные данные за 5 миллисекунд.
Это самая быстрая из всех вышеперечисленных мер, потому что она не имеет CallBackDataID и извлекает только 10 строк. Это показывает, насколько впечатляет CALCULATE в получении быстрых и точных результатов.
Если вы выпол��яете все запросы или меры DAX, вы можете увидеть, какой из них является самым медленным и самым быстрым в зависимости от продолжительности. Вы также можете увидеть результаты каждой меры.
Заключение
Переместив фильтры в CALCULATE, вы сэкономите время и материализацию, поскольку CallBackDataID будет устранен. Вам не придется повторять данные дважды. Это также повысит производительность вашего DAX и поможет вам улучшить свои навыки разработки.
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.