Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Еще…Меньше
Меры (также называемые вычисляемыми полями) — одна из самых эффективных возможностей Power Pivot. Они часто используются при анализе данных. Это вычисления, создаваемые для оценки результата относительно других факторов, имеющих отношение к анализу, таких как объем продаж по времени, региону, организации или товару.
Некоторые меры можно легко создать, например меры, использующие стандартную агрегатную функцию, например СУММ или СПБ, и созданные с помощью функции авто суммирования в окне Power Pivot, или неявные меры, созданные в Excel путем простого перетаскиванием поля в область значений. Другие могут быть более сложными, например для следующих связей или фильтрации результатов, требующие формулы, создаваемой с помощью DAX.
Так как существуют разные типы мер и их можно создавать в разных местах, важно понимать, какой тип уместен в том или ином случае. Дополнительную информацию см. в статье Меры в Power Pivot.
Создание неявной меры в Excel
-
Щелкните сводную таблицу.
-
В списке Поля сводной таблицы перетащите поле в область Значения.
Неявные меры могут использовать только стандартные агрегатные функции (SUM, COUNT, MIN, MAX, DISTINCTCOUNT или AVG) и формат данных, заданный для этого агрегирования. Кроме того, неявные меры могут использоваться только в сводной таблице или диаграмме, для которой они были созданы.
Создание меры в окне Power Pivot с использованием автосуммирования
-
Щелкните столбец.
-
Щелкните Вычисления > Автосумма и выберите агрегат.
Меры, созданные с помощью автосуммирования, немедленно появляются в области вычислений под столбцом данных; однако их можно переместить в любую пустую ячейку области вычислений той же таблицы. Меры, созданные с помощью автосуммирования, получают имя по умолчанию, но их можно переименовать в строке формул. Меры, создаваемые в области вычислений, являются явными.
Создание меры в окне Power Pivot с помощью области вычислений
-
Щелкните В начало > Просмотр > Область вычисления.
-
Щелкните пустую ячейку в области вычислений.
-
В строке формул в верхней части таблицы введите формулу в формате <имя меры>:<формула>
-
Нажмите клавишу ВВОД, чтобы принять формулу.
Меры, созданные в области вычислений, сохраняются в выбранной таблице, но могут использоваться как поле в любых сводных таблицах, сводных диаграммах и отчетах. Такие меры являются явными.
Создание меры с помощью диалогового окна «Мера» в Excel
-
В окне Excel выберите Power Pivot > Вычисления > Меры > Создать меру.
-
В диалоговом окне Мера щелкните стрелку вниз в поле Имя таблицы и выберите таблицу, в которой должна находиться мера.
Выбор таблицы определяет, где будет храниться определение меры. Мера не обязательно должна храниться в той таблице, на которую ссылается.
-
В поле Имя меры введите имя.
Имя меры должно быть уникальным; в частности, нельзя использовать имена, уже заданные для столбцов.
-
В текстовом поле Формула поместите курсор за знаком равенства (=) и введите формулу.
-
Нажмите кнопку Проверить формулу для проверки.
-
В списке Категория выберите тип меры.
Тип меры не влияет на работу формулы. Он нужен только для информации.
-
Если формула выдержала проверку, нажмите кнопку ОК.
Меры, созданные в диалоговом окне «Мера» в Excel, хранятся в выбранной таблице. Вы можете их просмотреть и изменить в диалоговом окне «Управление мерами» в Excel или в области вычислений таблицы в окне Power Pivot. Меры, созданные с помощью этого метода, являются явными.
К началу страницы
Нужна дополнительная помощь?
Меры, также называемые мерами в Power Pivot в Excel 2013, являются вычислениями, используемыми при анализе данных. К примерам, часто встречающимся в бизнес-отчетах, относятся суммы, средние, минимальные и максимальные значения, счетчики или более сложные вычисления, создаваемые с использованием формулы выражений анализа данных (DAX).
В сводной таблице, сводной диаграмме или отчете мера помещается в область «Значения», в которой метки строки и столбца, окружающие ее, определяют контекст значения. Например, при измерении продаж по годам (в столбцах) и регионам (в строках) значение меры вычисляется в зависимости от данного года и региона. Значение меры всегда изменяется в ответ на выбор строк, столбцов и фильтров, обеспечивая нерегламентированный просмотр данных.
Хотя меры и вычисляемые столбцы похожи тем, что основаны на формуле, они отличаются в использовании. Меры чаще всего используются в области Значения сводной таблицы или сводной диаграммы. Вычисляемые столбцы применяются, когда необходимо разместить результаты вычислений в другой области сводной таблицы (например, в строке или столбце сводной таблицы или на оси сводной диаграммы). Очень важно понимать, когда следует использовать меры, а когда — вычисляемые столбцы. Дополнительные сведения см. в статьях Вычисления в Power Pivot и Вычисляются столбцы в Power Pivot.
Общие сведения о мерах
Меры бывают явными и неявными. Это влияет на способы их использования в сводной таблице или сводной диаграмме и в других приложениях, использующих в качестве источника данных модель данных Power Pivot.
Неявная мера
Неявная мера создается приложением Excel при перетаскивании такого поля, как Сумма продаж, в область Значения списка полей сводной таблицы. Так как неявные меры создаются Excel, вы можете не знать о том, что создана новая мера. Однако при внимательном изучении списка «Значения» можно заметить, что поле Сумма продаж в действительности является мерой с именем Сумма «Сумма продаж», отображаемой с этим именем в области «Значения» списка полей сводной таблицы, а также в самой сводной таблице.
Неявная мера, созданная в сводной таблице
Неявные меры могут использовать только стандартные агрегатные функции (SUM, COUNT, MIN, MAX, DISTINCTCOUNT или AVG) и формат данных, заданный для этого агрегирования. Кроме того, неявные меры могут использоваться только в сводной таблице или диаграмме, для которой они были созданы.
Неявная мера тесно связана с полем, на котором она основана, что влияет впоследствии на способ удаления или изменения меры.
Явное вычисляемое поле
Явная мера создается пользователем при вводе или выборе формулы в ячейке «Область вычисления» или использовании в окне Power Pivot функции «Автосуммирование». Большинство создаваемых мер будут явными.
Явная мера, созданная в области вычислений Power Pivot
Явные меры можно использовать в любой сводной таблице или сводной диаграмме, в книге и отчетах Power View. Более того, их можно превратить в ключевые показатели эффективности или отформатировать, используя одну из множества строк форматирования, доступных для числовых данных. Команды контекстного меню для функций Создать ключевой показатель эффективности и Формат доступны только при использовании явной меры.
Примечание: После использования меры в качестве KPI ее нельзя использовать для других вычислений. Если вы хотите использовать формулу в вычислениях, необходимо скопировать ее. Дополнительные сведения о ключевых показателях эффективности см. в статье Ключевые показатели эффективности в Power Pivot.
К началу страницы
Пример
Менеджер по продажам компании Adventure Works получил задание предоставить прогнозы товарооборота торговых посредников на следующий финансовый год. Он принимает решение базировать свои оценки на объемах продаж предыдущего года, в котором ежегодный прирост достиг 6 % благодаря различным рекламным акциям, проводимым в течение следующих шести месяцев.
Чтобы получить эти данные оценки, он импортирует прошлогодние данные по торговым посредникам и добавляет их в сводную таблицу. Он нашел поле Сумма продаж в таблице «Товарооборот торговых посредников» и перетащил его в область «Значения» списка полей сводной таблицы. Это поле отображается в сводной таблице в виде единичного значения, представляющего суммарный товарооборот торговых посредников начиная с прошлого года. Менеджер обращает внимание, что, даже если он не указал поле, оно было автоматически предоставлено и переименовано в списке полей сводной таблицы в Сумма Сумма продаж. Встроенное агрегатное выражение, добавленное Excel, =SUM(‘FactResellerSales'[SalesAmount]), выполняет это вычисление. Менеджер переименовал неявную меру Продажи за прошлый год.
Следующий расчет — это прогноз продаж на следующий год, который будет основан на продажах за прошлый год, умноженных на 1,06 с учетом ожидаемого 6-процентного увеличения продаж через торговых посредников. Для этого вычисления необходимо явно создать меру с помощью кнопки Создать вычисляемого поля, чтобы создать вычисление с именем «Прогнозируемые продажи». Она заполнит следующую формулу: =SUM(‘FactResellerSales'[SalesAmount])*1.06.
Новая мера добавляется в область «Значения» списка полей сводной таблицы. Она также добавляется в таблицу, активную на настоящий момент в списке полей сводной таблицы. В таблице указывается местонахождение меры в книге. Так как менеджер предпочитает, чтобы мера находилась в другой таблице, он отредактировал ее, изменив ее взаимосвязь с таблицей.
Очень быстро и с минимальными усилиями со своей стороны менеджер по продажам получает необходимые готовые базовые сведения. Теперь он может далее проецировать свой прогноз, фильтруя данные по конкретным посредникам или добавляя сведения о продуктовой линейке, чтобы проверить соответствие будущих рекламных акций продукции, продаваемой торговым посредником.
Именование мер
После создания мер можно изменить их порядок и переименовать их. Тем не менее существуют некоторые ограничения на изменение мер.
-
Меры отображаются в списке полей сводной таблицы (если они не скрыты) вместе с другими объектами. Рекомендуется именовать их таким образом, чтобы они легко ассоциировались с выполняемым действием.
-
Имя каждой меры должно быть уникальным в пределах таблицы.
-
Избегайте использования имен, ранее использовавшихся для вычисляемых столбцов внутри той же книги. Меры и вычисляемые столбцы могут иметь одинаковые имена, но если они не будут уникальными, то возможно появление ошибок вычисления.
-
При переименовании меры любые формулы, использующие ее в формуле, также должны быть обновлены. Обновление результатов формул происходит автоматически, если не включен режим ручного обновления. Однако эта операция может занять некоторое время.
-
Так как имя является частью формулы меры, в нем нельзя использовать некоторые символы. Дополнительные сведения см. в подзадаче «Требования к именоимингу» в синтаксис DAX.
К началу страницы
Совет: Вы можете объединить меры из нескольких таблиц в одну, создав пустую таблицу, а затем переместив в нее существующие меры или создав новые. Учтите, что при обращении к столбцам в других таблицах может потребоваться включить имена этих таблиц в формулы DAX.
Задачи
В следующей статье содержатся инструкции по созданию явных и неявных вычисляемых полей.
Создание меры в сводной таблице или сводной диаграмме
К началу страницы
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 BI
Чтобы обратиться к вычисляемому столбцу в других вычислениях, нужно написать имя таблицы, в которой он находится, и название самого столбца. Например, '
Таблица'
[Столбец]
Меры – это динамические вычисления, результаты которых рассчитываются в зависимости от контекста. Результат вычисления меры можно увидеть в отчете, где мы задаем в каком именно контексте (в разрезе каких полей, фильтров и др.) нужно посчитать меру.
Как создать меру:
- В Excel меры записывают в окне Power Pivot в области для вычислений под таблицей: выберите ячейку, введите название меры и знак :=
Или в меню Power Pivot → Меры → Создать меру. - Чтобы создать меру в Power BI, нажмите Главная → Создать меру (или нажать правой кнопкой мышки в области полей по таблице → Создать меру).
в Power Pivot
в 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. Так что эта формула не только считает сумму, без нее в принципе мало какие расчёты работают )
2. BLANK
Формула BLANK возвращает пустое значение. Пустое значение в DAX – это отсутствие значения, а не привычный нам в Excel 0 (ноль) или пустая строка («»).
Записывается формула очень просто:
Никаких аргументов у нее нет.
Формулы BLANK нет в Excel, но в вычислениях с DAX она используется очень часто. Для чего нужна формула BLANK? Она помогает скрыть в отчетах ненужные значения.
3. IF
Формула IF – это логическая формула, аналог ЕСЛИ в Excel. Она проверяет условие и, если условие выполнено, возвращает одно значение, иначе – другое значение.
Синтаксис формулы:
IF(<условие>, <значение если истина>[, <значение если ложь>])
Какой же анализ данных может обойтись без логических формул? При всей важности формулы IF, используется она не так часто, как может показаться. Потому что во многих DAX-вычислениях её заменяют формулы фильтрации, о которых мы расскажем позже.
4. DIVIDE
Формула DIVIDE – формула для улучшенного деления.
Несмотря на то, что в DAX есть привычный нам оператор деления / , формула DIVIDE лучше. Она удобнее и в ней не надо делать проверку ошибки деления на ноль. Формула сама всё проверит и заменит ошибку на пустое значение.
Синтаксис формулы:
DIVIDE(<числитель>, <знаменатель> [, <альтернативный результат>])
<альтернативный результат> — это значение, которое будет выводиться, когда деление на ноль приводит к ошибке. Его указывать необязательно, по умолчанию формула возвращает пустое значение.
5. MIN и MAX
Формулы MIN и MAX – это агрегирующие формулы. Они находят минимальное и, соответственно, максимальное значение из столбца или из двух выражений (выражение должно вычислять единичное значение).
MIN(<столбец>) MIN(<выражение1>, <выражение2>) |
MAX(<столбец>) MAX(<выражение1>, <выражение2>) |
Если вы думаете, что эти формулы нужны для поиска наименьшего или наибольшего значения показателя, то вы правы. А еще MIN и MAX часто применяются в вычислениях, связанных с датами. То есть они вам точно пригодятся – выписываем и берем на вооружение!
6. 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 позволяет выполнять самые разные вычисления. Примеры таких вычислений можно посмотреть в следующих статьях.
Файлы к уроку:
- Для спонсоров 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) | Создадим срез для переключения детализации с месяца на квартал. |
Постановка задачи
В исходных данных имеем две таблицы. Скромную в дизайне, большую по размеру, но удобную в работе таблицу с фактическими значениями продаж, выгруженную из какой-нибудь учетной системы:
И «красивую» таблицу с плановыми помесячными показателями от руководства:
Задача: каким-то образом объединить обе таблицы в одну, чтобы наглядно отобразить выполнение плана по каждому товару, региону, месяцу, кварталу и т.д.
Необходимая оговорка
Можно, конечно, не напрягаться, и решать это дело привычным образом «в лоб». Т.е. с помощью 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 они должны быть «умными» (динамическими). Для этого с каждой таблицей проделываем следующее:
- Выделяем любую ячейку таблицы
- Жмем сочетание клавиш Ctrl+T или выбираем Главная — Форматировать как таблицу (Home — Format as Table).
- В открывшемся окне проверяем корректность выделения диапазона (особенно для таблицы плана!) и включена ли галочка Таблица с заголовками (My table has headers) и жмем ОК.
- На вкладке Конструктор (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):
В старых версиях эта кнопка называлась Связанная таблица (Linked table).
В итоге все наши таблички должны загрузиться в открывшееся окно Power Pivot на отдельные вкладки:
Шаг 4. Доводим до ума таблицу План
Прежде, чем загрузить в Модель данных Power Pivot таблицу с плановыми значениями, её нужно сначала подрихтовать: убрать в ней пустые строки и итоги, развернуть в плоскую, заполнить пустые ячейки в первом столбце городами и т.д. Проще и легче всего это проделать с помощью надстройки Power Query.
Сначала загрузим таблицу с планами в редактор запросов Power Query, используя кнопку Из таблицы/диапазона (From Table/Range) на вкладке Данные (Data) или на вкладке Power Query (если у вас старая версия Excel 2010-2013 и вы установили 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.
Шаг 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