Извлечь текст после символа для каждого вхождения в Excel

Вопрос или проблема

Я пытаюсь извлечь 4-значное число после символа «#».

Пример данных:

Столбец
Apple#1000Red Potato #2000Brown Laptop #3000 Black
Printer#4000White Table#5000
Sky #6000 Blue

Мне нужна формула, которая даст мне:

Столбец
1000,2000,3000
4000,5000
6000

Есть ли способ извлечь текст после символа, где в некоторых случаях больше одного символа?

Спасибо!

Вот один из способов достичь желаемого результата:

enter image description here


=TEXTJOIN(",",1,TEXTSPLIT(A1,VSTACK({" ","#"},CHAR(SEQUENCE(26)+{64,96})),,1))

Или добавить помощник LAMBDA() для разливки:

=MAP(A1:A3, LAMBDA(x, TEXTJOIN(",",1,TEXTSPLIT(x,VSTACK({" ","#"},CHAR(SEQUENCE(26)+{64,96})),,1))))

Или использовать REGEXEXTRACT()

=ARRAYTOTEXT(REGEXEXTRACT(A1,"(\d{4})",1))

Ответ или решение

Извлечение текста после символа в Microsoft Excel может быть выполнено несколькими различными методами. Задача, как описано в вашем запросе, заключается в извлечении четырёхзначных чисел, следующих за символом "#". Давайте рассмотрим несколько подходов, используя формулы Excel и функции.

Теория

Microsoft Excel предоставляет ряд инструментов и функций для работы с текстом и данными. В контексте задачи по извлечению текста после специфического символа, мы можем использовать такие функции как TEXTJOIN, TEXTSPLIT, LAMBDA, а также регулярные выражения через REGEXEXTRACT. Ниже мы детально рассмотрим каждую из этих функций и объясним, как они могут быть использованы для достижения поставленной цели.

Пример 1: Использование TEXTJOIN

Формула:

=TEXTJOIN(",",1,TEXTSPLIT(A1,VSTACK({" ","#"},CHAR(SEQUENCE(26)+{64,96})),,1))

Теория:
Формула TEXTJOIN позволяет объединять несколько текстовых строк в одну, используя указанный разделитель. В данном случае это запятая. Функция TEXTSPLIT разделяет текст на части на основании заданных разделителей, в данном случае это пробел и "#".

Пример:
Для данных Apple#1000Red Potato #2000Brown Laptop #3000 Black, функция разобьет строку на часть 1000, затем 2000, и так далее.

Применение:
Эта формула находит и объединяет все четырехзначные числа, извлекая их после символа #, что удобно при наличии множества таких символов в одной строке.

Пример 2: Использование LAMBDA

Формула:

=MAP(A1:A3, LAMBDA(x, TEXTJOIN(",",1,TEXTSPLIT(x,VSTACK({" ","#"},CHAR(SEQUENCE(26)+{64,96})),,1))))

Теория:
Функция LAMBDA позволяет создавать пользовательские функции в Excel, которые можно повторно использовать без необходимости постоянного изменения формулы. Здесь LAMBDA применяется в комбинации с MAP, чтобы обработать массив данных (несколько строк сразу).

Пример:
Эта формула проходит по каждому элементу в диапазоне данных (например, A1:A3), извлекает числа с помощью TEXTSPLIT, и обрабатывает их в TEXTJOIN в единую строку для каждой ячейки.

Применение:
Эта мощная комбинация LAMBDA и MAP особенно полезна для больших массивов данных, где необходимо повторно применять одну и ту же логику.

Пример 3: Использование регулярных выражений через REGEXEXTRACT

Формула:

=ARRAYTOTEXT(REGEXEXTRACT(A1,"(\d{4})",1))

Теория:
Регулярные выражения (regex) являются мощным инструментом для сложного поиска и манипуляции строковыми данными. REGEXEXTRACT позволяет извлечь все подстроки, которые соответствуют заданному шаблону. Шаблон (\d{4}) ищет четырехзначные числа.

Пример:
Для строки Printer#4000White Table#5000, функция найдет и извлечет 4000 и 5000.

Применение:
Использование регулярных выражений подходит для сложных сценариев, где текстовые шаблоны могут изменяться, и требуется гибкость в извлечении данных.

Заключение

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

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

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

Капча загружается...