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


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

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

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

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

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

 

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

REPLACE () — заменяет один текст другим, с учетом стартовой позиции и количества символов.

Синтаксис:

REPLACE ("Текст 1"; Позиция; Количество; "Текст 2")

Где:

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

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

В Power BI Desktop имеется исходная таблица «Спорт Товары», содержащая перечисление спортивных курток бренда NIKE:

Исходная таблица с ошибкой

 

Но, в этой таблице наименование бренда записано с ошибкой — NICE. Задача — в исходной таблице создать столбец с перечислением спортивной одежды без ошибок в наименовании бренда. Попробуем решить эту задачу при помощи DAX функции REPLACE, которая сможет заменить слово NICE на NIKE.

Запишем формулу, где в первом параметре REPLACE вставим ссылку на исходный столбец с текстовой информацией, во втором параметре укажем позицию, с которой нужно начать замену символов, равную 7. В третьем параметре пропишем количество символов для замены — 4 и в четвертом параметре само новое слово «NIKE»:

Спортивная Одежда NEW = REPLACE ([СпортивнаяОдежда]; 7 ; 4; "NIKE")

Но, в Power BI, к сожалению, результат не тот, который мы ожидали:

Результат работы функции REPLACE с ошибкой

 

А именно, в первой строке наименование бренда написано слитно с первым словом и вообще, имя бренда опять написано неправильно. Вся эта ошибка возникла из-за того, что мы в формуле указали 7 позицию символа, с которого нужно начать замену. Но, 7 позиция верна только для 2 и 3 строки, а для первой нужна 8 позиция, так как первое слово в первой строке длиннее на 1 символ, чем во 2 и 3 строке.

Чтобы исправить эту ошибку, дополнительно воспользуемся еще одной функцией языка DAX — SEARCH (подробно ознакомиться с этой функцией Вы можете в данной статье), которая способна найти искомое слово с ошибкой и вернуть его стартовую позицию. Исправим нашу формулу:

Спортивная Одежда NEW = 
REPLACE (
    [СпортивнаяОдежда]; 
    SEARCH ("NICE"; [СпортивнаяОдежда]; 1; 1);
    4; 
    "NIKE"
)

Проверим работу этой формулы в Power BI:

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

 

Как мы видим, теперь ошибка в наименовании бренда исправлена.

 

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

SUBSTITUTE () — заменяет один текст другим с учетом регистра.

Синтаксис:

SUBSTITUTE ("Текст 1"; "Текст 2"; "Текст 3"; Номер Вхождения)

Где:

  • Текст 1 – исходный текст (столбец с текстовыми данными)
  • Текст 2 – часть текста, которую нужно изменить
  • Текст 3 – новая часть текста
  • Номер вхождения — (необязательный параметр) вхождение (повторы) того слова, которое нужно заменить. Если параметр неуказан, то по умолчанию заменяются все вхождения (повторы) искомого слова

Рассмотрим формулу на основе DAX функции SUBSTITUTE, продолжая пример, который мы рассматривали выше, но сейчас, немного усложним исходные данные.

В Power BI имеется такая же исходная таблица по спортивным товарам, но сейчас там расположены разные бренды, и ошибка в наименовании бренда NIKE допущена только в одной строке:

Исходная таблица с ошибкой в тексте первой строки

 

Если мы попытаемся изменить ошибку при помощи функции REPLACE, которую рассматривали выше, то из-за того, что в ней нужно указывать точный номер позиции первого символа для замены, ошибку здесь изменить невозможно:

Для исправления ошибки функция REPLACE не подходит

 

И тут, нам на помощь приходит еще одна текстовая функция языка DAX — SUBSTITUTE, в которой уже нет необходимости указывать какие-либо стартовые позиции. В ней просто нужно указать именно то конкретное слово, которое нужно изменить. Напишем формулу с участием функции SUBSTITUTE:

Спортивная Одежда NEW = SUBSTITUTE ([СпортивнаяОдежда]; "NICE"; "NIKE")

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

В итоге, в Power BI Desktop мы можем наблюдать созданный вычисляемый столбец с информацией без каких-либо ошибок:

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

 

На этом, с разбором DAX функций REPLACE и SUBSTITUTE, заменяющих одну часть текста другой в Power BI и Power Pivot, все.

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

 

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

 

 

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

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

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

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

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

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

 

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


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


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

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

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