Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):


Антон БудуевПриветствую Вас, дорогие друзья, с Вами Будуев Антон. В данной статье мы разберем 3 функции, которые способны создавать таблицы в DAX на основе объединения двух и более исходных таблиц. И это функции UNION, INTERSECT и EXCEPT в Power BI и Power Pivot.

Рассмотрим подробно каждую из них в отдельности.

Для Вашего удобства, рекомендую скачать «Справочник DAX функций для Power BI и Power Pivot» в PDF формате.

Если же в Ваших формулах имеются какие-то ошибки, проблемы, а результаты работы формул постоянно не те, что Вы ожидаете и Вам необходима помощь, то записывайтесь в бесплатный экспресс-курс «Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot».

А также, подписывайтесь на наши социальные сети. Потому что именно в них, Вам будут доступны оперативно и каждый день наши актуальные фишки, секреты, наработки, примеры, кейсы, полезные советы, видео и статьи по темам сквозной BI аналитики (Power BI, DAX, Power Pivot, Excel…): Вконтакте, Инстаграм, Фейсбук, YouTube.

 

DAX функция UNION в Power BI и Power Pivot

UNION () — создает новую таблицу, объединяя любое количество таблиц с единой структурой столбцов. То есть, объединяет строки нескольких одинаковых таблиц в одну единую таблицу.

Синтаксис: UNION (‘Таблица 1’; ‘Таблица 2’; …; ‘Таблица N’)

Пример формулы с использованием DAX функции UNION.

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

В надстройке Excel (Powerpivot) в самой модели данных вычисляемые таблицы создавать нельзя. Они в Power Pivot создаются только виртуально, во время самого вычисления формулы.

Итак, в Power BI Desktop имеется несколько исходных таблиц с одинаковой структурой столбцов — «Продажи Отдел 1», «Продажи Отдел 2», «Продажи Отдел 3»:

Исходные таблицы

 

Объединим все эти таблицы в одну общую при помощи DAX функции UNION, создав во вкладке «Моделирование» в Power BI Desktop, вычисляемую таблицу на основе следующей формулы:

Общие Продажи = UNION ('ПродажиОтдел1'; 'ПродажиОтдел2'; 'ПродажиОтдел3')

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

Результат работы формулы на основе DAX функции UNION

 

DAX функция INTERSECT в Power BI и Power Pivot

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

Синтаксис: INTERSECT (‘Левая Таблица’; ‘Правая Таблица’)

Пример формулы с использованием DAX функции INTERSECT.

В модели данных имеются 2 таблицы с одинаковой структурой столбцов «Города Где Прибыль Больше 1 млн» и «Города Где Магазинов Меньше 5»:

Исходные таблицы

 

Требуется создать таблицу, в которой должна быть информация о городах, имеющих общую прибыль по городу более 1 млн и при этом количество магазинов в городе меньше 5. То есть, нам нужно создать таблицу из строк первой таблицы, которые есть во второй. А для этого, хорошо подойдет рассматриваемая DAX функция INTERSECT.

Напишем пример формулы на основе INTERSECT:

ГородаПрибыльБол1млнИМагМен5 = 
INTERSECT ('ГородаГдеМагазиновМеньше5'; 'ГородаГдеПрибыльБольше1млн')

И итог работы данной формулы на основе DAX функции INTERSECT следующий:

Результат работы формулы на основе DAX функции INTERSECT

 

То есть, INTERSECT создала в модели данных таблицу, состоящую из двух строк: города Санкт-Петербург и Екатеринбург, в которых общей прибыли больше 1 млн, и при этом, магазинов в каждом городе менее 5.

 

DAX функция EXCEPT в Power BI и Power Pivot

EXCEPT () — создает таблицу из строк левой таблицы, которых нет в правой. В обеих таблицах должна быть идентичная структура столбцов.

Синтаксис: EXCEPT (‘Левая Таблица’; ‘Правая Таблица’)

Пример формулы с использованием DAX функции EXCEPT.

В модели данных Power BI имеются 2 таблицы с одинаковой структурой столбцов «Продажи Менеджеров» и «Топ 3 Максимальные Продажи»:

Исходные таблицы

 

Задача — создать новую таблицу с оставшимися менеджерами и их продажами, не входящих в Топ 3. То есть, нужно создать таблицу из строк первой таблицы, которых нет во второй. И с решением данной задачи нам отлично поможет DAX функция EXCEPT.

Напишем соответствующую формулу с участием EXCEPT:

Оставшиеся Продажи = EXCEPT ('ПродажиМенеджеров'; 'Топ3МаксПродажи')

Результатом выполнения этой формулы с функцией EXCEPT, будет являться новая таблица со строками из «Продажи Менеджеров», которых нет в «Топ 3 Макс Продажи»:

Результат работы формулы на основе DAX функции EXCEPT

 

На этом, с кратким обзором DAX функций, которые создают таблицы в Power BI и Power Pivot на основе строк из других таблиц, в этой статье все. Успехов Вам, друзья!

 

Антон БудуевС уважением, Будуев Антон.
Проект «BI — это просто»

 

 

 

Присоединяйтесь к нашим социальным сетям

Именно в них оперативно и каждый день Вам будут доступны наши актуальные фишки, секреты, наработки, примеры, кейсы, полезные советы, видео и статьи 

по темам сквозной BI аналитики (Power BI, DAX, Power Pivot, Excel...)

Наша группа Вконтакте Мы в Инстаграме Наша группа в Фейсбук Наш YouTube канал
Наша группа VK
Подписаться на наш YouTube канал

 

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

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

 

Понравился материал статьи?
Избранные закладкиДобавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D


Вам это может быть интересно. Другие статьи нашего обучающего портала:


2 thoughts on “Функции объединения таблиц в DAX: UNION, INTERSECT и EXCEPT в Power BI и Power Pivot”

  1. Спасибо за пост.
    Все так и не понятно, как это работает в Power Pivot.
    Например в комбинации с SUMMARIZE (Union(table1, table2), field1, «ExpresName», sum(union table [field2])

    1. Дело в том, что в Power Pivot просто так таблицы на основе DAX кода физически создавать в модели данных нельзя, в отличие от Power BI, как это показано было в примере в статье.

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

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

      В Вашем случае, Вы при помощи SUMMARIZE написали код таблицы, которую в Power Pivot создать нельзя, соответственно, Вам можно только это табличное выражение только агрегировать в мере через итерационные X-функции агрегации (SUMX, COUNTX, AVERAGEX и т.д)

      Запишитесь в бесплатный видеокурс по DAX, в нем я очень подробно разбираю свойства Power BI и Power Pivot с точки зрения языка DAX: https://biprosto.ru/kurs/dax-kurs-free

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

* Заполняя форму отправки комментария своими персональными данными (имя, email, сайт и др.), Вы автоматически подтверждаете свое согласие на обработку своих персональных данных