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


Антон БудуевПриветствую Вас, дорогие друзья, с Вами Будуев Антон. В этой статье мы разберем несколько текстовых функций языка 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


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


6 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"
          )
      )
      
  2. Добрый день.
    А если у меня строка с иерархией отделов, например: руководители/деп. логистики/отд. доставки/водители (их несколько видов в таблице), и мне нужно разделить эти отделы на условно 4 столбца. Соответственно названия департаментов и отделов разной длинны. С left и right все понятно (search или find даст мне расположение слеша), а как быть с mid? при указании в позицию и количество символов функции search или find выдает ошибку, что mid имеет неправильный тип данных или недопустимое значение. Заранее спасибо

    1. Здравствуйте. На самом деле, для разделения строки на столбцы использовать DAX не совсем верно. Для этого очень хорошо подходит Power Query — он как раз и существует для того, чтобы подготавливать модель данных. Загрузите Вашу таблицу в модель данных через Power Query, предварительно разделив строки на столбцы следующим способом:
      1) Выделите сам столбец и вызовите контекстное меню через правую клавишу мыши
      2) Перейдите в меню Разделить столбец / по разделителю: ссылка на скриншот
      3) Введите в качестве разделителя слеш /, и пункт «по каждому вхождению разделителя, нажмите ок: ссылка на скриншот

      и строка у Вас разделится на столбцы. Назовите столбцы нужными именами и выйдите из Power Ouery: ссылка на скриншот

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

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

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