Объяснение контекста строки в LuckyTemplates

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

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

Напомним, что мы обсудили, что существует три типа контекстов: контекст оценки , контекст фильтра и контекст строки .

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

Оглавление

Понимание контекста строки

Контекст строки связан с итерацией.

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

Контекст строки VS Контекст фильтра

В нашем примере формула вычисляется через контекст фильтра , потому что это простая агрегация. Он суммирует весь столбец «Количество» после того, как все первоначальные фильтры были установлены.

Объяснение контекста строки в LuckyTemplates

Начальным фильтром в таблице «Продажи» является «Продукт 1». Суммируя каждое проданное количество, мы получаем 165.

Объяснение контекста строки в LuckyTemplates

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

Объяснение контекста строки в LuckyTemplates

Примеры итерационных функций включают СУММЛИС , СРЗНАЧ , МНОЖЕХ и СЧЁТЕС . В этом случае мы будем использовать SUMX .

Функция SUMX попросила меня ввести таблицу, поэтому я собираюсь добавить таблицу Sales. А затем он попросил меня ввести выражение, поэтому я просто вставил его в столбец «Количество».

Эта функция сильно отличается от первой функции, но я получаю точно такой же результат, когда перетаскиваю ее.

Объяснение контекста строки в LuckyTemplates

Здесь мы получаем точно такие же результаты, потому что в конечном счете это тот же самый расчет. Просто рассчитывали по-другому.

Объяснение контекста строки в LuckyTemplates

Итерация проданного количества рассчитывалась с использованием контекста строки , а общее проданное количество рассчитывалась с использованием контекста фильтра .

Вычисление количества проданных итераций с использованием контекста строки

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

В этом случае мы указываем таблицу «Продажи», а затем просматриваем каждую строку в столбце «Количество».

Объяснение контекста строки в LuckyTemplates

Во время начальной оценки Продукт 1 будет определяться тем, что отфильтровано в столбце идентификатора продукта. А затем он подсчитывает строки в столбце «Количество». Каждый раз, когда он попадает в строку, он входит и сохраняет результат в памяти.

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

Объяснение контекста строки в LuckyTemplates

Зачем использовать контекст строки или итерирующую функцию?

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

Объяснение контекста строки в LuckyTemplates

Например, для каждой строки в таблице «Продажи» количество умножается на 2. Теперь вы увидите, что происходит тот же процесс расчета, но мы получаем разные результаты.

Объяснение контекста строки в LuckyTemplates

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

Мы также можем писать здесь разные вещи, включая расширенную логику, такую ​​как логика IF или SWITCH .

Объяснение контекста строки в LuckyTemplates

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

Ключевые примечания к пониманию контекстов в LuckyTemplates

Чтобы повторить все ключевые моменты, связанные с контекстом, помните, что вычисления в DAX выполняются в два этапа. Первым шагом всегда является контекст оценки . Очень важно, каков контекст оценки .

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

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

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

Заключение

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

Вот несколько рекомендуемых ссылок, чтобы узнать больше о применении контекста строки в LuckyTemplates:

Контекст оценки — (1.8) Полное руководство для начинающих по DAX

Контекст фильтра — (1.9) Полное руководство для начинающих по 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 для своих бизнес-отчетов.