MID ตัดข้อความออกจากตำแหน่งเริ่มต้นที่คุณกำหนด โดยระบุความยาวของข้อความที่ต้องการ สะดวกมากสำหรับดึงข้อมูลบางส่วนจากข้อความที่ยาว เช่น รหัสสินค้า, รหัสพนักงาน, หรือวันที่ที่ฝังตัวในข้อความ
=MID(text, start_num, num_chars)
=MID(text, start_num, num_chars)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| text | Text | Yes | ข้อความหรือเซลล์ที่ต้องการดึงข้อความจาก เช่น “Product ID” หรือ A2 | |
| start_num | Number | Yes | ตำแหน่งของตัวอักษรตัวแรกที่จะเริ่มดึง โดยการนับเริ่มจาก 1 (ไม่ใช่ 0) | |
| num_chars | Number | Yes | จำนวนตัวอักษรที่ต้องการดึงออกมา หากเกินจำนวนตัวอักษรที่เหลือ จะดึงเท่าที่มีอยู่ |
เช่น รหัสพนักงาน 'EMP-FY23-001' ต้องการแยก 'FY23' ออกมาเพื่อวิเคราะห์ปีงบประมาณ
หากวันที่ถูกเก็บอยู่ในรูปแบบ 'Invoice_20240115_ABC' สามารถใช้ MID ดึง '20240115' ออกมาเพื่อแปลงเป็นวันที่จริงได้
MID("Fluid Flow", 1, 5)=MID("Fluid Flow", 1, 5)
Fluid
MID("LOC-A123-XL", 5, 4)=MID("LOC-A123-XL", 5, 4)
A123
MID(A2, FIND("-", A2)+1, 4)=MID(A2, FIND("-", A2)+1, 4)
2025
MID(A2, FIND("-", A2)+1, FIND("-", A2, FIND("-", A2)+1)-FIND("-", A2)-1)=MID(A2, FIND("-", A2)+1, FIND("-", A2, FIND("-", A2)+1)-FIND("-", A2)-1)
2025
Excel ใช้ระบบ 1-based indexing (นับเริ่มจาก 1) ต่างจากภาษา Python หรือ JavaScript ที่ใช้ 0-based indexing ดังนั้นตัวอักษรตัวแรกจะอยู่ที่ตำแหน่งที่ 1 เสมอ
MID จะคืนค่าเป็นข้อความว่าง (empty text) โดยไม่เกิด error ซึ่งดีมากสำหรับสูตรที่ยืดหยุ่น
จะเกิด Error #VALUE! โดยตรง num_chars ต้องเป็นเลขบวกเสมอ
LEFT ดึงจากด้านซ้าย RIGHT ดึงจากด้านขวา แต่ MID ดึงจากตำแหน่งใดก็ได้ตรงกลาง ส่วนใหญ่ใช้ MID มากกว่าเพราะมีความยืดหยุ่นมากขึ้น
MID เป็นฟังก์ชันดึงข้อความสำหรับ “ตัดเอาตรงกลาง” นั่นเอง คุณใช้มันเพื่อดึงตัวอักษรจากตำแหน่งใดก็ได้ในข้อความ เพียงบอกว่าต้องการเริ่มจากตำแหน่งไหน และต้องการดึงกี่ตัวอักษร
ที่เจ๋งคือ MID ไม่มีการตรวจสอบข้อผิดพลาดแบบเข้มงวด ถ้าคุณขอตัวอักษรมากกว่าที่มีอยู่ มันจะให้เท่าที่มี ถ้า start_num เกินความยาวข้อความ มันจะให้ค่าว่างแทนจะ Error ซึ่งช่วยแก้ปัญหากับข้อมูลที่ยาวไม่เท่ากันได้ดี 😎