Расчет недельных продаж с помощью DAX в LuckyTemplates
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Я видел некоторую путаницу с повторяющимися функциями в DAX всякий раз, когда работал с участниками LuckyTemplates на форуме. Итак, мы сделаем обзор того, чего можно добиться с помощью этих функций и почему вам следует их использовать. Вы можете посмотреть полное видео этого урока в нижней части этого блога.
По мере того, как вы будете больше разбираться в формулах DAX , вы будете использовать эти повторяющиеся функции намного чаще, чем вы думаете. Они гораздо более универсальны, чем простые функции агрегирования, такие как SUM или AVERAGE .
У меня есть несколько примеров, и я хочу проработать логику в каждом из этих примеров, чтобы вы могли очень хорошо понять, что на самом деле происходит, когда логика запускается с помощью этих формул.
Ключевым моментом в итерации функций является то, что они что-то повторяют.
Оглавление
Простая итерация с использованием SUMX
В этом случае я хочу кое-что подвести, но хочу перебрать каждую строку в этой таблице Sales.
И затем в каждой отдельной строке я хочу запустить эту конкретную логику здесь.
Давайте быстро перейдем к нашей очень простой таблице Sales, где я хочу запустить некоторую логику для каждой отдельной строки. А потом я хочу умножить количество на цену.
Цена не существует в этой таблице. И для этой кон��ретной модели он фактически находится в таблице Product.
Следующее, что мне нужно сделать, это вернуться к моей таблице Product, и я могу сделать это с помощью RELATED . Когда мы вычисляем количество, умноженное на соответствующую цену, мы делаем это для каждой отдельной строки. Именно это и происходит внутри этой формулы.
Это ключевые понятия, которые следует помнить, когда мы начинаем делать более сложные вещи.
Альтернативный подход к получению продаж с использованием SUMX
В этом примере SUMX снова выполняет итерацию по таблице Sales. Таким образом, мы запускаем эту логику в каждой отдельной строке и вычисляем количество, умноженное на цену в каждой отдельной строке, а затем агрегируем их после завершения всех итераций.
Здесь вы увидите, что этот результат точно такой же, как в первом примере (SUMX Tutorial 2) или Total Sales.
Сюда можно поместить множество разных вещей — это может быть мера, а можно разветвиться с итерационной функцией. Вам не нужно ссылаться на определенные столбцы, чтобы правильно выполнить расчеты.
Как вы можете видеть здесь, все, что я сделал, это поместил здесь меру (Общий объем продаж), и я получил точно такой же результат.
SUMX и логические функции
Здесь я использую SUMX , но он также актуален для AVERAGEX , MINX и MAXX . Это все очень похожие вещи.
Еще одна ключевая вещь, которую следует помнить об этих повторяющихся функциях, заключается в том, что они запускают логику в каждой отдельной строке и сохраняют результат в памяти.
Как только все эти значения сохранены в памяти, выполняется общий расчет — например, СУММА или СРЗНАЧ .
Вернемся к нашему примеру. Здесь вы можете видеть, что сумма в этом столбце немного меньше, чем в предыдущих столбцах.
С функцией итерации SUMX я хочу перебрать каждую строку в таблице Sales. И в каждой отдельной строке я хочу рассчитать, превышает ли эта конкретная продажа 2000 долларов. Если это так, я хочу рассчитать общий объем продаж для этой строки. Но если общая сумма продажи составила менее 2000 долларов, то я хочу вернуть ноль. Поэтому я хочу рассчитать только продажи с более высокой стоимостью.
Некоторые люди скажут, что я мог бы просто поместить логику в вычисляемый столбец. Но мы не хотим этого делать, потому что есть гораздо лучший способ запустить эту логику внутри DAX , чем физически размещать ее внутри столбца.
Итерация по таблицам
Вот где итерационные функции действительно удивительны. Вы можете не только перебирать физическую таблицу, как мы это делали раньше, но также можете перебирать любую другую виртуальную таблицу, которую вы вводите в качестве параметра.
Мы будем думать, что каждый отдельный результат здесь имеет определенный контекст. В данном конкретном случае у нас есть контекст клиента.
В этом контексте я хочу выполнить итерацию по каждому отдельному местоположению и посмотреть, достиг ли конкретный клиент продаж выше 5000 долларов.
Если это так, я хочу рассчитать общий объем продаж. Но если это не так, я хочу, чтобы он возвращал ноль.
Так что в этом конкретном случае я рассчитываю места с высокой ценностью, в которых этот клиент покупает, и общий объем продаж, которые они совершают в этих местах.
Здесь VALUES создает виртуальную таблицу . Так что SUMX здесь даже не работает над чем-то физическим. На самом деле это работа над чем-то абсолютно виртуальным.
Простая итерация с использованием MINX
Это похоже на предыдущие примеры, но вместо SUMX мы собираемся запустить какой-то другой тип агрегации после того, как мы переберем каждую отдельную строку.
В этом конкретном случае мы прописываем каждое отдельное место для каждого клиента и вычисляем общий объем продаж для каждого из этих мест.
Затем мы хотим вернуть самую минимальную сумму того места, где они были куплены.
Простая итерация с использованием MAXX
Я также делаю нечто подобное здесь, просто чтобы показать вам универсальность повторяющихся функций. Я просматриваю каждое отдельное место, просматриваю их продажи, но затем возвращаю максимальное количество продаж в этих местах, поэтому мы видим здесь более высокие цифры.
Заключение
Ключевой момент, который я хотел затронуть в этой статье, — это диапазон вариантов, которые у вас есть внутри итерационной функции, по сравнению с простой суммой или средним значением.
Как только вы начнете углубляться в более сложные вычисления, вы увидите, насколько важны эти конкретные функции для возврата значений на уровне контекста.
Существует так много универсальности и так много способов, которыми вы можете выполнять эти вычисления, используя простую формулу, если вы просто знаете, как манипулировать параметрами.
Если вам понравилось узнавать об этих повторяющихся функциях , вы можете просмотреть эти ссылки, чтобы получить дополнительную информацию по этой теме:
Ключевые понятия для итерации функций в LuckyTemplates
Итерация логики через виртуальные таблицы — расширенные концепции DAX в LuckyTemplates
Наслаждайтесь работой над этим.
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.