Как использовать итерирующую функцию в 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

*****






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 для своих бизнес-отчетов.