Как мне разобрать целое число в Google Sheets?

16

Что эквивалентно parseInt()(JS) или intval()(PHP) в Google Sheets?

Я хочу вычислить сумму чисел в строке в отдельной ячейке. Так что если бы я имел 3 cupsи 5 cupsв ряд, я бы получил 18.

FT
источник
4
Вы имеете в виду «3 чашки» и «15 чашек», или я что-то упустил?
Jonsca

Ответы:

15

Один из способов реализовать что-то вроде этого

=VALUE(INDEX(FILTER(SPLIT(A1, " "), ISNUMBER(SPLIT(A1, " "))); 1; 1))

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

введите описание изображения здесь

Возможно, вам придется изменить это в соответствии с вашими индивидуальными потребностями. Это должно работать очень хорошо для простых строк, таких как «3 чашки».

  • SPLIT(..., " ")разбивает строку на части, разделенные пробелом. Вы можете добавить больше символов в строку, например " -/", разделить, когда эти символы найдены.

  • ISNUMBER проверяет, является ли строка числом.

  • FILTER берет массив и отфильтровывает все, что не удовлетворяет второй функции, т. е. отбирает все, что не является числом.

  • INDEX(...; 1; 1) возвращает значение в первой строке первого столбца массива (поэтому мы получаем только первый номер в списке, а не все числа в списке).

  • VALUE Вероятно, в этом нет необходимости, но просто для большей меры он преобразует окончательную строку в числовое значение.

6005
источник
2
Таким образом, ответ VALUE...
Юлиан Онофрей
@IulianOnofrei Нет, выдает VALUEошибку («невозможно разобрать в число») на всех входных примерах, которые я дал в ответе.
6005
1
Извините, я хотел сказать, что VALUEэто ответ на первый вопрос ОП и название тоже.
Юлиан Онофрей
@IulianOnofrei Я не знаю JavaScript, но я не так понял вопрос ОП.
6005
3

Другая альтернатива, которая работает с клеткой, содержащей чашку или чашки

= ArrayFormula (SUM (INT (ВЛЕВО (B1: B2, НАЙТИ ("", B1: B2)))))
Рубена
источник
2

parseInt()Альтернатива:

формула

=INT()
=SUM(ARRAYFORMULA(INT(LEFT(B1:B2, LEN(B1:B2)-5))))

Скриншот

введите описание изображения здесь

Заметка

LEN(B1:B2)-5, Включает в себя белое пространство.

Ссылка

https://support.google.com/drive/answer/3093490

Джейкоб Ян Туинстра
источник
1

Кажется, хорошее использование для регулярных выражений. Например:

Пример WA57716

где формула в E2:

="="&join("+",ArrayFormula(regexreplace(B2:D2,"\D","")))

Это удаляет все нечисловые значения, объединяет результат с +и добавляет =.

Скопируйте / Вставьте / Вставьте только те значения, например, в F2 (может быть E2), а затем Замените =на =.

РЕГИСТРИРУЙТЕСЬ
REGEXREPLACE

pnuts
источник