Thep Excel

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

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

fx
=Text.Middle(text, start, [count]) as nullable text

ความนิยม6/10
ความยาก3/10
ประโยชน์6/10

อัปเดต 4 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
text nullable text ข้อความต้นฉบับที่ต้องการดึง
start number ตำแหน่ง zero-based ที่ต้องการเริ่มต้น (0 คือตัวแรก, 1 คือตัวที่สอง ฯลฯ)
[count]ไม่บังคับ nullable number null จำนวนอักขระที่ต้องการดึง ถ้าไม่ระบุหรือขอมากกว่าตัวอักษรที่เหลือ จะดึงจนถึงท้ายสตริง

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

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

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

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

How it works

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

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

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

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

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

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

Examples

ดึง 5 อักขระตั้งแต่ตำแหน่ง 0Text.Middle("Hello World", 0, 5)

ดึง 5 อักขระจากตำแหน่ง 0 (ตัวแรก) ของ "Hello World"

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

ผลลัพธ์"Hello"
ดึง 5 อักขระตั้งแต่ตำแหน่ง 6Text.Middle("Hello World", 6, 5)

ดึง 5 อักขระจากตำแหน่ง 6 ของ "Hello World" ได้คำว่า "World"

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

ผลลัพธ์"World"
ดึงจากตำแหน่งถึงท้ายText.Middle("Hello World", 6)

ดึงจากตำแหน่ง 6 ถึงท้ายสตริง โดยไม่ระบุจำนวนตัวอักษร

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

ผลลัพธ์"World"
ดึงสื่อข้อมูล SKU แบบคงที่Text.Middle("SKU20250315-ABC-001", 11, 3)

จากสตริง SKU ที่มีรูปแบบคงที่ ดึงส่วนรหัส ABC ออกมา ตำแหน่ง 11 เป็นจุดเริ่มต้นของรหัส

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

ผลลัพธ์"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

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Text.Middle จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Text.MiddleText functions
Text functions (6)
Text.At

Text.At ใช้สำหรับดึงอักขระตัวเดียวที่ตำแหน่งที่ระบุในข้อความ โดยใช้การนับ zero-based index ที่ตำแหน่ง 0 คือตัวแรก ตำแหน่ง 1 คือตัวที่สอง เป็นต้น

Text.End

Text.End ใช้สำหรับดึงอักขระจำนวนที่ระบุจากท้ายสตริงข้อความ เป็นประโยชน์สำหรับการดึงนามสกุลไฟล์ และส่วนท้ายของข้อมูล

Text.Length

Text.Length ใช้นับจำนวนตัวอักษรทั้งหมดในสตริงข้อความ รวมถึงช่องว่างและอักขระพิเศษ ผลลัพธ์คืนค่าเป็นตัวเลข มีประโยชน์ในการตรวจสอบคุณภาพข้อมูล การกรองข้อมูลตามความยาว หรือการคำนวณ Logic ต่างๆ

Text.PositionOf

หาตำแหน่งของข้อความย่อยในข้อความหลัก (0-indexed) โดยคืนค่า -1 หากไม่พบ

Text.Range

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

Text.Start

Text.Start ดึงอักขระจำนวนที่กำหนดจากตัวแรกของสตริงข้อความ ใช้สำหรับดึงชื่อย่อ รหัส หรือส่วนแรกของข้อมูล

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่