- Выбирать, когда нужен вычисляемый столбец, а когда мера
- Объяснять контекст строки и контекст фильтра
- Писать основные агрегирующие меры и заранее вычислять их результат
- Писать понятные и безопасные формулы с VAR/RETURN и DIVIDE
Эльвину нужно показать руководителю три числа: общие продажи, средний чек и число клиентов — по всей компании и отдельно по каждому городу и месяцу. В Excel для этого понадобились бы десятки формул. В Power BI мера, один раз написанная на языке DAX (Data Analysis Expressions), сама пересчитывается под любой фильтр, выбранный в визуальном элементе.
| # | City | Product | CustomerID | Quantity | UnitPrice | Amount |
|---|---|---|---|---|---|---|
| 1 | Baku | Headphones | C1 | 2 | 60 | 120 |
| 2 | Ganja | Notebook | C2 | 10 | 5 | 50 |
| 3 | Baku | Keyboard | C1 | 1 | 45 | 45 |
| 4 | Sumgait | Backpack | C3 | 3 | 40 | 120 |
| 5 | Baku | Notebook | C4 | 20 | 5 | 100 |
| 6 | Ganja | Headphones | C1 | 1 | 60 | 60 |
| 7 | Baku | Backpack | C1 | 2 | 40 | 80 |
| 8 | Sumgait | Keyboard | C3 | 2 | 45 | 90 |
Sales (январь–март 2026). Клиенты: C1 — Айсель, C2 — Мурад, C3 — Лейла, C4 — Эльвин. Amount — вычисляемый столбец.Вычисляемый столбец и мера
// Table tools › New column
Amount = Sales[Quantity] * Sales[UnitPrice]// Home › New measure
Total Sales = SUM ( Sales[Amount] )Обе формулы смотрят на одну таблицу, но работают в разное время. Столбец Amount вычисляется один раз для каждой из 8 строк при обновлении и хранится в модели. Мера Total Sales нигде не хранится: она пересчитывается при открытии визуального элемента, при смене среза или выделении в другом визуальном элементе. В области Data у мер значок калькулятора, а вычисляемые столбцы выглядят как обычные столбцы.
| Свойство | Вычисляемый столбец | Measure |
|---|---|---|
| Когда вычисляется | один раз, при обновлении | при каждой отрисовке визуального элемента |
| Память | занимает место в модели | места не занимает |
| Контекст | контекст строки | контекст фильтра |
| Где используется | срезы, оси, заголовки строк и столбцов | Values: числа, проценты, KPI |
Контекст строки и контекст фильтра
Знание формулы о том, «на какой строке я сейчас». В вычисляемом столбце Power BI проходит таблицу построчно: в строке 1 Sales[Quantity] равно 2, Sales[UnitPrice] — 60, поэтому Amount = 120.
Совокупность всех фильтров, наложенных на модель перед вычислением меры: заголовки строк и столбцов визуального элемента, срезы, область Filters, перекрёстное выделение. В строке «Baku» мера Total Sales видит только 4 строки Баку: 120 + 45 + 100 + 80 = 345.
Основные агрегирующие меры
Total Sales = SUM ( Sales[Amount] )
Orders = COUNTROWS ( Sales )
Avg Order = AVERAGE ( Sales[Amount] )
Customers = DISTINCTCOUNT ( Sales[CustomerID] )
Units = SUM ( Sales[Quantity] )Home › New measure). COUNTROWS считает строки таблицы, а DISTINCTCOUNT — различные значения в столбце.| City | Total Sales | Orders | Avg Order | Customers | Units |
|---|---|---|---|---|---|
| Baku | 345 | 4 | 86,25 | 2 | 25 |
| Ganja | 110 | 2 | 55 | 2 | 11 |
| Sumgait | 210 | 2 | 105 | 1 | 5 |
| Итого | 665 | 8 | 83,125 | 4 | 41 |
Store[City]. Обрати внимание: в Customers 2 + 2 + 1 = 5, а итог равен 4 — Айсель (C1) покупала и в Баку, и в Гяндже, а итоговая строка считает её один раз.Переменные (VAR/RETURN) и DIVIDE
Sales per Customer =
VAR SalesAmt = [Total Sales]
VAR Cust = [Customers]
RETURN
DIVIDE ( SalesAmt, Cust )VAR даёт имя промежуточному результату, а RETURN возвращает итоговое выражение. Переменная вычисляется один раз, и формула становится понятной.| City | Total Sales | Customers | Sales per Customer |
|---|---|---|---|
| Baku | 345 | 2 | 172,5 |
| Ganja | 110 | 2 | 55 |
| Sumgait | 210 | 1 | 210 |
| Итого | 665 | 4 | 166,25 |
Почему DIVIDE, а не /? Когда знаменатель равен 0 или пуст (BLANK), / может вернуть ошибку или бесконечность, а DIVIDE возвращает пустое значение, и визуальный элемент остаётся чистым. Третий аргумент задаёт альтернативный результат: DIVIDE ( [Total Sales], [Customers], 0 ). Например, у нового филиала без продаж Sales per Customer будет пустым, а не ошибкой.
В срезе выбрано Category = «Electronics». Что покажут меры Total Sales, Orders, Avg Order, Customers и Sales per Customer? Сначала посчитай на бумаге, затем проверь визуальным элементом.
Показать решениеСкрыть решение
2)
Total Sales = 120 + 45 + 60 + 90 = 315 ₼; Orders = 4.3)
Avg Order = 315 / 4 = 78,75 ₼.4)
Customers: C1, C1, C1, C3 → различные значения C1 и C3 = 2.5)
Sales per Customer = DIVIDE(315, 2) = 157,5 ₼.Ни одну меру мы не меняли — изменился только контекст фильтра.
Главное
- Вычисляемый столбец работает в контексте строки и хранится; мера вычисляется на лету в контексте фильтра.
- Контекст фильтра создают заголовки визуального элемента, срезы, область фильтров и перекрёстное выделение.
DISTINCTCOUNTиAVERAGEне аддитивны: итоговая строка пересчитывается.- Пиши явные меры вместо неявных.
VAR/RETURNупрощает формулы,DIVIDEпри делении на ноль возвращает пустое значение.
Проверь себя
Вопросов: 10. Каждый правильный ответ приносит XP.