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


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

Разберем их параметры, свойства, отличие друг от друга, ну и посмотрим примеры формул.

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

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

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

 

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

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

Синтаксис:

FIND ("Текст 1"; "Текст 2"; Номер Позиции; Значение Нет)

Где:

  • Текст 1 — символы текста, которые нужно найти. Используются подстановочные шаблоны: ? — один любой символ, * — много любых символов. Если в тексте нужно найти знак вопроса (?) или знак звездочка (*), то перед ними нужно поставить значок тильды ~
  • Текст 2 — текст, в котором идет поиск
  • Номер Позиции — номер позиции того символа, с которого нужно начать поиск
  • Значение Нет — (необязательный параметр) числовое значение или значение BLANK (), которое нужно вывести, если текст не найден

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

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

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

 

Попробуем в этом столбце при помощи функции FIND найти бренд NIKE и вывести номер позиции первого символа найденного текста, то есть номер позиции символа N. Для этого, создадим в этой таблице второй столбец по следующей формуле:

Поиск NIKE = FIND ("NIKE"; [Кроссовки]; 1; BLANK())

В первом параметре мы прописали тот текст, который мы ищем.

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

В третьем параметре прописали номер позиции символа, с которого начнется поиск в исходном тексте, то есть, в исходном столбце [Кроссовки] поиск начнется с самого первого символа.

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

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

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

 

То есть, в первой строке функция FIND нашла искомое выражение и вывела номер позиции первого символа, равный 11. Во всех остальных строках — пусто, так как там искомого текстового выражения «NIKE» — нет и в дело вступил четвертый параметр функции FIND, где размещена функция BLANK, возвращающая пустое значение.

Давайте изменим регистр букв искомого выражения с верхнего на нижний, то есть, так:

Поиск NIKE = FIND («nike»; [Кроссовки]; 1; BLANK())

И посмотрим результат в Power BI:

Результат работы функции FIND с искомым текстом в малом регистре

 

Как мы видим, FIND не нашла текст «nike», написанное в малом регистре, так как эта функция учитывает регистры текста.

Теперь рассмотрим вторую функцию поиска в языке DAX.

 

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

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

Синтаксис:

SEARCH ("Текст 1"; "Текст 2"; Номер Позиции; Значение Нет)

Где:

  • Текст 1 — символы текста, которые нужно найти. Используются подстановочные шаблоны: ? — один любой символ, * — много любых символов. Если в тексте нужно найти знак вопроса (?) или знак звездочка (*), то перед ними нужно поставить значок тильды ~
  • Текст 2 — текст, в котором идет поиск
  • Номер Позиции — номер позиции того символа, с которого нужно начать поиск
  • Значение Нет — (необязательный параметр) числовое значение или значение BLANK (), которое нужно вывести, если текст не найден

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

В качестве примера продолжим рассматривать ситуацию, которую мы разбирали в примере выше.

Напишем формулу поиска текста «NIKE» при помощи функции SEARCH:

Поиск NIKE = SEARCH ("NIKE"; [Кроссовки]; 1; BLANK())

Результат будет таким:

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

 

Как мы видим, SEARCH нашла искомый текст и, также, вывела номер позиции его первого символа N, равный 11. Теперь, как и в примере выше, изменим текст, которой нужно найти, а именно изменим его регистр на нижний, то есть так:

Поиск NIKE = SEARCH («nike»; [Кроссовки]; 1; BLANK())

И проверим результат:

Измененная формула SEARCH с текстом поиска в нижнем регистре

 

А результат уже не тот, как был с функцией FIND. Если FIND в этом случае вывел пустое значение, то SEARCH нашла искомый текст, несмотря на то, что регистр букв не совпадал.

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

Если требуется возвратить найденный текст, то после того, как рассматриваемые функции вернут номер позиции первого символа, можно воспользоваться текстовой функцией MID, которая выведет найденный текст.

То же самое, если найденный текст Вам нужно заменить, то после того, как FIND или SEARCH вернут номер позиции первого символа, нужно воспользоваться текстовой функцией REPLACE, которая произведет замену найденных символов.

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

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

 

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

 

 

 

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

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

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

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

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

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

 

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


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


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

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

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