Извлечение нескольких вхождений текста между заданными строками в Google Sheets

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

Мой входной текст, в одной ячейке, является результатом выбора пользователя. Это похоже на (так что это строка с несколькими подстроками):

"блюдо (20$)", "метро (5,5$)"

Я хотел бы извлечь (а затем сложить) цены каждого отдельного выбора, чтобы иметь этот вывод в другой ячейке:

20+5,5

Я искал с функциями FIND и SPLIT, но смог извлечь только первую цену. Другим решением, которое я вижу, было бы разбить текст и использовать ArrayFormula для суммирования, но пока я не могу найти способ разбить текст с несколькими символами.

Я использую Google Sheets, так что не могу использовать функцию TEXTSPLIT в Excel и не применяю макросы.

Спасибо за вашу помощь!

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

Чтобы извлечь несколько значений текстовых цен из одной ячейки в Google Sheets, вам потребуется воспользоваться комбинацией функций для работы со строками. Рассмотрим, как это сделать на конкретном примере.

Задача:

У вас есть строка формата:

"meal (20$)", "metro (5,5$)"

Вы хотите извлечь цены и получить в результате что-то вроде 20+5,5 в другой ячейке.

Решение:

  1. Использование функции SPLIT: Первым шагом является разделение строки на отдельные элементы. Мы можем воспользоваться функцией SPLIT, указывая нужный разделитель. В данном случае мы будем использовать ", " (запятая и пробел).

  2. Извлечение цен с помощью REGEXEXTRACT: После того как мы получили массив значений, используем функцию REGEXEXTRACT для извлечения именно цен. Регулярное выражение позволит нам выбрать только числовые значения перед символом $.

  3. Суммирование значений: Наконец, после извлечения цен, мы можем воспользоваться функцией JOIN для соединения полученных значений с знаком +.

Шаги в Google Sheets:

  1. Допустим, ваш текст находится в ячейке A1. В ячейке B1 мы можем воспользоваться следующей формулой:
=JOIN("+", ARRAYFORMULA(REGEXEXTRACT(SPLIT(A1, ", "), "\(([\d,.]+)\$")))

Пояснение формулы:

  • SPLIT(A1, ", "): Делит строку на массив строк, используя , как разделитель.
  • REGEXEXTRACT(…, "(([\d,.]+)\$"): Извлекает число (включая дробные) перед символом $ из каждой строки массива.
  • ARRAYFORMULA(…): Применяет REGEXEXTRACT ко всем элементам, полученным из SPLIT.
  • JOIN("+", …): Соединяет все извлеченные значения с помощью знака +.

Результат:

После ввода этой формулы в ячейку B1, вы получите желаемый результат: 20+5,5, что позволит вам легко суммировать значения или использовать их в дальнейших расчетах.

Вывод:

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

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

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