← Программа курса

Пробный урок · бесплатно

Разница между колонкой и мерой

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

Модуль 1. Разница между колонкой и мерой24 минутБез оплаты и без доступа к остальному курсу

Один настоящий урок

Попробуйте урок так, как он устроен в полном курсе

Мы не переставляем практику ради демо: сначала идёт материал урока, затем его штатный практический тренажёр. Открыт только этот один урок; остальные уроки, задания, тесты, файлы и прогресс остаются закрыты.

Карта модуля

Задача и бизнес-смысл

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

Сегодняшний вопрос: «Разница между колонкой и мерой». Практический результат: Сосчитайте общую выручку по всем строкам фактов без ручного сложения. Прежде чем составлять выражение, письменно зафиксируйте измеряемую сущность, числитель, знаменатель (если он нужен) и фильтры. Именно эта спецификация, а не узнаваемое имя функции, определяет правильность будущей меры.

Подробный разбор

Как работает идея

Представьте три счета: 40, 60 и 80 ₽. Общая сумма меняется при добавлении четвёртого, но вычисленный на этапе импорта флаг счета не обязан пересчитываться от выбора сегмента.

Концепция модуля — чем отличается мера от колонки. Сначала отделите обработку каждой строки факта от агрегирования по контексту. Затем опишите, что должно происходить при новых покупателях, дополнительных строках и смене регионального фильтра. Перепутать контекст визуального фильтра с вычислением значения в отдельной строке.

  1. Назовите бизнес-сущность, которая считается: операция, документ, уникальный покупатель или денежная сумма.
  2. Укажите поля, которые определяют ответ; убедитесь, что числовые столбцы не содержат текстовые значения.
  3. Сформулируйте один тест на обычную строку, один — на границу и один — на изменение фильтра.
  4. Только затем выбирайте нужную группу функций DAX и проверяйте результат на искусственных данных.
Формулы

Разбор синтаксиса на другой модели

Пример ниже относится к отдельной демонстрационной модели DemoOrders (и при необходимости DemoClients). Это учебный пример синтаксиса Power BI, а не формула для копирования в проверяемую лабораторию Tablicus.

fxSUM(DemoOrders[Amount])

Изучите, какие имена обозначают таблицы, столбцы, функции и фильтры. Затем своими словами объясните порядок вычисления. Поскольку ваша лаборатория использует Sales и Customers, приведённый пример не является готовым ответом на её задачу. Для зачёта требуется самостоятельно составить выражение по имеющимся полям.

Подробный разбор

Профессиональное погружение: Базовая идея: что важно понять

Мера рассчитывается в момент обращения к ней с учётом текущего фильтра отчёта. Вычисляемая колонка, напротив, хранит значение на уровне строки модели и обычно пересчитывается при обработке данных. Это не вопрос красоты синтаксиса: если аналитик записал общую выручку одинаковым числом во все строки, фильтр по региону не превратит эту колонку в корректную региональную меру. Сначала определите, что должно изменяться при выборе периода и покупателя. Затем решите, является результат характеристикой одной продажи или агрегатом множества продаж.

Теоретическое углубление

DAX особенно чувствителен к различию row context и filter context. Итератор создаёт строковый контекст, но мера в визуализации обычно вычисляется в контексте фильтра. Это объясняет, почему одна и та же формула может показывать разные значения в карточке и в строках матрицы. Выражение нельзя оценить только по тексту: нужно знать, какой набор строк видим. При проверке обучения полезно вручную выписать видимые факты после выбора фильтра и лишь затем рассчитывать сумму. Учебный интерпретатор поддерживает часть языка, поэтому сложные модели необходимо дополнительно проверять в настоящем Power BI.

Практика

Самостоятельный разбор: Две природы расчёта

Ситуация из работы аналитика

В трёх строках фактов значения 40, 60 и 80. Отчёт меняет выбор региона.

Опишите, что должно пересчитываться динамически, а что является свойством строки.

Вопросы к разбору

  • Какое определение показателя или фильтра пришлось бы уточнить у владельца данных для ситуации «Две природы расчёта»?
  • Для занятия «Разница между колонкой и мерой» придумайте дополнительную контрольную запись, чтобы проверить требование, не используя боевые данные.
  • На примере «Две природы расчёта» объясните заказчику без технических терминов, почему при проверке результат изменился или остался прежним.
Практика

Практикум: составьте меру самостоятельно

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

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

  1. Составьте черновик формулы, опираясь на названия доступных полей и подсказку функции.
  2. Запустите выражение на видимых данных; зафиксируйте единицы измерения ответа.
  3. Представьте добавление покупки существующего клиента: должен ли меняться результат?
  4. Проверьте меру на скрытом наборе данных. Если ответ неверен, определите причину в зерне, фильтре или арифметике.
На что обратить внимание

Контроль качества и диагностика ошибок

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

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

  • Фильтр меняется: предскажите направление и величину изменения.
  • Количество строк растёт: отличите повторную покупку от нового покупателя.
  • Ноль или пустое значение: заранее опишите ожидаемое поведение визуализации.
Самопроверка

Рабочая интерпретация результата

Напишите мини-заметку к отчёту по теме «Разница между колонкой и мерой»: кто использует показатель, какая запись составляет его зерно, какое бизнес-правило применено и как проверить расчёт независимо от редактора DAX.

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

Подробный разбор

От бизнес-вопроса к модели данных

Урок «Разница между колонкой и мерой»: сейчас мы разбираем смысл показателя и требования к модели. Вычисляемая колонка сохраняет результат для строки при обновлении модели, мера пересчитывается для текущего фильтра отчёта. Из этого следует, что выражение, полезное в детализации по документам, может быть неправильным выбором для итоговой карточки.

В независимой модели Tickets есть три обращения с затратами 80, 120 и 200. Карточка затрат по всем обращениям показывает 400; при выборе одного подразделения на 80 и 120 результат должен стать 200.

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

СправочникНезависимый контрольный расчёт

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

В независимой модели Tickets есть три обращения с затратами 80, 120 и 200. Карточка затрат по всем обращениям показывает 400; при выборе одного подразделения на 80 и 120 результат должен стать 200.

Добавьте четвёртое обращение на 40 только во второе подразделение: итог по всем обращениям становится 440, а карточка первого подразделения должна остаться 200.

  1. Выпишите значение до изменения данных.
  2. Измените ровно одно наблюдение и пересчитайте итог.
  3. Назовите фильтр, который может менять результат, и тот, который не должен его менять.
Практика

Самопроверка модели и результата

Для задания «Разница между колонкой и мерой» не копируйте готовое выражение. Сначала опишите нужную меру на языке бизнеса и попробуйте выполнить её в редакторе DAX.

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

  1. Проверьте направление связи и кардинальность ключей, если используется справочник.
  2. Сравните итог по всем строкам с итогом после фильтра — какой должен измениться?
  3. Подготовьте отрицательный тест: данные, при которых неверная мера даст правдоподобный ответ.
  4. После успешной проверки сформулируйте одно предложение для руководителя без названий функций DAX.

Практика на сайте

Проверьте свои навыки в настоящем тренажёре

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

DAX · Учебная модель Power BI

Лаборатория 1. Revenue

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

0%Проверка

Бизнес-задача

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

Данные для расчёта

Откройте таблицы, найдите нужные поля и проверьте связи модели.

Sales5 записей
SaleIDTEXTCustomerIDTEXTRegionTEXTRevenueNUMBERQtyNUMBERPriceNUMBER
S01C01North120260
S02C02South90330
S03C01North80420
S04C03West50150
S05C04South160280
Customers4 записей
CustomerIDTEXTTierTEXTNameTEXT
C01GoldAstra
C02SilverBeta
C03SilverGamma
C04GoldDelta

Связи модели: Sales[CustomerID] → Customers[CustomerID]

Учебное подмножество DAX

Пробный результат не сохраняется в личном кабинете.

Пробный урок завершён

Остальная программа остаётся закрытой

Покупка курса открывает остальные уроки, встроенную практику, тесты, прогресс, материалы и итоговую аттестацию. Пробный урок не открывает личный кабинет курса и не даёт доступ к остальным материалам.