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


Антон БудуевПриветствую Вас, дорогие друзья, с Вами Будуев Антон. В этой статье мы разберем несколько текстовых функций языка DAX, которые выводят нужное количество символов в Power BI или PowerPivot. А именно, функции LEFT, RIGHT и MID.
 

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

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

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

 

DAX функции LEFT и RIGHT в Power BI и Power Pivot

LEFT () — выводит нужное количество символов с левой стороны.

RIGHT () — выводит нужное количество символов с правой стороны.

Синтаксис:

LEFT ("Текст"; Количество Символов)
RIGHT ("Текст"; Количество Символов)

Где:

  • Текст – исследуемый текст или столбец с текстовыми данными
  • Количество Символов – количество символов, которые нужно вывести

Рассмотрим примеры формул на основе DAX функций LEFT и RIGHT.

В Power BI Desktop имеется исходная таблица по товарам «Обувь», содержащая один столбец [Кроссовки], в котором расположена в единую строку информация по виду обуви (кроссовки), бренду и по сезону коллекции:

Исходная таблица в Power BI

 

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

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

Давайте напишем соответствующие формулы:

Вид Обуви = LEFT ([Кроссовки]; 9)
Сезон Коллекции = RIGHT ([Кроссовки]; 10)

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

Во вторых параметрах мы прописали количество символов, которые нужно вывести — 9 и 10, так как слово «кроссовки» состоит из 9 символов, а «коллекц’17» из 10.

В итоге, в Power BI мы получили следующий результат:

Результат работы формул в Power BI на основе DAX функций LEFT и RIGHT

 

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

 

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

MID () — выводит часть текста заданной длинны с учетом первоначальной позиции.

Синтаксис:

MID ("Текст"; Позиция; Количество Символов)

Где:

  • Текст – исследуемый текст или столбец с текстовыми данными
  • Позиция – номер позиции символа, с которого нужно выводить текст
  • Количество Символов – количество символов, которые нужно вывести

Рассмотрим пример работы формулы на основе DAX функции MID.

В модели данных Power BI имеется исходная таблица по товарам в магазине обуви. В таблице имеется один столбец, в котором в единую строку расписана информация по виду обуви, бренду и размеру:

Исходная таблица в Power BI

 

Задача — на основе имеющейся информации, требуется создать в исходной таблице столбец с именем бренда. Попробуем это реализовать при помощи функции MID:

Бренд = MID ([Обувь]; 9; 4)

Но, данная формула, в Power BI работает неправильно:

Неправильная работа DAX функции MID

 

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

Справится с этой проблемой нам поможет другая DAX функция — FIND, которая найдет среди всей строки заданное нами слово «NIKE» и вернет ее стартовую позицию среди всего текста. Подробно прочитать о работе функции FIND Вы можете в этой статье.

Итак, исправим нашу формулу:

Бренд = 
MID (
    [Обувь]; 
    FIND ("NIKE"; [Обувь]; 1; 1);
    4
)

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

Во втором параметре мы разместили DAX функцию FIND, которая найдет слово «NIKE» и вернет его стартовую позицию

В третьем параметре мы указали количество выводимых символов.

В результате выполнения этой формулы на основе DAX функций MID и FIND в исходной таблице в Power BI Desktop будет создан следующий вычисляемый столбец:

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

 

Теперь, все заработало как нужно.

На этом с разбором DAX функций LEFT, RIGHT и MID, возвращающих нужное количество символов в Power BI и PowerPivot, все.

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

 

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

 

 

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

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

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

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

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

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

 

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


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


3 thoughts on “Как в Power BI (Power Pivot) вывести найденный текст? DAX функции LEFT, RIGHT и MID”

  1. Добрый день! А есть ли способ выделить бренды если их несколько. Например, в вашем последнем примере:

    Бренд =
    MID (
    [Обувь];
    FIND («NIKE»; [Обувь]; 1; 1);
    4
    )

    если бы у нас были кроссовки не только бренда nike, но и бренда adidas ?

    1. Роман, день добрый. В данном случае, возможны разные варианты. Как один из них — использовать функцию SEARCH

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

      Бренд = 
      IF (
          SEARCH("nike";[Обувь];1;0)<>0;
          "NIKE";
          IF(
              SEARCH("adidas";[Обувь];1;0)<>0;
              "ADIDAS"
          )
      )
      

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

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

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