Добавить меру в сводную таблицу в excel

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Еще…Меньше

Меры (также называемые вычисляемыми полями) — одна из самых эффективных возможностей Power Pivot. Они часто используются при анализе данных. Это вычисления, создаваемые для оценки результата относительно других факторов, имеющих отношение к анализу, таких как объем продаж по времени, региону, организации или товару.

Некоторые меры можно легко создать, например меры, использующие стандартную агрегатную функцию, например СУММ или СПБ, и созданные с помощью функции авто суммирования в окне Power Pivot, или неявные меры, созданные в Excel путем простого перетаскиванием поля в область значений. Другие могут быть более сложными, например для следующих связей или фильтрации результатов, требующие формулы, создаваемой с помощью DAX.

Так как существуют разные типы мер и их можно создавать в разных местах, важно понимать, какой тип уместен в том или ином случае. Дополнительную информацию см. в статье Меры в Power Pivot.

Создание неявной меры в Excel

  1. Щелкните сводную таблицу.

  2. В списке Поля сводной таблицы перетащите поле в область Значения.

Неявные меры могут использовать только стандартные агрегатные функции (SUM, COUNT, MIN, MAX, DISTINCTCOUNT или AVG) и формат данных, заданный для этого агрегирования. Кроме того, неявные меры могут использоваться только в сводной таблице или диаграмме, для которой они были созданы.

Создание меры в окне Power Pivot с использованием автосуммирования

  1. Щелкните столбец.

  2. Щелкните Вычисления > Автосумма и выберите агрегат.

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

Создание меры в окне Power Pivot с помощью области вычислений

  1. Щелкните В начало > Просмотр > Область вычисления.

  2. Щелкните пустую ячейку в области вычислений.

  3. В строке формул в верхней части таблицы введите формулу в формате <имя меры>:<формула>

  4. Нажмите клавишу ВВОД, чтобы принять формулу.

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

Создание меры с помощью диалогового окна «Мера» в Excel

  1. В окне Excel выберите Power Pivot > Вычисления > Меры > Создать меру.

  2. В диалоговом окне Мера щелкните стрелку вниз в поле Имя таблицы и выберите таблицу, в которой должна находиться мера.

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

  3. В поле Имя меры введите имя.

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

  4. В текстовом поле Формула поместите курсор за знаком равенства (=) и введите формулу.

  5. Нажмите кнопку Проверить формулу для проверки.

  6. В списке Категория выберите тип меры.

    Тип меры не влияет на работу формулы. Он нужен только для информации.

  7. Если формула выдержала проверку, нажмите кнопку ОК.

Меры, созданные в диалоговом окне «Мера» в Excel, хранятся в выбранной таблице. Вы можете их просмотреть и изменить в диалоговом окне «Управление мерами» в Excel или в области вычислений таблицы в окне Power Pivot. Меры, созданные с помощью этого метода, являются явными.

К началу страницы

Нужна дополнительная помощь?

Файлы к уроку:

  • Для спонсоров Boosty
  • Для спонсоров VK

Ссылки:

  • Страница курса
  • Плейлист YouTube
  • Плейлист ВК

Описание

В этом уроке мы научимся создавать простые меры в Power Pivot. Помимо этого мы будем активно пользоваться сводными таблицами, поэтому если вы в них не разбираетесь, то начнете их понимать намного лучше.

В этом уроке мы изучим/повторим:

  • Как создавать и редактировать меры в Power Pivot
  • Как создать сводную таблицу
  • Как в сводной отобразить только Топ лучших/худших
  • Как создать сводную диаграмму
  • Функция SUM
  • Функция DISTINCTCOUNT
  • Функция COUNTROWS
Динамика суммы продаж по годам

Сначала создадим меру Sum of Sales:

=SUM('Sales'[Sales])

После этого создадим сводную таблицу и линейную сводную диаграмму к ней. В строках будет номер месяца, в столбцах год, в значениях — наша созданная мера:

Сумма продаж по подкатегориям

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

Выручка и прибыль по регионам и категориям

Создадим меру, которая вычисляет прибыль:

=SUM('Sales'[Profit])

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

Динамика прибыли по подкатегориям

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

Прибыльность каждого товара

Создадим меру Profitability, в которой вычислим прибыльность каждого товара:

=[Sum of Profit] / [Sum of Sales]

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

Количество проданных уникальных товаров из каждой подкатегории за каждый год

Мера для вычисления количества уникальных проданных товаров:

=DISTINCTCOUNT('Sales'[Product ID])

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

Курс Power Pivot Базовый

Номер урока Урок Описание
1 Power Pivot Базовый №1. Простые вычисляемые столбцы, первая мера В этом уроке вы научитесь создавать простые вычисляемые столбцы в Power Pivot, а также создадите свою первую простую меру.
2 Power Pivot Базовый №2. Простые меры В этом уроке мы научимся создавать простые меры Power Pivot. Мы изучим функции SUM, COUNTROWS, DISTINCTCOUNT. Еще вы сможете повторить или изучить как работать со сводными таблицами в Excel и как создавать диаграммы Excel.
3 Power Pivot Базовый №3. Функция CALCULATE В этом уроке мы изучим функцию CALCULATE в Power Pivot, а также вспомним функции SUM, DISTINCTCOUNT и еще создадим условный столбец в данных.
4 Power Pivot Базовый №4. Как работает DAX В этом теоретическом уроке мы изучим как работают формулы DAX.
5 Power Pivot Базовый №5. Невозможно создать диаграмму этого типа В этом уроке мы разберем еще 1 способ обойти ошибку Невозможно создать диаграмму этого типа. Мы изучим еще одну формулу для создания динамического именного диапазона и создадим еще одну визуализацию — диаграмму дерево.
6 Power Pivot Базовый №6. Функции ALL, ALLSELECTED В этом уроке мы продолжим изучать функцию CALCULATE, а именно изучим функции ALL, ALLSELECTED, которые используются в параметре Фильтр.
7 Power Pivot Базовый №7. Множество таблиц, повторение пройденного В этом уроке мы начнем работать с множеством таблиц. Мы научимся создавать связи между таблицами и повторим почти все, что проходили ранее, но уже со множеством таблиц в модели данных.
8 Power Pivot Базовый №8. Несвязанные таблицы В этом видео я расскажу, что такое несвязанные таблицы и как ими пользоваться. Мы разберем пример с ценовыми порогами. Допустим вы хотите в сводной показать продажи товаров с ценой от 1 до 3 долларов.
9 Power Pivot Базовый №9. Функция FILTER В этом уроке мы изучим одну из важнейших DAX функций — FILTER. Она используется в параметре фильтра функции CALCULATE, когда в сравнении участвует мера.
10 Power Pivot Базовый №10. Работа с датой В этом уроке мы изучим функции для работы с датами, которые помогут нам вычислить сумму в том же периоде прошлого года, сумму с начала года и нарастающий итог за все время.
11 Power Pivot 11. Пользовательский календарь ч. 1 Вам нужно выполнить вычисления, опираясь на внутренний календарь компании, например, период в вашей компании начинается 29 числа, а заканчивается 28 числа следующего месяца.
12 Power Pivot Базовый №12. Посчитать рабочие дни Посчитаем количество рабочих дней в каждом месяце и среднюю сумму продаж в день для каждого месяца.
13 Power Pivot Базовый №13. Наборы (Сеты), ассиметричные сводные таблицы Научимся пользоваться наборами для создания асимметричных сводных таблиц, изучим функцию КУБЗНАЧЕНИЯ.
14 Power Pivot Базовый №14. Переключение детализации (Наборы, MDX, HASONEFILTER, VALUES) Создадим срез для переключения детализации с месяца на квартал.

Для начала создадим сводную таблицу из нашей модели данных Power Pivot, что также можно сделать двумя способами:

      2. Нажав на кнопку «Сводная таблица» на вкладке «Вставка» в окне Excel

В результате мы получим пустую сводную таблицу на новом листе.

Теперь приступим непосредственно  к созданию новой меры, что опять-таки можно сделать двумя способами:

Появится окно с заголовком «Меры», которое мы в дальнейшем будем называть просто «редактором мер».

Обратите внимание на поле со знаком «=». Не будем пока отвлекаться на остальные атрибуты редактора мер, а просто напишем в этом окне следующую формулу:

Как видите кнопка «ОК» ещё неактивна, и чтобы её активировать нам нужно подобрать для нашей меры соответствующее имя и ввести его в поле «Имя меры:».

Жмём «ОК» и перетаскиваем нашу меру в поле «Значения».

Поэкспериментируем с нашей новой мерой ещё. Перетащим НомерМесяца в поле «Строки» и Год в поле «Столбцы».

Как видим наша мера работает нормально.

Пока, что мы не сделали ничего выдающегося. Т.е. тот же самый результат можно было получить просто перетащив в поле «Значения» столбец СуммаПродаж.

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

Давайте создадим ещё одну простую меру суммирования для Маржи.

=SUM(t_sales[Маржа])

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

=[Прибыль]/[ИтогоПродаж]

Мы можем убрать из поля «Значения» прежние меры и переместить туда нашу новую меру.

Давайте вернём [Прибыль] обратно в поле значения

И чуть изменим нашу формулу увеличив прибыль на 10%

У вас должна вылезти ошибка.

Проблема в запятой. Насколько я понял, в отличие от движка формул Excel, движок DAX не локализирован. В нём используются английские имена функций а также принятая в США система отделения целой части числа от дробной не запятой а точкой.
Изменяем запятую на точку и жмём «ОК».

Посмотрите внимательно, значения в столбцах «Процент Прибыли» тоже изменились.

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

Доступны в любой сводной таблице

До сих пор мы работали лишь с одной сводной таблицей. Но если мы создадим совершенно новую сводную таблицу, все меры которые мы создали в первой сводной будут доступны и в новой.

Одно форматирование применяется во всех сводных таблицах

Давайте добавим все три созданные нами меры в поле «Значения» новой сводной таблицы.

Теперь попробуем изменить форматирование, чтобы придать нашим данным более удобочитаемый вид. Но вместо того чтобы использовать «Формат ячейки» в контекстном меню, либо группу «Число» на вкладке «Главная», кликнем правой кнопкой мыши по одной из этих мер (например [Прибыль]) и вызовем редактор мер.

После чего данные в сводной таблице уже отображаются в денежном формате.

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

Поглощая по-немногу: COUNTROWS() и DISTINCTCOUNT()

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

Создадим в нашей сводной таблице две новые меры:

[Транзакции]=COUNTROWS(t_sales) 

И

[ДниПродаж]=DISTINCTCOUNT(t_sales[ДатаЗаказа])

COUNTROWS()

Как понятно из названия этой функции, она считает количество строк в таблице. К примеру, в примере выше 17 строк со значением 1 в столбце «НомерМесяца». И если считать что каждая транзакция вводилась в отдельную строку, то получается что в Январе было совершено 17 транзакций.



DISTINCTCOUNT()

Данная функция считает количество уникальных значений в указанном столбце. Т.е. хоть в Январе и было совершено 17 транзакций, эти транзакции были совершены в течении 13 (рабочих) дней.

Используя полученные результаты мы можем создать ещё две меры:

[ПродажиЗаТранзакцию]=[ИтогоПродаж]/[Транзакции]

И

[ПродажиЗаДень]=[ИтогоПродаж]/[ДниПродаж]

Более того, если мы вместо НомерМесяца поставим в поле «Строки» КодПродукта, то получим количество транзакций, дни продаж, продажи за одну транзакцию и продажи за день по каждому продукту.

Меры это портативные формулы

А теперь просто остановитесь на минутку и подумайте — допустим Вам изначально поручили создать таблицу продаж с разбивкой по месяцам. Т.е. Вы написали формулы считающие количество транзакций и дней продаж с привязкой к номеру месяца. Сколько времени понадобилось бы Вам, сколько громоздких формул пришлось бы написать, чтобы получить этот результат? А потом вдруг Вам сообщают, что нужно сделать то же самое, но в этот раз с разбивкой по продуктам. При использовании стандартных средств Excel это означало бы создавать всё заново и писать формулы уже с привязкой к коду продуктов. Но в Power Pivot Вы просто перетаскиваете нужные значения в соответствующие поля сводной таблицы и всё!

Постановка задачи

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

Фактические продажи

И «красивую» таблицу с плановыми помесячными показателями от руководства:

Таблица с планом

Задача: каким-то образом объединить обе таблицы в одну, чтобы наглядно отобразить выполнение плана по каждому товару, региону, месяцу, кварталу и т.д.

Необходимая оговорка

Можно, конечно, не напрягаться, и решать это дело привычным образом «в лоб». Т.е. с помощью 144 функций СУММЕСЛИМН (SUMIFS) вычислять суммарные продажи по каждому месяцу, товару и городу, а потом с помощью еще 144 формул вручную считать процент выполнения плана.

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

И в нашем примере всего 3 города и 4 товара. А если будет больше?

Давайте-ка лучше мы пойдем другим путем — чуть более сложным, но гораздо более гибким и удобным в перспективе.

Что мы будем делать

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

Но как объединить в одной сводной две наших исходных таблицы? Плоскую таблицу продаж по дням и трехмерную таблицу плановых значений с детализацией по месяцам? Тут нам помогут 2 мастхэв надстройки для Excel:

  • Power Query — встроена в Excel, начиная с 2016-й версии, для более ранних Excel 2010-2013 её можно бесплатно скачать с сайта Microsoft.
  • Power Pivot — c 2013 года входит в состав большинства (но не всех, к сожалению) пакетов Microsoft Office. Для Excel 2010 (но не для более новых версий!) бесплатно качается, опять же, с сайта Microsoft.

Поехали, по шагам…

Шаг 1. Добавляем соединительные таблицы-справочники

Связать напрямую наши исходные таблицы факта и плана, к сожалению, никак не получится. Ни Power Pivot, ни, тем более, Excel не поддерживают пока связи «многие-ко-многим» (many-to-many), означающие, что в исходных таблицах могут встречаться дубликаты (а это как раз наш случай — названия товаров и городов встречаются в каждой таблице не по одному разу).

Поэтому нам потребуется создать «костыли» — промежуточные таблицы-справочники с уникальными значениями товаров, городов и дат, которые мы будем использовать для создания связей «один-ко-многим» (one-to-many), которые Power Pivot умеет делать на ура:

Соединительные таблицы

Для создания таблицы дат удобно использовать команду Главная — Заполнить — Прогрессия (Home — Fill — Progression):

Прогрессия для календаря

Шаг 2. Превращаем все таблицы в «умные» и даём им имена

Для загрузки таблиц в Power Pivot они должны быть «умными» (динамическими). Для этого с каждой таблицей проделываем следующее:

  1. Выделяем любую ячейку таблицы
  2. Жмем сочетание клавиш Ctrl+T или выбираем Главная — Форматировать как таблицу (Home — Format as Table).
  3. В открывшемся окне проверяем корректность выделения диапазона (особенно для таблицы плана!) и включена ли галочка Таблица с заголовками (My table has headers) и жмем ОК.
  4. На вкладке Конструктор (Design) в левом верхнем углу даем таблице осмысленное имя вместо стандартных безликих Таблица1,2,3

Я назвал наши таблицы, соответственно:

  • таблПродажи
  • таблТовары
  • таблГеография
  • таблКалендарь
  • таблПлан

Шаг 3. Грузим первые 4 таблицы в Power Pivot

Первые четыре таблицы у нас в правильном виде, поэтому их можно смело загружать их в Модель данных — область памяти, с которой оперирует Power Pivot. Подключаем нашу надстройку через Файл — Параметры — Надстройки — Надстройки COM — Перейти (File — Options — Add-ins — COM Add-ins — Go) и убеждаемся, что на ленте появилась вкладка Power Pivot.

Теперь по очереди для каждой из первых четырёх таблиц, установив в неё активную ячейку, жмём на кнопку Добавить в модель данных (Add to Data Model):

Добавляем таблицы в Power Pivot

В старых версиях эта кнопка называлась Связанная таблица (Linked table).

В итоге все наши таблички должны загрузиться в открывшееся окно Power Pivot на отдельные вкладки:

Загруженные в Power Pivot таблицы

Шаг 4. Доводим до ума таблицу План

Прежде, чем загрузить в Модель данных Power Pivot таблицу с плановыми значениями, её нужно сначала подрихтовать: убрать в ней пустые строки и итоги, развернуть в плоскую, заполнить пустые ячейки в первом столбце городами и т.д. Проще и легче всего это проделать с помощью надстройки Power Query.

Сначала загрузим таблицу с планами в редактор запросов Power Query, используя кнопку Из таблицы/диапазона (From Table/Range) на вкладке Данные (Data) или на вкладке Power Query (если у вас старая версия Excel 2010-2013 и вы установили Power Query как отдельную надстройку):

Загруженная в Power Query таблица плана

Затем в открывшемся окне Power Query делаем следующее:

1. Удаляем все пустые строки с null через Главная — Удалить строки — Удалить пустые строки (Home — Remove rows — Remove empty rows).

2. Удаляем строки с итогами, сняв соответствующую галочку в фильтре по столбцу Товар.

3. Удаляем ненужный последний столбец ИТОГО, щелкнув по его заголовку правой кнопкой мыши — Удалить (Remove).

4. Заполняем пустые ячейки в первом столбце названиями городов из вышестоящих ячеек, щелкнув по заголовку столбца Город правой и выбрав Заполнить — Вниз (Fill — Down).

5. Разворачиваем 12 столбцов-месяцев в два: название месяца и его значение. Для это выделяем первых два столбца Город и Товар (удерживая клавишу Ctrl), щёлкаем по их заголовку правой и выбираем команду Отменить свёртывание других столбцов (Unpivot Other Columns).

6. Чтобы преобразовать текстовые названия месяцев в нормальную даты — идём на хитрость:

  • Добавляем перед датами единички через пробел с помощью команды Преобразование — Формат — Добавить префикс (Transform — Format — Add prefix)
  • Аналогично добавляем после дат 2019 через Преобразование — Формат — Добавить суффикс (Transform — Format — Add suffix)
  • Теперь, когда текст в этом столбце стал уже гораздо больше похож на дату, конвертируем всё его содержимое в даты, используя выпадающий список типов в шапке столбца:

    Конвертируем месяцы в даты

7. Столбец Атрибут переименовываем в Дата (двойным щелчком по заголовку столбца).

8. Чтобы не путать исходную таблицу плана с преобразованной, изменим имя запроса на таблПлан2 в правой панели Power Query (впоследствии это будет именем таблицы в Power Pivot).

9. Выгружаем готовую таблицу в Модель данных Power Pivot, используя команды Главная — Закрыть и загрузить — Закрыть и загрузить в… (Home — Close&Load — Close&Load to…) и выбираем затем в следующем окне опцию Только создать подключение (Only create connection) плюс, самое главное (!), включаем флажок Добавить эти данные в модель данных (Add this data to Data Model):

Загружаем результаты в Power Pivot                  Импорт данных

После этого наша последняя таблица таблПлан должна загрузиться в окошко Power Pivot.

Шаг 5. Связываем таблицы

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

Для связывания в окне Power Pivot лучше переключиться в режим диаграммы с помощью кнопки Главная — Представление диаграммы (Home — Diagram View) или значком Диаграмма (Diagram) в правом нижнем углу окна. Прямоугольные окошки таблиц можно перетащить за строку заголовка и разложить любым удобным вам образом.

Связь делается очень просто: хватаем мышью столбец в одной из соединительных таблиц (таблТовары, таблГеография, таблКалендарь), тянем и бросаем на соответствующий столбец в таблицах таблПродажи и таблПлан2:

Создание связи

Главный принцип: тянем от таблиц-справочников (Товары, География, Календарь) к таблицам факта и плана. Делаем 6 связей — каждый справочник должен быть связан двумя связями с таблицами плана и продаж. В итоге должна получиться вот такая картина:

Модель данных

Обратите особое внимание на положение единичек и звёздочек на концах связей — это как раз и есть те самые связи «один-ко-многим», где звёздочка обозначает множество вхождений одного и того же элемента, а единичка — уникальность.

Если всё получилось, то сохраняем файл и выдыхаем — дело почти сделано.

Шаг 6. Строим сводную

Теперь на основе созданной модели данных можно построить сводную — для этого в окне Power Pivot выбираем команду Главная — Сводная таблица — Сводная таблица (Home — Pivot table — Pivot table). Мы автоматически вернёмся в Excel, где увидим привычную панель для построения сводной таблицы в правой части экрана, но в ней будут видны уже все таблицы, а не только текущая (как обычно):

Строим сводную

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

Главные принципы здесь такие:

  • В области строк, столбцов и фильтра можно бросать только поля из таблиц-справочников (таблГеография, таблКалендарь, таблТовары).
  • В область значений, где идут вычисления, можно закидывать только поля из таблиц факта и плана (таблПродажи, таблПлан2)

Например, можно накидать так:

Переносим поля в сводную

Чтобы по столбцам даты шли не с шагом один день, а покрупнее — щёлкаем по любой дате в сводной правой кнопкой мыши и выбираем команду Группировать по (Group by), а затем любой нужный уровень группировки:

Группировка дат в сводной

В итоге должно получиться что-то уже очень похожее на то, что нам требуется:

Почти готовая сводная

Шаг 7. Добавляем меры для вычислений

Меры — это, упрощенно говоря, формулы внутри сводных. На самом деле, когда мы переносим мышью любое поле (например, Выручка) в область значений сводной таблицы, то «под капотом» создается неявная мера — что-то вроде:

Сумма по полю Выручка := SUM(таблПродажи[Выручка])

Но контролировать процесс создания неявных мер мы не можем — Excel сам решает как её назвать, какую именно функцию (SUM или COUNT) использовать и т.д. Поэтому лучше создавать явные меры для сводной самостоятельно — в этом случае мы сможем контролировать все их параметры.

Для этого на вкладке Power Pivot выберем команду Меры — Создать меру (Measure — New measure) и в открывшемся окне задаём:

Создаем меру

Здесь:

  • Имя таблицы — место для хранения меры (можно выбрать любую таблицу — это не играет роли).
  • Название меры — придумываем и вводим любое удобное название (можно на русском).
  • Описание — по желанию.
  • Формула — вводим формулу, по которой будет вычисляться мера. Можно использовать функции из встроенного в Power Pivot языка DAX (кнопка fx).
  • Проверить формулу — чекает вашу формулу на предмет ошибок и выдаёт рекомендации по их исправлению.
  • В нижней части окна можно сразу же задать числовой формат для меры, чтобы потом по 100 раз не настраивать его в сводной (как это бывает с обычными неявными мерами).

Повторяем процесс еще два раза:

  • Создаем меру с именем Факт с формулой =SUM(‘таблПродажи'[Выручка]) и числовым форматом без копеек и с разделителем.
  • Создаём меру Отклонение, которая использует две предыдущих созданных меры по формуле =[Факт]/[План]-1 и процентным форматом

Добавленные меры появятся в правой панели сводной таблицы с характерным значком:

Меры в панели сводной

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

Итоговая сводная

Обновляется вся созданная красота (модель данных Power Pivot, запрос Power Query и сама сводная) одним движением — на вкладке Данные (Data) с помощью кнопки Обновить все (Refresh All) или сочетания клавиш Ctrl+Alt+F5.

Возможные проблемы и их решения

В процессе реализации вы можете нарваться на несколько типичных «граблей»:

  • Появляются странные ошибки в Power Pivot или сама вкладка Power Pivot неожиданно пропадает из Excel — отключите надстройку, перезапустите Excel и подключите её заново (см. Шаг 3). Обычно помогает.
  • Не получается создать связь — проверьте, нет ли повторов в справочниках. В столбцах, используемых для связывания не должно быть (в таблицах-справочниках) дубликатов — это жёсткое требование Power Pivot.
  • Какие-то странные результаты получаются в сводной — проверьте 1) правильно ли вы настроили связи 2) те ли поля вы используете для сводной (в области строк, столбцов и фильтра могут лежать только поля из справочников).

Если будут ещё какие-то сложности — пишите в комменты.

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

Ссылки по теме

  • Что такое Power Query, Power Pivot и Power BI и зачем они пользователю Excel
  • Сводная таблица сразу по нескольким диапазонам данных
  • Создание базы данных в Excel с помощью Power Pivot

Сводные таблицы в excel — уже сами по себе мощный инструмент работы с данными. Однако, использования стандартного функционала сводных таблиц может быть недостаточно. Иногда нужно произвести дополнительные вычисления и получить поля, которых нет в исходной таблице данных. Тогда на помощь приходят инструменты Вычисляемое поле и Вычисляемый объект для сводных таблиц Excel.

В этой статье:

  • Что такое вычисляемое поле и для чего оно нужно
  • Как создать вычисляемое поле в сводной таблице Excel
  • Альтернатива № 1 вычисляемому полю: столбец с расчетом в исходной таблице
  • Почему не всегда можно применять расчетный столбец для вычислений в сводной таблице
  • Альтернатива № 2 вычисляемому полю: вычисления вне диапазона сводной таблицы
  • Что такое вычисляемый объект
  • Как создать вычисляемый объект
  • Удаление и изменение вычислений в сводных таблицах
  • Недостатки использования вычислений в сводных таблицах excel
  • Как получить формулы вычислений

Что такое Вычисляемое поле и для чего оно нужно

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

Проще всего понять, как работает вычисляемое поле, на примере.

Имеем таблицу с данными о выручке в торговых точках сети магазинов.

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

вычисляемое поле в excel

Для создания вычисляемого поля “Средний чек” используются имеющиеся в таблице поля “Выручка” и “Кол-во чеков”. Однако, поле “Средний чек” будет добавлено только в сводную таблицу, но в исходной таблице его не будет.

У вас может возникнуть резонный вопрос: а зачем морочить голову вычисляемыми полями, когда такой же столбец можно добавить в исходную таблицу? Иногда это действительно так. Но у такого метода есть ряд ограничений и недостатков. В первую очередь, иногда невозможно или неудобно внести изменения в исходную таблицу. Во-вторых, при следующем обновлении исходной таблицы в нее могут добавиться новые столбцы, и тогда ваши расчеты затрутся.

1) Для начала создадим сводную таблицу, в строки которой добавим категорию торговой точки. В значения — сумму по полю Выручка и сумму по полю Кол-во чеков.

вычисляемое поле в excel

2) Установим курсор на любой ячейке сводной таблицы и перейдем на вкладку Анализ — блок ВычисленияПоля, элементы и наборыВычисляемое поле…

вычисляемое поле в excel

3) Зададим имя вычисляемого поля. Оно не должно повторять ни одного наименования поля в исходной таблице.

вычисляемое поле в excel

4) Теперь напишем формулу, по которой вычисляемое поле будет производить расчет. Нам нужно поле Выручка разделить на поле Кол-во чеков.

Для этого в блоке Поля выделим поле Выручка и нажмем кнопку Добавить поле.

вычисляемое поле в excel

Оно появилось в поле Формула.

вычисляемое поле в excel

Теперь нужно написать оператор деления “/” и таким же образом указать поле Кол-во чеков.

В итоге получим такую формулу:

вычисляемое поле в excel

Если вы достаточно внимательны, то заметили, что название поля Выручка указано без кавычек, а название Кол-во чеков заключено в одинарные кавычки. Это связано в тем, что во втором случае (‘Кол-во чеков’) название поля состоит из нескольких слов. Excel автоматически проставляет эти кавычки, поэтому добавлять или убирать их вручную не нужно.

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

вычисляемое поле в excel

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

вычисляемое поле в excel

Альтернатива № 1 вычисляемому полю: столбец с расчетом в исходной таблице

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

вычисляемое поле в excel

Протянем формулу и заполним столбец (если вы делаете расчет в умной таблице, то формула скопируется автоматически до конца столбца)

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

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

Почему не всегда можно применять расчетный столбец для вычислений в сводной таблице

Теперь на основании этой таблицы создадим сводную. Набор полей такой же, как в предыдущем примере, только в поле Значения добавим еще вновь созданный Средний чек.

вычисляемое поле в excel

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

вычисляемое поле в excel

Далее выберем Среднее.

вычисляемое поле в excel

Получили средний чек.

вычисляемое поле в excel

И снова самые внимательные заметят, что он не совпадает с тем Средний чеком, который мы получили при помощи вычисляемого поля. Да и если разделить значение из поля Выручка на Кол-во чеков — получим другие данные. 

вычисляемое поле в excel

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

Альтернатива № 2 вычисляемому полю: вычисления вне диапазона сводной таблицы

Часто пользователи просто производят все необходимые вычисления рядом со сводной таблицей при помощи обычных формул. 

Добавим столбец Средний чек рядом со сводной таблицей и в строке формул напишем формулу деления Выручки на Кол-во чеков. Даже форматирование сделаем, как в сводной.

вычисляемое поле в excel

Такой способ иногда оправдан — когда это временная таблица, и посчитать надо быстро. Однако, если это регулярный отчет, который может модифицироваться, то лучше им не пользоваться. Почему?

Представим ситуацию, что появилась новая категория торговой точки. Обновим сводную, и видим такую “красоту”. Итоги съехали, надо переделывать вручную.

вычисляемое поле в excel

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

Таким образом, делаем вывод, что эта альтернатива рабочая, но только для “одноразовых” вычислений. Никак не для постоянных отчетов.

Что такое вычисляемый объект

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

Также отличие в том, что вычисляемое поле работает со столбцами, а вычисляемый объект — со строками.

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

Как создать вычисляемый объект

Давайте разделим категории торговых точек на еще более укрупненные категории. В категорию “Большие точки” отнесем категории “Крупная” и “Выше среднего”. В категорию “Маленькие точки” — “Микро” и “Средняя”.  Как видите, категории не имеют какого-то общего признака, по которому можно сделать агрегацию (точнее, он есть, но только в нашей голове).

Работать будем с той же сводной таблицей. 

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

Важно: именно в строках, а не в числовых значениях!

Далее вкладка Анализ — блок ВычисленияПоля, элементы и наборыВычисляемый объект…

вычисляемое поле в excel

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

вычисляемое поле в excel

Зададим имя объекта “Большие точки” и в поле Формула по аналогии с созданием вычисляемого поля зададим формулу. Использовать будем значения из поля Элементы и кнопку Добавить элемент.

вычисляемое поле в excel

Нажмем Ок, и получим группирующую строку внизу таблицы.

вычисляемое поле в excel

Аналогично сделаем вычисляемый объект для группы “Маленькие точки”. Также добавим ранее созданное вычисляемое поле Средний чек (для полноты картины).

вычисляемое поле в excel

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

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

вычисляемое поле в excel

Удаление и изменение вычислений в сводных таблицах

Давайте для примера удалим вычисляемое поле Средний чек.

Откроем меню Вычисляемое поле.

вычисляемое поле в excel

Далее в выпадающем списке выберем поле, которое нужно удалить, и нажмем кнопку Удалить.

вычисляемое поле в excel

Готово, вычисляемое поле удалено.

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

вычисляемое поле в excel

Точно также можно внести изменения в вычисляемое поле (или объект). Нужно исправить формулу и нажать Ок, кнопку Удалить не нажимать.

Недостатки использования вычислений в сводных таблицах excel

Автоматизация вычислений при помощи вычисляемых полей или вычисляемых объектов имеет свои недостатки. Учитывайте их.

  • Вычисления возможны только с данными из сводной таблицы. В них невозможно использовать данные, находящиеся за ее пределами. Даже данные из исходной таблицы, если они не добавлены в сводную — использовать нельзя.
  • Вычисляемые объекты по умолчанию никак не выделяются и выглядят как обычная строка. Следовательно, их легко спутать со строкой, и нужно применять дополнительные методы форматирования, например, условное форматирование.
  • Некорректный расчет общих итогов при создании вычисляемых объектов (строк).

Как получить формулы вычислений

Чтобы узнать, какие вычисления производились в сводной таблице, нужно щелкнуть в любой ее ячейке, далее вклдака Анализ — блок ВычисленияПоля, элементы и наборыВывести формулы

вычисляемое поле в excel

Формулы откроются на отдельном листе.

вычисляемое поле в excel

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

Таким образом, мы прокачали свои навыки работы со сводными таблицами. Их можно использовать, например, при создании отчетов или интерактивных дашбордов.


   Сообщество Excel Analytics | обучение Excel

    Канал на Яндекс.Дзен 


Вам может быть интересно:

DAX-формулы или Data Analysis Expressions — выражения для анализа данных в Microsoft Power BI, в Analysis Services и Power Pivot в Excel. DAX-формулы позволяют, по аналогии с формулами Excel, выполнять вычисления и настраивать произвольную фильтрацию и представление данных в таблицах.

Язык DAX есть в следующих приложениях:

Впервые DAX-формулы появились в Excel 2010 года во внешней com-надстройке Power Pivot. С тех пор этот язык становится все более популярным, и если раньше о DAX слышали только единицы, то сейчас он широко применяется в бизнес-аналитике и проектировании моделей. Поэтому DAX-формулы вам точно пригодятся для продвинутого анализа.

В этой статье описание DAX приводится для Power Pivot в Excel и Power BI.

Строение DAX-формул

DAX-формулы очень похожи на обычные формулы Excel. Многие из них записываются одинаково, например, «сумма»-SUM и «если»-IF. Но сами вычисления работают по-разному: в отличие от обычного Excel, в языке DAX нет расчетов по ячейкам. DAX-формулы обращаются сразу к таблицам и столбцам целиком. Примерно похожий способ вычислений есть и в «обычном» Excel – с помощью формул массивов. И если вы работали с форматированными smart-таблицами, то чтобы лучше понять DAX, вспомните, как в них выглядят ссылки – название столбца в квадратных скобках.

Форматированные таблицы

В DAX-формулах почти также: названия таблиц обычно пишут в одинарных кавычках (или без кавычек, если имя таблицы написано латинскими буквами без пробелов и цифр в начале). Названия столбцов пишут в квадратных скобках:

'Имя таблицы'[Название столбца] или TableName[Название столбца]

Математические операторы:
& + — / * = > < () и их сочетания дают тот же эффект, что в Excel.

Логические операторы:

  • && — аналог формулы И (AND)
  • || — аналог ИЛИ (OR)
  • IN – поиск элемента в списке
  • NOT – логическое отрицание, аналог формулы НЕ.

Вычисляемые столбцы, меры и таблицы

С помощью DAX-формул в Power BI можно создавать:

  • вычисляемые столбцы;
  • меры;
  • вычисляемые таблицы.

В Excel есть только вычисляемые столбцы и меры.
Понятия столбцов и мер – основы работы с DAX. Давайте разберемся, что это такое.

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

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

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

Вычисляемые столбцы создаются просто, как в Power Pivot, так и в Power BI: добавляется новый столбец, пишется «равно» и формула.

Вычисляемый столбец в Power Pivot

в Power Pivot

Вычисляемый столбец в Power BI

в Power BI

Чтобы обратиться к вычисляемому столбцу в других вычислениях, нужно написать имя таблицы, в которой он находится, и название самого столбца. Например, 'Таблица'[Столбец]

Меры – это динамические вычисления, результаты которых рассчитываются в зависимости от контекста. Результат вычисления меры можно увидеть в отчете, где мы задаем в каком именно контексте (в разрезе каких полей, фильтров и др.) нужно посчитать меру.

Как создать меру:

  • В Excel меры записывают в окне Power Pivot в области для вычислений под таблицей: выберите ячейку, введите название меры и знак :=
    Или в меню Power Pivot → Меры → Создать меру.
  • Чтобы создать меру в Power BI, нажмите Главная →  Создать меру (или нажать правой кнопкой мышки в области полей по таблице → Создать меру).

Меры в Power Pivot

в Power Pivot

Меры в Power BI

в Power BI

При создании мер нужно обязательно использовать агрегирующие функции, например суммирования SUM. Мера не может быть создана просто как обращение к столбцу таблицы:
- Так не работает:   прибыль:= 'Данные'[выручка] 'Данные'[расходы]
+ Так работает:  прибыль:= SUM('Данные'[выручка]) – SUM('Данные'[расходы])

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

Чтобы использовать меру в других вычислениях, ее название пишут в квадратных скобках.
Пример:   МераВ = [МераА] + 100

Примечание о записи формул и разделителей:

  • В Power BI формулы записывают с помощью знака равно = и разделителей-запятых.
    Пример:   Мера = IF( [kpi]>100, [a], [b])
    В настройках Power BI есть возможность выбрать, какой именно разделитель использовать в формулах – запятую или точку с запятой.
  • В Power Pivot разделителем в формулах может быть запятая «,» или точка с запятой «;» в зависимости от региональных настроек.
    Вычисляемые столбцы записывают с помощью знака =
    При создании меры пишут её название и знак :=
    Пример:   Мера:= IF( [kpi]>100; [a]; [b])

Базовые DAX-формулы

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

SUM суммирует числа в столбце. Её аналог в Excel – формула СУММ.
Синтаксис формулы очень простой:

SUM — это базовая формула, а всё потому что вычисления, связанные с цифрами, в DAX делаются с помощью мер. Нельзя просто так взять и обратиться к цифрам какого-то столбца напрямую. Придется это сделать с помощью какой-то агрегирующей формулы, чаще всего – с помощью SUM. Так что эта формула не только считает сумму, без нее в принципе мало какие расчёты работают )

Формула SUM

2. BLANK

Формула BLANK возвращает пустое значение. Пустое значение в DAX – это отсутствие значения, а не привычный нам в Excel 0 (ноль) или пустая строка («»).

Записывается формула очень просто:

Никаких аргументов у нее нет.

Формулы BLANK нет в Excel, но в вычислениях с DAX она используется очень часто. Для чего нужна формула BLANK? Она помогает скрыть в отчетах ненужные значения.

3. IF

Формула IF – это логическая формула, аналог ЕСЛИ в Excel. Она проверяет условие и, если условие выполнено, возвращает одно значение, иначе – другое значение.

Синтаксис формулы:

IF(<условие>, <значение если истина>[, <значение если ложь>])

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

Формулы IF и UNICHAR

4. DIVIDE

Формула DIVIDE – формула для улучшенного деления.
Несмотря на то, что в DAX есть привычный нам оператор деления / , формула DIVIDE лучше. Она удобнее и в ней не надо делать проверку ошибки деления на ноль. Формула сама всё проверит и заменит ошибку на пустое значение.

Синтаксис формулы:

DIVIDE(<числитель>, <знаменатель> [, <альтернативный результат>])

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

Формула DIVIDE

5. MIN и MAX

Формулы MIN и MAX – это агрегирующие формулы. Они находят минимальное и, соответственно, максимальное значение из столбца или из двух выражений (выражение должно вычислять единичное значение).

MIN(<столбец>)
MIN(<выражение1>, <выражение2>)
MAX(<столбец>)
MAX(<выражение1>, <выражение2>)

Если вы думаете, что эти формулы нужны для поиска наименьшего или наибольшего значения показателя, то вы правы. А еще MIN и MAX часто применяются в вычислениях, связанных с датами. То есть они вам точно пригодятся – выписываем и берем на вооружение!

6. DISTINCTCOUNT

DISTINCTCOUNT – полезная формула. Она подсчитывает количество уникальных значений в столбце таблицы.

Синтаксис формулы:

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

Формула Distinctcount

7. COUNTROWS

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

Синтаксис формулы:

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

Давайте разберем, какие еще вычисления можно делать с помощью DAX.

Функции агрегирования

Как мы уже говорили, в DAX-формулах для обращения к данным нужно писать формулы агрегирования, такие как SUM, MAX и MIN. Также часто встречаются AVERAGE и COUNT – среднее и количество.

Кроме таких формул существуют еще другие, похожие на них с окончаниями «А» и «Х». Функции с «A» на конце обрабатывают непустые ячейки. Формулы с «X» позволяют выполнять вычисления по строкам.

Что считать Вычисления по таблице Вычисления для непустых значений (A) Вычисления для каждой
строки таблицы (Х)
Сумма SUM SUMX
Среднее AVERAGE AVERAGEA AVERAGEX
Максимум MAX MAXA MAXX
Минимум MIN MINA MINX
Количество COUNT COUNTA COUNTX

Для чего нужны построчные вычисления в формулах с «X»? Если создать меру так:
Мера = SUM('Данные'[Цена]) * SUM('Данные'[Количество]), вычисления будут некорректные.

Необходимы вычисления по строкам:
Мера = SUMX('Данные'; [Цена] * [Количество])

Логические функции

Логические функции в DAX довольно просты для понимания. Они выполняют то же, что в «обычном» Excel. Чтобы вам было проще разобраться, собрали в таблице часто используемые логические функции.

Формула Что делает Похожая формула Excel
IF проверка выполнения условия ЕСЛИ
AND, && проверяет, все ли аргументы истинные И
OR, || проверяет, есть ли хотя бы один аргумент, равный TRUE ИЛИ
NOT меняет логическое значение на противоположное НЕ
TRUE, FALSE значения Истина и Ложь ИСТИНА, ЛОЖЬ
IFERROR проверяет, нет ли ошибки ЕСЛИОШИБКА
SWITCH аналог формулы IF, более удобный для множественных условий ВЫБОР

В пояснении нуждаются только две последние формулы — IFERROR и SWITCH.

Если формула в некоторых случаях выдает ошибку, ее можно «перехватить» с помощью IFERROR. Хотя лучше сразу проверять данные на ошибки — до выполнения расчетов.

БезОшибки = IFERROR( [Цена] * [Количество] ; BLANK() )

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

Время года = IF( MONTH([Дата])=1; "Зима"; IF( MONTH([Дата])=2; "Зима"; IF( MONTH([Дата])=3; "Весна"; IF(MONTH([Дата])=4; "Весна"; … )

и так далее – даже если мы используем OR, легче не станет.

Со SWITCH все проще:

Время года =
SWITCH(
MONTH([Дата]);
1; "Зима";
2; "Зима";
3; "Весна";
4; "Весна"; … )

и так далее – уже проще и понятнее.

Математические функции

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

Формула Что делает Похожая формула Excel
ABS находит модуль числа ABS
SIGN определяет знак числа ЗНАК
POWER возведение в степень СТЕПЕНЬ
SQRT находит квадратный корень КОРЕНЬ
QUOTIENT возвращает только целую часть деления ОТБР
RANDBETWEEN возвращает случайное число в диапазоне между двумя числами СЛУЧМЕЖДУ
ROUND округление до заданного числа десятичных разрядов ОКРУГЛ
ROUNDUP округление в большую сторону ОКРУГЛВВЕРХ
ROUNDDOWN округление в меньшую сторону ОКРУГЛВНИЗ
Текстовые функции

Текстовые функции в DAX основаны на аналогичным списке функций в Excel. Наиболее часто используемые функции собраны в таблице.

Формула Что делает Похожая формула Excel
CONCATENATE, CONCATENATEX и оператор & объединяет текстовые строки в одну, оператор & используется для объединения строк текста СЦЕПИТЬ, ОБЪЕДИНИТЬ и &
TRIM удаляет лишние пробелы СЖПРОБЕЛЫ
LOWER и UPPER преобразует все буквы в строке в строчные / прописные СТРОЧН и ПРОПИСН
LEFT и RIGHT возвращает указанное количество символов с начала (конца) строки ЛЕВСИМВ и ПРАВСИМВ
LEN возвращает число символов в строке ДЛСТР
FIND и SEARCH возвращает номер начальной позиции искомого текста в строке (с учетом или без учета регистра) НАЙТИ и ПОИСК
MID возвращает строку из текста по начальной позиции и длине ПСТР
FORMAT преобразует значение в текст в соответствии с указанным форматом ТЕКСТ
Функции для работы с датами

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

Формула Что делает Похожая формула Excel
TODAY определяет сегодняшнюю дату СЕГОДНЯ
DATE возвращает заданную дату ДАТА
DAY, MONTH, YEAR вычисляет день, месяц, год для заданной даты ДЕНЬ, МЕСЯЦ, ГОД
WEEKDAY возвращает номер дня недели, от 1 до 7 ДЕНЬНЕД
WEEKNUM определяет номер недели в году НОМНЕДЕЛИ
EDATE находит дату через указанное число месяцев от заданной даты ДАТАМЕС
EOMONTH находит дату последнего дня месяца до или после указанного числа месяцев КОНМЕСЯЦА
Функции фильтрации

А еще в DAX есть формулы фильтров, аналога которых в «обычном» Excel нет и быть не может. Потому что такие формулы позволяют ссылаться не просто на столбец, а целиком на таблицу. Формулы фильтрации можно подставлять в меры и тогда они будут выдавать «виртуальные» таблицы с заданными параметрами. Такие таблицы не дают видимого результата и используются как промежуточные функции внутри вычисления. Примером таких функций являются SUMMARIZE, ADDCOLUMNS и более часто используемые формулы FILTER, ALL.

В определениях DAX функция CALCULATE относится к функциям фильтрации. CALCULATE работает по аналогии с формулой СУММЕСЛИМН при указании в этой формуле суммы и условия отбора – фильтра:

продажи-2020 = CALCULATE( [факт]; 'Календарь'[Год] = 2020 )

Самыми яркими представителями функций фильтрации являются FILTER и ALL:

  • Функция FILTER создает отфильтрованную таблицу. Другими словами, с помощью этой формулы можно извлечь список, соответствующий определенному критерию.
  • Функция ALL снимает фильтры, примененные к таблице. Она используется, например, чтобы посчитать долю продаж товара:

    Доля товара = DIVIDE( [выручка]; CALCULATE( [выручка]; ALL('Товары') )

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


A calculated field in a table in a Data Model is the field obtained by a DAX formula. In earlier versions of Power Pivot, the calculated field was termed as a measure. In Excel 2013, it was renamed as a calculated field. However, it is renamed back to measure in Excel 2016. If you refer to any documentation, you can observe a mix up of these two terms. Note that the terms calculated field and measure are synonymous. In this tutorial, we use the term calculated field.

Understanding Calculated Fields

A calculated field is a formula that is created specifically for use in a PivotTable (or PivotChart).

You can create a calculated field based on standard aggregation functions, such as COUNT or SUM, or by defining your own DAX formula.

Following is the difference between the calculated field and the calculated column −

  • A calculated field can be used only in the VALUES area of a PivotTable.

  • A calculated column with the calculated results can be used in ROWS, COLUMNS and FILTERS areas also.

Saving Calculated Field

The calculated field will be saved with its source table in the Data Model. It appears in the Power PivotTable or Power PivotChart Fields list as a field in the table.

Using Calculated Field

To use a calculated field, you have to select it from the Power PivotTable Fields list. The calculated field will get added to the VALUES area and the formula used for the calculated field will be evaluated. A result is created for each combination of row and column fields.

Calculated Field – An Example

Consider the following Data Model for Olympics data −

Calculated Field

As seen in the above screenshot, the Results table has a field Medal that contains the values – Gold, Silver, or Bronze for each of the rows containing Sport – Event — Country – Date combination. Suppose you want medal count for each country, then you can create a calculated field Medal Count with the following DAX formula −

Medal Count := COUNTA([Medal])

Creating a Calculated Field in a Table

To create the calculated field Medal Count in the Results table, do the following −

  • Click the cell in the calculation area below the Medal column in the Results table. The cell will be highlighted.

  • Type Medal Count:=COUNTA([Medal]) in the formula bar.

Creating a Calculated Field in a Table

Press Enter.

Press Enter

As seen in the above screenshot, the calculated field appears in the selected cell, showing the value as 34,094. This number is the total number of rows in the Results table. Hence, it does not make much sense at the first look. As discussed earlier, the real use of a calculated field can be seen only by adding it to a Power PivotTable or a Power PivotChart.

Using the Calculated Field in a Power PivotTable

To use the calculated field to count the number of medals for each country, do the following −

  • Click the PivotTable on the Ribbon in the Power Pivot window.
  • Click the PivotTable in the dropdown list.

Using the Calculated Field in a Power PivotTable

Create PivotTable dialog box appears.

  • Click the Existing Worksheet.
  • Select where you want to place the PivotTable.

An empty PivotTable will get created.

  • Click the Results table in the PivotTable Fields list.
  • Click the fields – Country and Medal count.

Empty PivotTable Created

As you can observe, Medal Count is added to VALUES area and Country is added to ROWS area. The PivotTable is created with the field Country values appearing in the rows. And for each row, the Medal Count value is calculated and displayed. That is the way, the calculated field evaluates the DAX formula used and displays the values.

  • Add the field Sport from the Results table to ROWS area.

Add the Field Sport

As you can see in the above screenshot, Medal Count is calculated for each Country — Sport-wise and a Subtotal for the Country itself.

This is how DAX supplements the Power features.

Types of Calculated Fields

There are two types of Calculated Fields – Implicit and Explicit.

  • An implicit calculated field is created in the Power PivotTable Fields list pane.

  • An explicit calculated field is created either in the table in the Power Pivot window, or from the PowerPivot Ribbon in the Excel window.

Creating an Implicit Calculated Field

An implicit calculated field can be created in two ways, both in the Power PivotTable Fields pane.

Creating an Implicit Calculated Field in the PivotTable Fields List

You can create the Count of Medal Field from the Medal field in the PivotTable Fields list as follows −

  • Deselect the field Medal Count.
  • Right-click on the field Medal.
  • Click Add to Values in the dropdown list.

Creating an Implicit Calculated Field

Count of Medal appears in the Values area. Count of Medal column will be added to the PivotTable.

Medal column Count

Creating an Implicit Calculated Field in the VALUES Area

You can create an implicit calculated field — % of Parent Row in the Values area to express the Medal count of each sport that a country has won as a percentage of the total number of Medals won by that Country.

  • Click the down arrow in the Count of Medal box in VALUES area.
  • Click the Value Field Settings in the dropdown list.

Creating an Implicit Calculated Field in Values Area

Value Field Settings dialog box appears.

  • Type % Medals in the Custom Name box.
  • Click the Show Values As tab.
  • Click the box under Show values as.
  • Click the % of Parent Row Total.

Value Field Settings

  • Click the Number Format button.

Format Cells dialog box appears.

  • Click Percentage.
  • Type 0 in decimal places.
  • Click OK.
  • Click OK in the Value Field Settings dialog box.
  • Select Do Not Show Subtotals.

Format Cells Dialog Box

You created another implicit calculated field % Medals and as you can observe, for each Country, the percentage of Medals Sport-wise are displayed.

Drawbacks of an Implicit Calculated Field

Implicit calculated fields are easy to create. In fact, you have been creating them even in Excel PivotTables and Pivot Charts. But, they have the following drawbacks −

  • They are volatile. That means, if you deselect the field you used for calculated field, it will be removed. If you want to display it again, you have to once again create it.

  • Their scope is limited to the PivotTable or PivotChart in which they are created. If you create another PivotTable in another worksheet, you have to create the calculated field again.

On the other hand, explicit calculated fields will get saved with the table and will be available whenever you select that table.

Creating an Explicit Calculated Field

You can create an explicit calculated field in two ways −

  • In the calculation area in a Table in the Data Model. You have already learnt this in the section – Creating Calculated Field in a Table.

  • From PowerPivot Ribbon in the Excel table. You will learn this way of creating an explicit calculated field in the next section.

Creating an Explicit Calculated Field from PowerPivot Ribbon

To create an explicit calculated field from PowerPivot Ribbon, do the following −

  • Click the POWERPIVOT tab on the Ribbon in your workbook.
  • Click the Calculated Fields in the Calculations area.
  • Click the New Calculated Field in the dropdown list.

Creating an Explicit Calculated

Calculated Field dialog box appears.

  • Fill in the required information as shown in the following screenshot.

Calculated Field dialog box

  • Click the Check formula button.
  • Click OK only if there are no errors in the formula.

As you can observe, you can define the category and format of the calculated field in this dialog box. Further, you can use the IntelliSense feature to understand the usage of the functions and to use the AutoComplete feature to easily complete the names of the functions, tables, and columns. For details on IntelliSense feature, refer to the chapter – DAX Formulas.

This is a recommended way to create explicit calculated fields.

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

ИНСТРУКЦИЯ ПО ДОБАВЛЕНИЮ ТЕКСТОВЫХ ПОЛЕЙ В СВОДНУЮ ТАБЛИЦУ

Чтобы с помощью надстройки Power Pivot добавить текст в сводную таблицу, нужно выполнить последовательно следующие действия:

Шаг 1. Включаем надстройку Power Pivot.

Надстройка Power Pivot входит в стандартный комплект Excel 2013, 2016 и Excel 365 для Windows. Она подключается одной галочкой в окне надстроек:

ФайлПараметрыНадстройкиНадстройки COMMicrosoft Power Pivot.

Шаг 2. Загружаем исходную таблицу Exсel в модель данных Power Pivot и создаем сводную таблицу с подключением к модели. В качестве примера возьмем таблицу (рис. 1), в которой ведутся остатки ассортимента в магазине обуви.

Исходную таблицу с информацией об остатках обуви загружаем в модель данных Power Pivot, как показано на рис. 2.

Выполнив загрузку, выходим из окна Power Pivot, создаем новый лист, через команду «Вставка» строим сводную таблицу.

Важный момент: в случае с Power Pivot для создания сводной таблицы выделять исходную таблицу не нужно.

Шаг 3. Добавим в область строк сводной таблицы следующие поля: Тип обуви, Полное наименование, Размеры, Цвет (рис. 3).

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

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

Чтобы создать меру, нужно на вкладке Power Pivot выбрать «Меры» и «Создать меру» (см. рис. 3).

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

Цвета:=

COUNTROWS(VALUES(‘Остатки'[Цвет])).

Функция VALUES() создает таблицу из одного столбца с уникальными значениями (в нашем случае это «коричневый», «синий», «черный»).

Функция COUNTROWS() подсчитывает в таблице количество строк.

К мере применяются фильтры сводной таблицы (учитываются ее разрезы).

Рассмотрим, как считает написанная мера.

В группировке Ботильонов и следующего наименования обуви указано 3 — максимальное количество уникальных цветов. Все три цвета повторяются в первом по порядку размере 38, поэтому у данного размера тоже 3. В размере 39 только один цвет, поэтому стоит 1 (рис. 5).

Если функция VALUES() имеет единственное значение, то в значения сводной таблицы его можно добавить текстом, а не только рассчитать количество таких значений, чем ограничивается стандартный Excel.

Предположим, нами создана мера, которая выглядит следующим образом:

Цвета:=

VALUES(‘Остатки'[Цвет]).

Мы получим сообщение об ошибке, так как в строках, где уникальных значений больше одного, результатом функции VALUES() также является более одного значения (рис 6).

Чтобы обойти данную ошибку, нужно определить, когда VALUES() возвращает одно или несколько значений. Для этого воспользуемся функцией HASONEVALUE(). Она возвращает 1 (ИСТИНА), если в ней столбец с одним значением, и 0 (ЛОЖЬ), если столбец с несколькими значениями.

Материал публикуется частично. Полностью его можно прочитать в журнале «Планово-экономический отдел» № 10, 2018.

Понравилась статья? Поделить с друзьями:
  • Добавить маркеры на график в excel
  • Добавить маркер на диаграмму excel
  • Добавить макрос в excel для всех книг
  • Добавить макрос в excel 2016
  • Добавить лист в конец книги vba excel