Россия Нет

Функции таблиц уникальных значений в DAX: VALUES и DISTINCT в Power BI и Power Pivot

 
   
   

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


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

 

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

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

Да, и еще один момент, в рамках распродажи до 29 ноября 2024 г. у Вас имеется возможность приобрести большой, пошаговый видеокурс «DAX — это просто» со скидкой 50% (вместо 10000, всего за 5000 руб.)

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

Итак, пользуйтесь этой возможностью, заказывайте курс «DAX — это просто» со скидкой 50% (до 29 ноября 2024 г.): узнать подробнее

до конца распродажи осталось:

 

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

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

Синтаксис: VALUES (‘Таблица’) или VALUES ([Столбец])

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

В качестве примера возьмем исходную таблицу «СпрМенеджеры», находящуюся в Power BI и содержащую информацию по менеджерам и отделам:

 

Создадим в Power BI Desktop во вкладке «Моделирование» вычисляемую таблицу уникальных значений отделов на основе формулы с участием VALUES:

Таблица = VALUES ('СпрМенеджеры'[Отдел])

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

 

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

Например, мы можем в рамках одной формулы объединить VALUES с функцией COUNTROWS, которая считает количество строк. Тем самым, мы можем создать меру, вычисляющую на основе исходной таблицы «СпрМенеджеры» количество отделов в организации:

Количество Отделов = 
COUNTROWS (
    VALUES ('СпрМенеджеры'[Отдел])
)

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

 

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

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

Таблицы фактов обычно содержат очень большой объем данных (миллионы строк), которые могут повторятся. Например, таблица фактов «Заявки», в которой в каждой строке указана информация по одной заявке — сумма, затраты, менеджер, дата сделки и т.д.

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

Синтаксис: DISTINCT ([‘Таблица’]) или DISTINCT ([Столбец])

В качестве примера работы функции DISTINCT напишем простую формулу, которая создаст в нашей модели данных справочник по менеджерам на основе исходной таблицы фактов «Заявки»:

 

Итак, код формулы в DAX достаточно простой:

СпрМенеджеры = DISTINCT ('Заявки'[Менеджер])

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

 

Далее, в Power BI Desktop во вкладке «Связи» можно будет объединить все таблицы, содержащие столбец [Менеджер], на основе созданного функцией DISTINCT, справочника «СпрМенеджер»:

 

В результате использования функции DISTINCT, мы смогли создать справочник с уникальными значениями менеджеров, при помощи которого, объединили две таблицы фактов «Заявки» и «Дополнительные затраты».

На этом, с разбором DAX функций VALUES и DISTINCT в Power BI и Power Pivot, в этой статья все.



 

Друзья, хотите изучить полный курс по языку DAX для Power BI и Power Pivot
со скидкой 50% вместо 10000 всего за 5000 р.?

 
акция действует до 29 ноября


 

 


 
Узнать все подробности об этом курсе, а также заказать его со скидкой 50% всего за 5000 руб. Вы можете на странице курса, кликнув по кнопке ниже (до 29 ноября):
 

Узнать подробнее и заказать курс всего за 5000 руб.

Пожалуйста, оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(27 голосов, в среднем: 4.8 из 5 баллов)
[Экспресс-видеокурс] Быстрый старт в языке DAX

 
 
Антон БудуевУспехов Вам, друзья!
С уважением, Будуев Антон.
Проект «BI — это просто»
 
 
 
 

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

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

Автор статьи:
Категория: Язык функций и формул DAX для Power BI и Excel (Power Pivot)

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

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


  1. Санжар:

    Антов добрый день!

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

    1. Антон Будуев:

      Здравствуйте, Санжар. Да, конечно, справочник будет обновляться

  2. Василий:

    Антон, здравствуйте!

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

    1. Антон Будуев:

      Здравствуйте, Василий. Формула будет такой:

      COUNTROWS(
          SUMMARIZE(
              FILTER('Таблица';условие);
              'Таблица'[Столбец в котором нужно посчитать уникальные значения]
          )
      )
      

      FILTER — отфильтрует таблицу по нужным нам условиям
      SUMMARIZE — возвратит таблицу с 1 столбцом с уникальными значениями
      COUNTROWS — посчитает количество этих уникальных строк

  3. Сергей:

    Добрый день, Антон!
    Подскажи пожалуйста как создать справочник из таблицы «Факт» сразу с несколькими полями.
    Например, требуется сделать справочник с тремя столбцами. Для этого надо вытянуть из числа прочих столбцов общей таблицы столбец «НаселеныйПункт» с уникальными значениями и соответствующие ему поля «ФедеральныйОкруг» и «Регион»?

    1. Антон Будуев:

      Здравствуйте, Сергей.

      Справочник можно создать при помощи одной из функций, о которых говорилось в статье выше (VALUES и DISTINCT). Затем, в этой созданной таблице добавить вычисляемые столбцы и при помощи функции RELATED прописать в этих добавленных столбцах ФО и Регион (на сколько я понимаю, ФО и Регион у Вас прописаны в отдельных связанных таблицах). Статья про функцию RELATED