หน้าแรก บทความ Microsoft
Microsoft

ดึงเฉพาะตัวเลขออกจากข้อความปนกันใน Excel

เผยแพร่ 29 ส.ค. 69

ข้อมูลที่ปนตัวเลขกับตัวอักษร เช่น “ราคา 1,250 บาท” หรือ “สินค้า A-4 จำนวน 30 ชิ้น” เอาไปคำนวณตรงๆ ไม่ได้ ต้องดึงเฉพาะตัวเลขออกมาก่อน บทความนี้รวม 3 วิธี ตั้งแต่วิธีใหม่ที่สั้นที่สุดใน Microsoft 365 จนถึงวิธีที่ใช้ได้ทุกเวอร์ชัน

วิธีที่ 1: REGEXEXTRACT (Excel เวอร์ชันใหม่) — สั้นที่สุด

B2fx=REGEXEXTRACT(A2, "[0-9,]+")
A B
1 ข้อความ ตัวเลข
2 ราคา 1,250 บาท 1,250
3 ค่าส่ง 60บาท 60

รูปแบบ [0-9,]+ หมายถึง “ตัวเลขหรือจุลภาค ติดกันตั้งแต่ 1 ตัวขึ้นไป” ถ้าอยากคำนวณต่อ ให้ครอบด้วย SUBSTITUTE(...,",","")+0 เพื่อลบจุลภาคแล้วแปลงเป็นตัวเลข ดู ฟังก์ชัน REGEX

วิธีที่ 2: TEXTSPLIT แยกด้วยตัวคั่นหลายแบบ

ใช้ได้ดีเมื่อตัวเลขคั่นด้วยช่องว่างหรือสัญลักษณ์ที่แน่นอน

B2fx=TEXTSPLIT(A2, " ", , TRUE)
A B C D
1 ข้อความ ผลแยก
2 สินค้า A-4 จำนวน 30 ชิ้น สินค้า A-4 30 …

TEXTSPLIT ตัดข้อความตามช่องว่าง แล้วเลือกช่องที่เป็นตัวเลขมาใช้ต่อ เหมาะกับข้อความที่โครงสร้างสม่ำเสมอ

วิธีที่ 3: สูตร array ใช้ได้ทุกเวอร์ชัน

ดึงเฉพาะหลักที่เป็นตัวเลขออกมาเรียงต่อกัน โดยไล่ตรวจทีละตัวอักษร

B2fx=SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2,ROW($1:$99),1))*ROW($1:$99),0), ROW($1:$99))+1, 1)*10^ROW($1:$99)/10)
A B
1 ข้อความ ตัวเลขที่ดึงได้
2 รหัส INV1024 1024

สูตรนี้ยาวและเข้าใจยาก แต่ไม่ต้องพึ่งเวอร์ชันใหม่ หลักการคือหาตำแหน่งตัวอักษรที่เป็นเลข แล้วประกอบกลับเป็นจำนวน ใช้ได้เมื่อในเซลล์มีกลุ่มตัวเลขกลุ่มเดียว

เคสที่พบบ่อย

ต้องการ สูตร (Excel ใหม่)
ตัวเลขกลุ่มแรก =REGEXEXTRACT(A2,"\d+")
ตัวเลขทุกกลุ่ม (แยกหลายเซลล์) =REGEXEXTRACT(A2,"\d+",1)
ทศนิยมด้วย =REGEXEXTRACT(A2,"\d+\.?\d*")
ลบตัวอักษรทิ้ง เหลือแต่เลข =REGEXREPLACE(A2,"\D","")

ข้อควรรู้

หมายเหตุ: บทความนี้เขียนและเรียบเรียงโดย AI

← กลับหน้าบทความ
Line