Thep Excel

Text.Middle – ดึงข้อความจากตรงกลาง

Text.Middle ใช้สำหรับดึงข้อความตั้งแต่ตำแหน่งที่ระบุไปจำนวนอักขระที่กำหนด หากไม่ระบุจำนวนตัวอักษร จะดึงจากตำแหน่งเริ่มต้นไปถึงท้าย

=Text.Middle(text as nullable text, start as number, optional count as nullable number) as nullable text

By ThepExcel AI Agent
4 December 2025

Function Metrics


Popularity
6/10

Difficulty
3/10

Usefulness
6/10

Syntax & Arguments

=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 จำนวนอักขระที่ต้องการดึง ถ้าไม่ระบุหรือขอมากกว่าตัวอักษรที่เหลือ จะดึงจนถึงท้ายสตริง

How it works

แยกส่วนกลางของรหัส ID

แยกส่วนกลางของรหัส ID

ดึงข้อมูลจากตำแหน่งคงที่ในข้อความ

ดึงข้อมูลจากตำแหน่งคงที่ในข้อความ

ประมวลผลข้อความที่มีรูปแบบตายตัว

ประมวลผลข้อความที่มีรูปแบบตายตัว

Examples

ดึง 5 อักขระตั้งแต่ตำแหน่ง 0
Text.Middle("Hello World", 0, 5)
ดึง 5 อักขระจากตำแหน่ง 0 (ตัวแรก) ของ "Hello World"
Power Query Formula:

=Text.Middle("Hello World", 0, 5)

Result:

"Hello"

ดึง 5 อักขระตั้งแต่ตำแหน่ง 6
Text.Middle("Hello World", 6, 5)
ดึง 5 อักขระจากตำแหน่ง 6 ของ "Hello World" ได้คำว่า "World"
Power Query Formula:

=Text.Middle("Hello World", 6, 5)

Result:

"World"

ดึงจากตำแหน่งถึงท้าย
Text.Middle("Hello World", 6)
ดึงจากตำแหน่ง 6 ถึงท้ายสตริง โดยไม่ระบุจำนวนตัวอักษร
Power Query Formula:

=Text.Middle("Hello World", 6)

Result:

"World"

ดึงสื่อข้อมูล SKU แบบคงที่
Text.Middle("SKU20250315-ABC-001", 11, 3)
จากสตริง SKU ที่มีรูปแบบคงที่ ดึงส่วนรหัส ABC ออกมา ตำแหน่ง 11 เป็นจุดเริ่มต้นของรหัส
Power Query Formula:

=Text.Middle("SKU20250315-ABC-001", 11, 3)

Result:

"ABC"

FAQs

ตำแหน่ง (start) นับจากไหน?

ตำแหน่งนับแบบ zero-based จากตัวแรก ดังนั้น 0 คือตัวแรก, 1 คือตัวที่สอง เป็นต้น

ถ้าขอจำนวนตัวอักษรมากกว่าที่มี จะเกิดอะไร?

ฟังก์ชันจะดึงจากตำแหน่งที่ระบุไปจนถึงท้ายสตริง ไม่มีข้อผิดพลาด

ใช้กับ null ได้ไหม?

ถ้าอาร์กิวเมนต์ text เป็น null ฟังก์ชันจะคืนค่า null ไม่เกิด error

ต่างกับ Text.Range อย่างไร?

Text.Middle และ Text.Range ทำงานเหมือนกัน คือดึงข้อความจากตำแหน่งและจำนวนตัวอักษร โดย Text.Range เป็น generic version ที่ทำงานกับ List และ Text ได้

Resources & Related

Additional Notes

Text.Middle(text, start, optional count) ใช้สำหรับดึงข้อความย่อยจากสตริงต้นฉบับ โดยระบุตำแหน่งเริ่มต้น (zero-based) และจำนวนอักขระที่ต้องการ หากไม่ระบุหรือขอมากกว่าตัวอักษรที่เหลือ ฟังก์ชันจะดึงจากตำแหน่งที่ระบุไปจนถึงท้ายสตริง

ที่เจ๋งคือ Text.Middle ทำให้การสกัดข้อความจากตำแหน่งกลาง ขอบ หรือจากตัวอักษรที่ต้องการเป็นเรื่องง่าย ประหยัดเวลาเมื่อต้องแยกข้อมูลจากคอลัมน์ที่มีรูปแบบคงที่

ส่วนตัวผมมักใช้ Text.Middle เมื่อต้องแยกข้อมูล SKU, รหัสจากกลางสตริง หรือดึงส่วนที่สำคัญออกจากข้อความยาวๆ ทำให้การเตรียมข้อมูลเร็วขึ้นเยอะครับ

Leave a Reply

Your email address will not be published. Required fields are marked *