แยกตัวเลขออกจากข้อความใน GoogleSheet

แยกตัวเลขออกจากข้อความใน GoogleSheet


1 ข้อความ123

2 อีกตัวอย่าง456

3 ข้อความสุดท้าย789


หากมีข้อความใน GoogleSheet ดังตัวอย่างข้างต้น เราสามารถใช้สูตร

=ARRAYFORMULA(IFERROR(REGEXREPLACE(A1:A3, "[^\d]", "")))

สูตรนี้ทำงานอย่างไร:

  • REGEXREPLACE(A1:A3, "[^\d]", "") จะค้นหาและแทนที่ข้อความใดๆ ที่ไม่ใช่ตัวเลข (อักขระที่ไม่ใช่ \d) ในช่วง A1:A3 ด้วยข้อความว่าง (คือลบข้อความเหล่านั้นออกไป เหลือแต่ตัวเลข)


ในบริบทของการใช้งาน REGEX (Regular Expression) หรือ การแสดงออกทางประจำที่ใช้สำหรับการค้นหาและแทนที่ข้อความในรูปแบบที่กำหนด, เครื่องหมาย [] เรียกว่า "ช่วงตัวอักษร" (Character Class) หรือ "ชุดตัวอักษร".

ช่วงตัวอักษรใช้สำหรับระบุเซ็ตของตัวอักษรที่เราต้องการค้นหา ซึ่งสามารถเลือกตัวอักษรใดๆ ภายในช่วงที่กำหนดไว้. เช่น:

  • [abc] หมายถึงตัวอักษร a, b, หรือ c
  • [a-z] หมายถึงตัวอักษรใดๆ ตั้งแต่ a ถึง z
  • [0-9] หมายถึงตัวเลขใดๆ ตั้งแต่ 0 ถึง 9

การใช้ช่วงตัวอักษรเป็นวิธีที่มีประสิทธิภาพในการระบุเงื่อนไขค้นหาที่ซับซ้อนในการแสดงออกทางประจำ.


ในการใช้งาน REGEXREPLACE, รูปแบบ [^\d] มีความหมายดังนี้:

  • \d หมายถึงตัวเลขทุกตัว (0-9)
  • ^ ในตำแหน่งนี้เมื่ออยู่ข้างใน [] หมายถึงการ "ไม่" หรือ "ยกเว้น" สิ่งที่อยู่ต่อจากมัน
  • [^\d] จึงหมายถึงอักขระใดๆ ที่ไม่ใช่ตัวเลข (0-9)

ดังนั้น, เมื่อใช้ [^\d] ในฟังก์ชั่น REGEXREPLACE ใน Google Sheets, มันจะค้นหาและแทนที่อักขระทุกอย่างที่ไม่ใช่ตัวเลขด้วยข้อความว่างหรืออีกนัยหนึ่งคือลบมันออกไป ทำให้เหลือเพียงตัวเลขในข้อความนั้นๆ.


  • ARRAYFORMULA(...) ทำให้สูตร REGEXREPLACE สามารถประมวลผลกับหลายเซลล์ในช่วงที่กำหนด (A1:A3) ได้ทีเดียว
  • IFERROR(...) ใช้สำหรับกรณีที่สูตรทำงานไม่ได้หรือเกิดข้อผิดพลาด เช่น ถ้าไม่มีตัวเลขอยู่ในข้อความ ฟังก์ชั่นนี้จะทำให้เซลล์ที่แสดงผลไม่มีค่าแสดงออกมา (เป็นว่าง)
Previous
Next Post »