Text.Middle ใช้สำหรับดึงข้อความตั้งแต่ตำแหน่งที่ระบุไปจำนวนอักขระที่กำหนด หากไม่ระบุจำนวนตัวอักษร จะดึงจากตำแหน่งเริ่มต้นไปถึงท้าย
=Text.Middle(text as nullable text, start as number, optional count as nullable number) as nullable text
=Text.Middle(text as nullable text, start as number, optional count as nullable number) as nullable text
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| text | nullable text | Yes | ข้อความต้นฉบับที่ต้องการดึง | |
| start | number | Yes | ตำแหน่ง zero-based ที่ต้องการเริ่มต้น (0 คือตัวแรก, 1 คือตัวที่สอง ฯลฯ) | |
| count | nullable number | Optional | null | จำนวนอักขระที่ต้องการดึง ถ้าไม่ระบุหรือขอมากกว่าตัวอักษรที่เหลือ จะดึงจนถึงท้ายสตริง |
แยกส่วนกลางของรหัส ID
ดึงข้อมูลจากตำแหน่งคงที่ในข้อความ
ประมวลผลข้อความที่มีรูปแบบตายตัว
Text.Middle("Hello World", 0, 5)=Text.Middle("Hello World", 0, 5)
"Hello"
Text.Middle("Hello World", 6, 5)=Text.Middle("Hello World", 6, 5)
"World"
Text.Middle("Hello World", 6)=Text.Middle("Hello World", 6)
"World"
Text.Middle("SKU20250315-ABC-001", 11, 3)=Text.Middle("SKU20250315-ABC-001", 11, 3)
"ABC"
ตำแหน่งนับแบบ zero-based จากตัวแรก ดังนั้น 0 คือตัวแรก, 1 คือตัวที่สอง เป็นต้น
ฟังก์ชันจะดึงจากตำแหน่งที่ระบุไปจนถึงท้ายสตริง ไม่มีข้อผิดพลาด
ถ้าอาร์กิวเมนต์ text เป็น null ฟังก์ชันจะคืนค่า null ไม่เกิด error
Text.Middle และ Text.Range ทำงานเหมือนกัน คือดึงข้อความจากตำแหน่งและจำนวนตัวอักษร โดย Text.Range เป็น generic version ที่ทำงานกับ List และ Text ได้
Text.Middle(text, start, optional count) ใช้สำหรับดึงข้อความย่อยจากสตริงต้นฉบับ โดยระบุตำแหน่งเริ่มต้น (zero-based) และจำนวนอักขระที่ต้องการ หากไม่ระบุหรือขอมากกว่าตัวอักษรที่เหลือ ฟังก์ชันจะดึงจากตำแหน่งที่ระบุไปจนถึงท้ายสตริง
ที่เจ๋งคือ Text.Middle ทำให้การสกัดข้อความจากตำแหน่งกลาง ขอบ หรือจากตัวอักษรที่ต้องการเป็นเรื่องง่าย ประหยัดเวลาเมื่อต้องแยกข้อมูลจากคอลัมน์ที่มีรูปแบบคงที่
ส่วนตัวผมมักใช้ Text.Middle เมื่อต้องแยกข้อมูล SKU, รหัสจากกลางสตริง หรือดึงส่วนที่สำคัญออกจากข้อความยาวๆ ทำให้การเตรียมข้อมูลเร็วขึ้นเยอะครับ