Вопрос или проблема
Мой входной текст, в одной ячейке, является результатом выбора пользователя. Это похоже на (так что это строка с несколькими подстроками):
"блюдо (20$)", "метро (5,5$)"
Я хотел бы извлечь (а затем сложить) цены каждого отдельного выбора, чтобы иметь этот вывод в другой ячейке:
20+5,5
Я искал с функциями FIND
и SPLIT
, но смог извлечь только первую цену. Другим решением, которое я вижу, было бы разбить текст и использовать ArrayFormula для суммирования, но пока я не могу найти способ разбить текст с несколькими символами.
Я использую Google Sheets, так что не могу использовать функцию TEXTSPLIT
в Excel и не применяю макросы.
Спасибо за вашу помощь!
Ответ или решение
Чтобы извлечь несколько значений текстовых цен из одной ячейки в Google Sheets, вам потребуется воспользоваться комбинацией функций для работы со строками. Рассмотрим, как это сделать на конкретном примере.
Задача:
У вас есть строка формата:
"meal (20$)", "metro (5,5$)"
Вы хотите извлечь цены и получить в результате что-то вроде 20+5,5
в другой ячейке.
Решение:
-
Использование функции SPLIT: Первым шагом является разделение строки на отдельные элементы. Мы можем воспользоваться функцией
SPLIT
, указывая нужный разделитель. В данном случае мы будем использовать", "
(запятая и пробел). -
Извлечение цен с помощью REGEXEXTRACT: После того как мы получили массив значений, используем функцию
REGEXEXTRACT
для извлечения именно цен. Регулярное выражение позволит нам выбрать только числовые значения перед символом$
. -
Суммирование значений: Наконец, после извлечения цен, мы можем воспользоваться функцией
JOIN
для соединения полученных значений с знаком+
.
Шаги в Google Sheets:
- Допустим, ваш текст находится в ячейке
A1
. В ячейкеB1
мы можем воспользоваться следующей формулой:
=JOIN("+", ARRAYFORMULA(REGEXEXTRACT(SPLIT(A1, ", "), "\(([\d,.]+)\$")))
Пояснение формулы:
- SPLIT(A1, ", "): Делит строку на массив строк, используя
,
как разделитель. - REGEXEXTRACT(…, "(([\d,.]+)\$"): Извлекает число (включая дробные) перед символом
$
из каждой строки массива. - ARRAYFORMULA(…): Применяет
REGEXEXTRACT
ко всем элементам, полученным изSPLIT
. - JOIN("+", …): Соединяет все извлеченные значения с помощью знака
+
.
Результат:
После ввода этой формулы в ячейку B1
, вы получите желаемый результат: 20+5,5
, что позволит вам легко суммировать значения или использовать их в дальнейших расчетах.
Вывод:
Таким образом, используя вышеописанные функции Google Sheets, вы можете эффективно извлечь и обработать текстовые данные, сохраняя при этом большую гибкость в работе с данными, не прибегая к макросам или дополнительным инструментам.