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


Антон БудуевПриветствую Вас, дорогие друзья, с Вами Будуев Антон. В этой статье мы разберем функции NATURALINNERJOIN и NATURALLEFTOUTERJOIN, которые способны в коде языка DAX объединить две таблицы в одну на основе внутренних связей в Power BI или Power Pivot (Excel).

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

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

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

 

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

NATURALINNERJOIN () — создает новую таблицу, объединяя столбцы левой и правой таблицы и выводит только те строки, которые имеют одно и то же значение. Функция работает на основе внутренних DAX связей в Power BI или Power Pivot.

Синтаксис:

NATURALINNERJOIN ('Левая Таблица'; 'Правая Таблица')

! — Названия столбцов в левой и правой таблицах должны быть разными
! — Обе таблицы должны быть объединены внутренней связью в DAX

Пример формулы на основе DAX функции NATURALINNERJOIN.

В Power BI Desktop имеются две исходные таблицы «Общие Продажи» и «Справочник Менеджеры»:

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

 

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

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

Обе таблицы связаны внутренней связью DAX в Power BI:

Внутренняя DAX связь между таблицами в Power BI

 

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

С этой задачей легко справится функция NATURALINNERJOIN, так как между таблицами настроена внутренняя связь в DAX.

Напишем соответствующую формулу с использованием NATURALINNERJOIN:

Продажи Отделов = NATURALINNERJOIN ('спрМенеджеры'; 'ОбщиеПродажи')

Результатом выполнения этой формулы будет новая вычисляемая таблица в Power BI Desktop:

Результат выполнения формулы DAX функции NATURALINNERJOIN

 

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

Аналогично, мы не увидим менеджера Соловьеву, так как у нее нет ни одной продажи.

 

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

NATURALLEFTOUTERJOIN () — создает новую таблицу, объединяя столбцы левой и правой таблицы и выводит все строки из правой таблицы, а также из левой, которые имеют одно и то же значение с правой. Функция работает на основе внутренних DAX связей в Power BI или Power Pivot.

Синтаксис:

NATURALLEFTOUTERJOIN ('Левая Таблица'; 'Правая Таблица')

! — Названия столбцов в левой и правой таблицах должны быть разными
! — Обе таблицы должны быть объединены внутренней связью в DAX

Пример формулы на основе DAX функции NATURALLEFTOUTERJOIN.

Рассмотрим пример на основе все тех же двух исходных таблиц «Общие Продажи» и «Справочник Менеджеры», которые мы рассматривали в примере выше.

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

Формула с использованием DAX функции NATURALLEFTOUTERJOIN будет следующей:

ПродажиОтделов = NATURALLEFTOUTERJOIN ('спрМенеджеры'; 'ОбщиеПродажи')

И результат выполнения этой формулы будет такой:

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

 

В отличие от первого примера, где мы рассматривали функцию NATURALINNERJOIN, в данном случае, NATURALLEFTOUTERJOIN вывела еще одну строку с менеджером Соловьева и ее пустыми продажами. Так как в таблице «Справочник Менеджеров» этот менеджер есть, а продаж в таблице «Общие Продажи» — нет.

Аналогично с директором Соколовой — NATURALLEFTOUTERJOIN также не вывела ее продажи, так как Соколовой нет в справочнике по менеджерам.

На этом, с разбором NATURALINNERJOIN и NATURALLEFTOUTERJOIN, функций в DAX, которые объединяют таблицы в одну на основе внутренних связей в Power BI или Power Pivot, все.

Успехов Вам, друзья!

 

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

 

 

 

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

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

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

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

 

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

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

 

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


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


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

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

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