Расчет недельных продаж с помощью DAX в LuckyTemplates
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
В этом учебном пособии вы узнаете о различных итерационных функциях и о том, как эффективно использовать их в своих вычислениях.
Я часто обсуждаю, что вычисляемые столбцы не требуются при выполнении некоторых вычислений. Это из-за итераторов.
Итераторы или итерирующие функции могут помочь вам выполнить расчет без физического помещения результатов в таблицу.
Этот метод может помочь вам сэкономить память, необходимую для загрузки модели данных LuckyTemplates . В следующих разделах я покажу вам, как оптимизировать ваши вычисления с помощью итераторов.
Оглавление
Вычисление общего объема продаж с использованием функции итератора
Для начала создайте новую меру для общих затрат . Обязательно выберите группу мер, в которую вы хотите поместить эту новую меру.
Нажмите Shift и Enter , чтобы перейти на строку вниз, прежде чем вы поместите первую итерирующую функцию, которая называется .
В строке формул LuckyTemplates вы уже можете видеть, что именно вам нужно поставить после функции, как это предлагает IntelliSense. Для SUMX после него нужно добавить таблицу.
Формула SUMX будет запускать логику в каждой отдельной строке данной таблицы. Вот почему итераторы связаны с контекстом строки . Внутри меры итераторы могут превратить формулу в контекст строки.
Вам нужно будет сослаться на таблицу Sales после функции SUMX . Чтобы рассчитать общие затраты, необходимо умножить количество заказа на общую стоимость единицы .
Нам вообще не нужно ссылаться на новый столбец, который был создан. Общие затраты — это мера, и я могу внести ее в свою таблицу, чтобы оценить наши общие затраты.
Теперь перетащите меру внутрь таблицы, чтобы увидеть результаты. Убедитесь, что вы выбрали исходный контекст из фильтра «Город» .
Мы можем изменить первоначальный контекст нашего расчета, щелкнув по различным регионам, которые мы хотим просмотреть.
Общие затраты работают аналогичным образом с точки зрения исходного контекста. Исходный контекст применяется к таблице «Продажи», но затем в каждом из этих отдельных результатов мы вычисляем количество заказа, умноженное на общую стоимость единицы.
За кулисами нашей модели данных мы включили наш фильтр, и у нас есть контекст, поступающий из нашей таблицы «Регионы», и другой контекст, поступающий из нашей таблицы «Дата». Они перетекают в нашу таблицу Sales, которая фильтруется повторяющейся функцией SUMX.
Поскольку функция SUMX виртуально оценивает каждую строку таблицы Sales , нет необходимости в физическом столбце для результатов.
После исходного контекста SUMX получает произведение количества заказа и общей стоимости единицы для каждой отдельной строки. Наконец, он оценивает все вычисленные результаты из всех строк.
Если вы заметили, исходный столбец «Затраты» был создан с помощью вычисляемого столбца. Как я уже сказал, в этом нет необходимости, поскольку итераторы уже могут выполнять свою работу. Вы можете удалить его, потому что он может занимать ненужную память в вашей модели.
Итерирующие формулы выполняют вычисления в каждой отдельной строке, а агрегирующие формулы — нет.
Это простой пример, но вы можете пойти дальше и написать операторы IF и операторы SWITCH. Кроме того, вам не нужно создавать физическую таблицу; вместо этого вы можете использовать виртуальный.
Большая часть этой информации подробно рассматривается в курсе Mastering DAX , но это только для того, чтобы показать вам, как начать повторять функции и как начать их использовать, когда это уместно.
Если вы чувствуете необходимость создать вычисляемый столбец внутри таблицы фактов, я почти гарантирую, что итерирующая функция сделает эту работу за вас.
Использование других функций итератора DAX
Теперь я покажу вам еще один пример того, как итераторы могут творить чудеса с вашими вычислениями. На этот раз давайте посчитаем среднюю стоимость.
Просто скопируйте формулу общих затрат и вставьте ее в новую меру. Вам просто нужно изменить имя на средние затраты , а затем использовать вместо SUMX .
Новая формула использует аналогичную логику, поскольку оценивает каждую строку таблицы Sales . Кроме того, вам все еще нужно получить произведение количества заказа и общей стоимости единицы . Единственная разница здесь в том, что вместо суммы формула вычисляет среднее значение.
Теперь, если вы внесете показатель «Средние затраты» в таблицу, вы увидите, как он соотносится с показателем «Общие затраты» .
Удивительно, как вы можете запустить подобную логику, просто изменив итерирующую функцию.
Дополнительные методы оптимизации данных
Чтобы оптимизировать таблицу, вы можете удалить лишнюю информацию, например столбец «Общий доход» .
Поскольку вы можете легко получить средние затраты, вам больше не понадобится столбец «Общий доход» в вашей таблице. Пока у вас есть столбцы Цена за единицу и Общая стоимость за единицу , все в порядке.
Теперь вы можете создать новую меру для общего объема продаж (итерация) с помощью функции СУММ . Вам просто нужно сослаться на таблицу продаж , а затем получить произведение количества заказа и цены за единицу .
После этого вы можете сравнить результаты в столбцах «Общий объем продаж» и «Общий объем продаж (итерация)» . У них обоих одинаковые результаты, верно?
С точки зрения производительности нет большой разницы между использованием вычисляемых столбцов и итераторов. Но когда дело доходит до модели данных, функция итератора может избавиться от целого столбца и сохранить сотни строк данных.
Кроме того, вы можете удалить лишние столбцы, поскольку итераторы могут вычислять необходимые результаты виртуально. Эта практика сделает ваш стол намного тоньше, а вашу модель — намного быстрее. Убедитесь, что вы применяете этот метод оптимизации в своих расчетах.
Заключение
Подводя итог, итерирующая функция оценивает каждую строку, в то время как агрегаторы этого не делают.
Буква X в конце функции облегчает идентификацию итераторов. Примеры включают функции SUMX , AVERAGEX , , и другие.
Использование итерационных функций не приведет к созданию дополнительных физических таблиц . Это может помочь вам сэкономить память в LuckyTemplates.
Примеры для СУММ и СРЗНАЧ , которые я рассмотрел, представляют собой простые сценарии. Позже мы перейдем к более сложным, добавив операторы IF и операторы SWITCH .
Всего наилучшего!
Функции DAX в LuckyTemplates: использование итераторов
, повторяющих функции в языке DAX — подробный пример
работы с повторяющимися функциями в DAX
*****
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.