Работа с повторяющимися функциями в DAX

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

По мере того, как вы будете больше разбираться в формулах DAX , вы будете использовать эти повторяющиеся функции намного чаще, чем вы думаете. Они гораздо более универсальны, чем простые функции агрегирования, такие как SUM или AVERAGE .

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

Ключевым моментом в итерации функций является то, что они что-то повторяют.

Оглавление

Простая итерация с использованием SUMX

Работа с повторяющимися функциями в DAX

В этом случае я хочу кое-что подвести, но хочу перебрать каждую строку в этой таблице Sales.

Работа с повторяющимися функциями в DAX

И затем в каждой отдельной строке я хочу запустить эту конкретную логику здесь.

Работа с повторяющимися функциями в DAX

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

Работа с повторяющимися функциями в DAX

Цена не существует в этой таблице. И для этой кон��ретной модели он фактически находится в таблице Product.

Работа с повторяющимися функциями в DAX

Следующее, что мне нужно сделать, это вернуться к моей таблице Product, и я могу сделать это с помощью RELATED . Когда мы вычисляем количество, умноженное на соответствующую цену, мы делаем это для каждой отдельной строки. Именно это и происходит внутри этой формулы.

Это ключевые понятия, которые следует помнить, когда мы начинаем делать более сложные вещи.

Альтернативный подход к получению продаж с использованием SUMX

Работа с повторяющимися функциями в DAX

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

Работа с повторяющимися функциями в DAX

Здесь вы увидите, что этот результат точно такой же, как в первом примере (SUMX Tutorial 2) или Total Sales.

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

Работа с повторяющимися функциями в DAX

Как вы можете видеть здесь, все, что я сделал, это поместил здесь меру (Общий объем продаж), и я получил точно такой же результат.

SUMX и логические функции

Работа с повторяющимися функциями в DAX

Здесь я использую SUMX , но он также актуален для AVERAGEX , MINX и MAXX . Это все очень похожие вещи.

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

Как только все эти значения сохранены в памяти, выполняется общий расчет — например, СУММА или СРЗНАЧ .

Работа с повторяющимися функциями в DAX

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

Работа с повторяющимися функциями в DAX

С функцией итерации SUMX я хочу перебрать каждую строку в таблице Sales. И в каждой отдельной строке я хочу рассчитать, превышает ли эта конкретная продажа 2000 долларов. Если это так, я хочу рассчитать общий объем продаж для этой строки. Но если общая сумма продажи составила менее 2000 долларов, то я хочу вернуть ноль. Поэтому я хочу рассчитать только продажи с более высокой стоимостью.

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

Итерация по таблицам

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

Работа с повторяющимися функциями в DAX

Мы будем думать, что каждый отдельный результат здесь имеет определенный контекст. В данном конкретном случае у нас есть контекст клиента.

Работа с повторяющимися функциями в DAX

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

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

Работа с повторяющимися функциями в DAX

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

Работа с повторяющимися функциями в DAX

Здесь VALUES создает виртуальную таблицу . Так что SUMX здесь даже не работает над чем-то физическим. На самом деле это работа над чем-то абсолютно виртуальным.

Простая итерация с использованием MINX

Работа с повторяющимися функциями в DAX

Это похоже на предыдущие примеры, но вместо SUMX мы собираемся запустить какой-то другой тип агрегации после того, как мы переберем каждую отдельную строку.

Работа с повторяющимися функциями в DAX

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

Работа с повторяющимися функциями в DAX

Затем мы хотим вернуть самую минимальную сумму того места, где они были куплены.

Простая итерация с использованием MAXX

Работа с повторяющимися функциями в DAX

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

Заключение

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

Как только вы начнете углубляться в более сложные вычисления, вы увидите, насколько важны эти конкретные функции для возврата значений на уровне контекста.

Существует так много универсальности и так много способов, которыми вы можете выполнять эти вычисления, используя простую формулу, если вы просто знаете, как манипулировать параметрами.

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

Ключевые понятия для итерации функций в LuckyTemplates

Итерация логики через виртуальные таблицы — расширенные концепции DAX в LuckyTemplates

Наслаждайтесь работой над этим.

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