Как максимально использовать функцию INTERSECT — расширенный DAX

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

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

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

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

Оглавление

Демонстрация уникальной идеи с использованием функции INTERSECT

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

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

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

Как максимально использовать функцию INTERSECT — расширенный DAX

Затем у меня есть столбцы для всех клиентов. Столбцы Total Sales и Sales LM показывают клиентов, которые приобрели истории за текущий месяц, а также за последний месяц. Формула общего объема продаж очень проста. Это просто сумма всех продаж от определенного клиента.

Как максимально использовать функцию INTERSECT — расширенный DAX

Формула Sales LM — это простая формула общего объема продаж, разветвляющаяся на вычисление логики времени с использованием DATEADD для возврата к предыдущему месяцу.

Как максимально использовать функцию INTERSECT — расширенный DAX

Как максимально использовать функцию INTERSECT — расширенный DAX

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

Как мы динамически вычисляем клиентов, совершивших покупки два месяца подряд? Это то, что вы можете увидеть в колонке Customers 2M in A Row .

Теперь я также хочу знать общий объем продаж от этих клиентов, поэтому я добавил Продажи от клиентов 2M в столбце A Row.

Как максимально использовать функцию INTERSECT — расширенный DAX

Идентификация постоянных клиентов с помощью функции ПЕРЕСЕЧЕНИЕ

Давайте посмотрим, насколько полезен INTERSECT , когда дело доходит до поиска постоянных клиентов. Вот формула для клиентов 2M подряд .

Как максимально использовать функцию INTERSECT — расширенный DAX

В этой формуле я поместил две виртуальные таблицы, которые являются внешними переменными ( VAR ) внутри функции INTERSECT . По сути, он оценивает список элементов или строк, которые присутствуют в первой таблице, но не во второй.

Как максимально использовать функцию INTERSECT — расширенный DAX

Исходной таблицей здесь является CustomerTM , которая обозначает тех клиентов, которые совершили покупку в этом месяце. Затем формула проверяет, указаны ли эти клиенты в таблице CustomerLM .

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

Затем я использовал функцию для подсчета оставшихся клиентов.

Как максимально использовать функцию INTERSECT — расширенный DAX

Теперь поговорим о создании виртуальных столов для тех клиентов, которые совершали покупки 2 месяца подряд.

Как максимально использовать функцию INTERSECT — расширенный DAX

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

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

Вот что интересного в этом расчете, который у нас есть сейчас.

Как максимально использовать функцию INTERSECT — расширенный DAX

Формула проверяет только каждую строку клиентов, потому что клиенты отфильтрованы. Если продаж за предыдущий месяц по конкретной строке (покупателю) нет, то и оценивать нечего. Таким образом, столбец Customers 2M In A Row пуст. Но если у клиента есть предыдущая запись, она считается как 1 .

Например, если мы посмотрим на данные для Адама Томпсона, они вернут 1 в столбце «Клиенты 2 млн в ряду» . Это означает, что у этого клиента есть запись как за последний месяц, так и за два месяца до этого.

Повторное использование формулы для другого контекста

Вы можете не сразу осознать важность использования INTERSECT , но есть действительно веская причина, по которой вам нужно использовать эту формулу. Это в основном потому, что вы можете повторно использовать этот расчет в самых разных контекстах. Взгляните на этот пример ниже.

Как максимально использовать функцию INTERSECT — расширенный DAX

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

Вы можете увидеть в столбце «Клиенты 2M подряд» точное количество клиентов, соответствующих этим критериям.

Под этой таблицей находится еще одна визуализация, которая демонстрирует те же данные для клиентов 2M In A Row по кодам штатов .

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

Вот почему я сказал, что INTERSECT очень мощен. Вместо того, чтобы просто писать операторы ЕСЛИ , вы можете использовать эти функции ПЕРЕСЕЧЕНИЯ в своей формуле.

Расчет общего объема продаж от постоянных клиентов

Кроме того, мы работаем на общее количество продаж от наших постоянных клиентов .

Результаты в столбце Продажи от клиентов 2M In A Row представляют собой сумму покупок клиента за текущий и предыдущий месяц. Обратите внимание, что мы можем получить этот результат только в том случае, если клиент совершал покупки два месяца подряд. 

Это формула общего объема продаж постоянных клиентов.

Как максимально использовать функцию INTERSECT — расширенный DAX

Здесь вы можете видеть, что схема почти такая же. Единственная разница здесь в том, что вместо COUNTROWS я использовал функцию CALCULATE для изменения контекста вычисления. 

Это потому, что здесь нам нужна общая сумма продаж от клиентов. Но, как видите, я все еще использую функцию ПЕРЕСЕЧЕНИЕ . Это очень полезно, когда дело доходит до анализа Парето. Но вы также можете применить эту функцию различными способами.

Включение INTERSECT для клиентов за последние три месяца

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

Как максимально использовать функцию INTERSECT — расширенный DAX

Все, что я добавил, — это другой расчет, который перескакивает на два месяца назад, а не на один.

Как максимально использовать функцию INTERSECT — расширенный DAX

После этого я добавил функцию ПЕРЕСЕЧЕНИЕ внутрь другой функции ПЕРЕСЕЧЕНИЕ . Таким образом, он будет оценивать не только клиентов за текущий месяц, но и историю покупок за последний месяц. Он также проверит, купил ли конкретный клиент 2 месяца назад.

Чтобы добавить эти данные в свою таблицу, просто перетащите формулу Customers 3M In A Row в таблицу.

Как максимально использовать функцию INTERSECT — расширенный DAX

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


Как понять виртуальные таблицы внутри итерирующих функций в LuckyTemplates
Глубокое погружение в RANKX — концепции формул DAX в LuckyTemplates
Внедрение групп мер DAX в отчеты LuckyTemplates

Заключение

Как упоминалось ранее, INTERSECT — это табличная функция, и ее можно использовать по-разному.

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

Удачи в изучении этого расширенного руководства по 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 для своих бизнес-отчетов.