อะไรคือเทียบเท่าparseInt()
(JS) หรือintval()
(PHP) ใน Google ชีต?
ฉันต้องการคำนวณผลรวมของตัวเลขในแถวในเซลล์แยกต่างหาก ดังนั้นถ้าผมมี3 cups
และในแถวที่ฉันจะได้รับ5 cups
18
อะไรคือเทียบเท่าparseInt()
(JS) หรือintval()
(PHP) ใน Google ชีต?
ฉันต้องการคำนวณผลรวมของตัวเลขในแถวในเซลล์แยกต่างหาก ดังนั้นถ้าผมมี3 cups
และในแถวที่ฉันจะได้รับ5 cups
18
คำตอบ:
วิธีหนึ่งที่จะใช้บางสิ่งเช่นนี้คือ
=VALUE(INDEX(FILTER(SPLIT(A1, " "), ISNUMBER(SPLIT(A1, " "))); 1; 1))
ผลลัพธ์ของสูตรนี้สำหรับสตริงตัวอย่างบางตัวอย่างได้รับด้านล่าง
คุณอาจต้องแก้ไขสิ่งนี้ให้เหมาะกับความต้องการของคุณ มันควรจะทำงานได้ดีสำหรับสตริงที่เรียบง่ายเหมือน "3 ถ้วย"
SPLIT(..., " ")
แยกสตริงออกเป็นส่วนที่คั่นด้วยช่องว่าง คุณสามารถเพิ่มตัวละครให้กับสตริงได้เช่น" -/"
เมื่อต้องการแยกเมื่อพบอักขระเหล่านั้น
ISNUMBER
ตรวจสอบว่าสตริงเป็นตัวเลข
FILTER
นำอาร์เรย์และกรองทุกอย่างที่ไม่เป็นไปตามฟังก์ชั่นที่สองกล่าวคือนำทุกสิ่งที่ไม่ใช่ตัวเลขออกมา
INDEX(...; 1; 1)
ส่งคืนค่าในแถวแรกคอลัมน์แรกของอาร์เรย์ (ดังนั้นเราจะได้รับหมายเลขแรกเท่านั้นไม่ใช่จำนวนที่แสดงทั้งหมด)
VALUE
อาจไม่จำเป็น แต่สำหรับการวัดที่ดีมันจะแปลงสตริงสุดท้ายให้เป็นค่าตัวเลข
VALUE
...
VALUE
ยกข้อผิดพลาด ("ไม่สามารถแยกเป็นตัวเลข") ในตัวอย่างอินพุตทั้งหมดที่ฉันให้ไว้ในคำตอบ
VALUE
เป็นคำตอบสำหรับคำถามแรกของ OP และชื่อเรื่องด้วย
อีกทางเลือกหนึ่งที่ทำงานร่วมกับเซลล์ที่มีถ้วยหรือถ้วย
= ArrayFormula (SUM (INT (ซ้าย (B1: B2, FIND ("", B1: B2))))
parseInt()
ทางเลือกคือ:
=INT()
=SUM(ARRAYFORMULA(INT(LEFT(B1:B2, LEN(B1:B2)-5))))
The LEN(B1:B2)-5
รวมถึงพื้นที่สีขาว
ดูเหมือนว่าการใช้งานที่ดีสำหรับ regex ตัวอย่างเช่น:
โดยที่สูตรใน E2 คือ:
="="&join("+",ArrayFormula(regexreplace(B2:D2,"\D","")))
แถบนี้ numerics ไม่ใช่ทั้งหมดเชื่อมผลด้วย+
และ =
prepends
คัดลอก / วาง / วางค่าเดียวที่เข้าไปพูด F2 (อาจจะ E2) แล้วแทนที่ด้วย=
=