Відповіді:
Один із способів втілити щось подібне - це
=VALUE(INDEX(FILTER(SPLIT(A1, " "), ISNUMBER(SPLIT(A1, " "))); 1; 1))
Результат цієї формули для деяких прикладів рядків наведено нижче.
Можливо, вам доведеться змінити це відповідно до ваших індивідуальних потреб. Це повинно працювати досить добре для струн, настільки ж простих, як "3 чашки".
SPLIT(..., " ")
розбиває рядок на частини, розділені пробілом. Ви можете додати більше символів до рядка, наприклад " -/"
, для розділення кожного разу, коли ці символи знайдені.
ISNUMBER
перевіряє, чи є рядок числом.
FILTER
виймає масив і фільтрує все, що не відповідає другій функції, тобто виймає все, що не є числом.
INDEX(...; 1; 1)
повертає значення в першому рядку, першому стовпчику масиву (таким чином, ми отримуємо лише перше число, перелічене не всі перелічені числа).
VALUE
напевно, це не буде необхідним, але лише для гарного виміру він перетворює остаточний рядок у числове значення.
VALUE
...
VALUE
викликає помилку ("неможливо проаналізувати число") на всіх прикладних введеннях, які я дав у відповіді.
VALUE
це відповідь на перше запитання ОП та назви.
parseInt()
альтернатива:
=INT()
=SUM(ARRAYFORMULA(INT(LEFT(B1:B2, LEN(B1:B2)-5))))
The LEN(B1:B2)-5
, включає пробіл.
Здається, корисне використання для регексу. Наприклад:
де формула в E2:
="="&join("+",ArrayFormula(regexreplace(B2:D2,"\D","")))
Це позбавляє всіх нечислових +
знаків, поєднує результат і прикидає =
.
Скопіюйте / Вставте / Вставте значення лише те, що, скажімо, F2 (може бути E2), а потім замініть =
на =
.