ฉันจะแยกจำนวนเต็มใน Google ชีตได้อย่างไร


16

อะไรคือเทียบเท่าparseInt()(JS) หรือintval()(PHP) ใน Google ชีต?

ฉันต้องการคำนวณผลรวมของตัวเลขในแถวในเซลล์แยกต่างหาก ดังนั้นถ้าผมมี3 cupsและในแถวที่ฉันจะได้รับ5 cups18


4
คุณหมายถึง "3 ถ้วย" และ "15 ถ้วย" หรือฉันขาดอะไรบางอย่าง?
jonsca

คำตอบ:


15

วิธีหนึ่งที่จะใช้บางสิ่งเช่นนี้คือ

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

ผลลัพธ์ของสูตรนี้สำหรับสตริงตัวอย่างบางตัวอย่างได้รับด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

คุณอาจต้องแก้ไขสิ่งนี้ให้เหมาะกับความต้องการของคุณ มันควรจะทำงานได้ดีสำหรับสตริงที่เรียบง่ายเหมือน "3 ถ้วย"

  • SPLIT(..., " ")แยกสตริงออกเป็นส่วนที่คั่นด้วยช่องว่าง คุณสามารถเพิ่มตัวละครให้กับสตริงได้เช่น" -/"เมื่อต้องการแยกเมื่อพบอักขระเหล่านั้น

  • ISNUMBER ตรวจสอบว่าสตริงเป็นตัวเลข

  • FILTER นำอาร์เรย์และกรองทุกอย่างที่ไม่เป็นไปตามฟังก์ชั่นที่สองกล่าวคือนำทุกสิ่งที่ไม่ใช่ตัวเลขออกมา

  • INDEX(...; 1; 1) ส่งคืนค่าในแถวแรกคอลัมน์แรกของอาร์เรย์ (ดังนั้นเราจะได้รับหมายเลขแรกเท่านั้นไม่ใช่จำนวนที่แสดงทั้งหมด)

  • VALUE อาจไม่จำเป็น แต่สำหรับการวัดที่ดีมันจะแปลงสตริงสุดท้ายให้เป็นค่าตัวเลข


2
ดังนั้นคำตอบคือVALUE...
Iulian Onofrei

@IulianOnofrei ไม่VALUEยกข้อผิดพลาด ("ไม่สามารถแยกเป็นตัวเลข") ในตัวอย่างอินพุตทั้งหมดที่ฉันให้ไว้ในคำตอบ
6005

1
ขออภัยฉันตั้งใจจะบอกว่านั่นVALUEเป็นคำตอบสำหรับคำถามแรกของ OP และชื่อเรื่องด้วย
Iulian Onofrei

@IulianOnofrei ฉันไม่รู้จัก JavaScript แต่นั่นไม่ใช่วิธีที่ฉันเข้าใจคำถามของ OP
6005

3

อีกทางเลือกหนึ่งที่ทำงานร่วมกับเซลล์ที่มีถ้วยหรือถ้วย

= ArrayFormula (SUM (INT (ซ้าย (B1: B2, FIND ("", B1: B2))))


1

ดูเหมือนว่าการใช้งานที่ดีสำหรับ regex ตัวอย่างเช่น:

ตัวอย่าง WA57716

โดยที่สูตรใน E2 คือ:

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

แถบนี้ numerics ไม่ใช่ทั้งหมดเชื่อมผลด้วย+และ =prepends

คัดลอก / วาง / วางค่าเดียวที่เข้าไปพูด F2 (อาจจะ E2) แล้วแทนที่ด้วย==

เข้าร่วม
REGEXREPLACE

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.