MID คืนสตริงย่อยจากข้อความ โดยเริ่มที่ StartNum (เริ่มนับที่ 1) และดึง NumChars ตัว ใช้บ่อยในการแยก/ตัดข้อความร่วมกับ LEFT/RIGHT/FIND/SEARCH
=MID(<Text>, <StartNum>, <NumChars>)
=MID(<Text>, <StartNum>, <NumChars>)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Text | text | Yes | ข้อความต้นฉบับ (สตริง) สามารถเป็นลิเทอรัลข้อความ หรือ column reference | |
| StartNum | number | Yes | ตำแหน่งเริ่มต้น เริ่มนับที่ 1 (ไม่ใช่ 0) ถ้า StartNum มากกว่าความยาวข้อความ ได้ผลลัพธ์ว่าง | |
| NumChars | number | Yes | จำนวนตัวอักษรที่ต้องการดึง ต้องเป็นเลขบวก ถ้ากำหนดมากกว่าความยาวที่เหลือ จะดึงได้เท่าที่มี |
เช่น รหัสรูปแบบ ABC-2025-001 ต้องการดึงปี 2025
ใช้ร่วมกับ FIND/SEARCH เพื่อหาตำแหน่งตัวคั่น แล้วใช้ MID ดึงช่วงที่ต้องการ
ช่วงกลาง = MID("ABCDEFGHIJ", 5, 4)ช่วงกลาง = MID("ABCDEFGHIJ", 5, 4)
ได้ "EFGH"
ปี = MID(Data[Code], 5, 4)ปี = MID(Data[Code], 5, 4)
ได้ "2025"
ข้อมูลหลังเครื่องหมาย = VAR dashPos = FIND("-", Data[Code]) RETURN IF( dashPos = 0, BLANK(), MID(Data[Code], dashPos + 1, LEN(Data[Code])) )ข้อมูลหลังเครื่องหมาย =
VAR dashPos = FIND("-", Data[Code])
RETURN
IF(
dashPos = 0,
BLANK(),
MID(Data[Code], dashPos + 1, LEN(Data[Code]))
)
ดึงข้อความหลังเครื่องหมาย - แรก
ปิดบังรหัส = "XXX-XX-" & MID(Data[ProductCode], 8, 3)ปิดบังรหัส = "XXX-XX-" & MID(Data[ProductCode], 8, 3)
"XXX-XX-123" (ถ้า ProductCode = "ABC-DEF-123")
เริ่มนับจาก 1 ไม่ใช่ 0 ดังนั้น MID(“ABC”, 1, 1) ได้ “A” ไม่ใช่ “B” ต่างจากภาษาโปรแกรมมิ่งบางตัวที่เริ่มจาก 0
ได้ผลลัพธ์ว่าง (BLANK) ตัวอย่าง MID(“ABC”, 10, 2) ได้ “” เพราะตำแหน่งที่ 10 อยู่นอกข้อความ
MID จะดึงได้เท่าที่มี เช่น MID(“ABCDE”, 3, 10) ได้ “CDE” (ไม่ใช่ error) เพราะจากตำแหน่งที่ 3 มีแค่ 3 ตัว
ใช้ LEFT เพื่อดึงจากซ้าย เช่น LEFT(“ABCDE”, 2) ได้ “AB” และใช้ RIGHT เพื่อดึงจากขวา เช่น RIGHT(“ABCDE”, 2) ได้ “DE”
ได้ MID ทำงานในทั้ง calculated column, calculated table, measure, และ visual calculation ผมมักใช้ในคำนวณ column เพื่อสร้างคอลัมน์ใหม่ที่ดึงข้อมูลบางส่วน
MID เป็นฟังก์ชันดึงข้อความจาก “ตรงกลาง” ของสตริง โดยกำหนดตำแหน่งเริ่มต้น (เริ่มนับที่ 1) และจำนวนตัวอักษรที่ต้องการดึง มันเป็นคู่หูของ LEFT (ดึงจากซ้าย) และ RIGHT (ดึงจากขวา) ใช้เวลาเวลาไหนต้องแยกรหัสที่มีโครงสร้างคงที่ หรือตัดโค้ดที่อยู่ตรงกลางสตริง
ที่เจ๋งคือ MID ร่วมกับ FIND/SEARCH ทำให้คุณหาตำแหน่งตัวคั่น (เช่น “-” หรือ “:”) แล้วดึงข้อมูลระหว่างตัวคั่นได้หมด ผมใช้มันสำหรับแยก SKU, ตัดปีจากรหัสสินค้า, หรือดึงรหัสตัวจริงจากข้อมูลที่มาจากหลายแหล่ง
ส่วนตัวผมถือว่า MID + FIND เป็นคู่หูสุดเก๋า ของการจัดการข้อมูลที่โครงสร้างมั่นคง ผมแนะนำให้เรียนรู้จัดการกับ MID เป็นหนึ่งในทักษะพื้นฐานของการทำความสะอาดข้อมูล