Tương đương với parseInt()(JS) hoặc intval()(PHP) trong Google Sheets là gì?
Tôi muốn tính tổng của các số trong một hàng trong một ô riêng biệt. Vì vậy, nếu tôi có 3 cupsvà 5 cupsliên tiếp, tôi sẽ nhận được 18.
Tương đương với parseInt()(JS) hoặc intval()(PHP) trong Google Sheets là gì?
Tôi muốn tính tổng của các số trong một hàng trong một ô riêng biệt. Vì vậy, nếu tôi có 3 cupsvà 5 cupsliên tiếp, tôi sẽ nhận được 18.
Câu trả lời:
Một cách để thực hiện một cái gì đó như thế này là
=VALUE(INDEX(FILTER(SPLIT(A1, " "), ISNUMBER(SPLIT(A1, " "))); 1; 1))
Kết quả của công thức này cho một số chuỗi ví dụ được đưa ra dưới đây.

Bạn có thể phải sửa đổi điều này cho phù hợp với nhu cầu cá nhân của bạn. Nó sẽ hoạt động khá tốt đối với các chuỗi đơn giản như "3 cốc".
SPLIT(..., " ")chia một chuỗi thành các phần tách biệt không gian của nó. Bạn có thể thêm nhiều ký tự vào chuỗi, ví dụ " -/", để phân tách bất cứ khi nào các ký tự đó được tìm thấy.
ISNUMBER kiểm tra nếu một chuỗi là một số.
FILTER lấy mảng và lọc ra mọi thứ không thỏa mãn hàm thứ hai, nghĩa là nó lấy ra mọi thứ không phải là số.
INDEX(...; 1; 1) trả về giá trị trong hàng đầu tiên, cột đầu tiên của mảng (vì vậy chúng tôi chỉ nhận được số đầu tiên được liệt kê, không phải tất cả các số được liệt kê).
VALUE có lẽ sẽ không cần thiết, nhưng chỉ cần có biện pháp tốt, nó sẽ chuyển đổi chuỗi cuối cùng thành một giá trị số.
VALUE...
VALUEphát sinh lỗi ("không thể phân tích thành số") trên tất cả các ví dụ đầu vào mà tôi đã đưa ra trong câu trả lời.
VALUElà câu trả lời cho câu hỏi đầu tiên của OP và tiêu đề cũng vậy.
Một parseInt()thay thế là:
=INT()
=SUM(ARRAYFORMULA(INT(LEFT(B1:B2, LEN(B1:B2)-5))))

Các LEN(B1:B2)-5, bao gồm một không gian màu trắng.
Có vẻ là một sử dụng tốt cho regex. Ví dụ:
Trong đó công thức trong E2 là:
="="&join("+",ArrayFormula(regexreplace(B2:D2,"\D","")))
Điều này dải tất cả các số không, nối kết quả với +và trả trước =.
Sao chép / Dán / Dán các giá trị chỉ vào, giả sử, F2 (có thể là E2) sau đó Thay thế =bằng =.