Thep Excel

Text.AfterDelimiter – ดึงข้อความส่วนหลังตัวคั่น

ดึงข้อความหลังจากตัวคั่นที่กำหนด สามารถเลือกว่าจะใช้ตัวคั่นที่ 1, 2, 3 เป็นต้น

=Text.AfterDelimiter(text as text, delimiter as text, optional index as any) as any

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
6/10

Difficulty
3/10

Usefulness
6/10

Syntax & Arguments

=Text.AfterDelimiter(text as text, delimiter as text, optional index as any) as any

Argument Type Required Default Description
text text Yes ข้อความหลักที่จะดึงข้อมูลจาก
delimiter text Yes ตัวคั่นที่ใช้เป็นจุดอ้างอิง เช่น ‘.’ ‘-‘ ‘,’ ‘/’ เป็นต้น
index number or list Optional 0 (ตัวแรก) กำหนดตัวคั่นอันไหนที่จะใช้ (0-based) หรือ {occurrence, RelativePosition.FromStart/FromEnd} สำหรับนับจากต้นหรือท้าย

Examples

ตัวอย่างพื้นฐาน – ดึงส่วนหลังตัวคั่นแรก
Text.AfterDelimiter("report.xlsx", ".")
ดึงข้อความหลังจุด จะได้ 'xlsx' เพื่อใช้สำหรับดึงนามสกุลไฟล์
Power Query Formula:

= Text.AfterDelimiter("report.xlsx", ".")

Result:

"xlsx"

ตัวอย่างข้อมูลหลายตัวคั่น – ใช้ index
Text.AfterDelimiter("111-222-333", "-", 1)
มี dash 2 ตัว index 0 ใช้ dash แรก index 1 ใช้ dash ที่สอง จึงได้ข้อความหลัง dash ที่สองคือ '333'
Power Query Formula:

= Text.AfterDelimiter("111-222-333", "-", 1)

Result:

"333"

ตัวอย่างนับจากท้ายสตริง – RelativePosition
Text.AfterDelimiter("111-222-333", "-", {1, RelativePosition.FromEnd})
นับจากท้ายสตริง {1, FromEnd} หมายถึง dash ที่สองจากท้าย ผลลัพธ์คือข้อความหลังจากนั้น '222-333'
Power Query Formula:

= Text.AfterDelimiter("111-222-333", "-", {1, RelativePosition.FromEnd})

Result:

"222-333"

ตัวอย่างจริง – ดึงชื่อโดเมนจากอีเมล
Text.AfterDelimiter("john.doe@company.com", "@")
ดึงโดเมนจากอีเมลโดยใช้ @ เป็นตัวคั่น ผลลัพธ์คือ 'company.com'
Power Query Formula:

= Text.AfterDelimiter("john.doe@company.com", "@")

Result:

"company.com"

FAQs

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

ฟังก์ชันจะส่งคืน null (ค่าว่าง) หรือข้อมูลหลัก ขึ้นอยู่กับการตั้งค่า ลองใช้ try-catch หรือ if error เพื่อจัดการสถานการณ์นี้

index parameter ควรใช้กี่แบบ?

3 แบบ: (1) เลขธรรมชาติ 0, 1, 2 เป็นต้น นับจากซ้าย (2) {occurrence, RelativePosition.FromStart} นับจากซ้ายชัดเจน (3) {occurrence, RelativePosition.FromEnd} นับจากขวา

ความแตกต่างระหว่าง Text.AfterDelimiter กับ Text.Split คืออะไร?

Text.Split แยกข้อความทั้งหมด ส่งคืน list ของทั้งหมด ส่วน Text.AfterDelimiter ดึงส่วนหลังตัวคั่นตัวเดียวเท่านั้น ทำให้ AfterDelimiter เร็วกว่าและเรียบง่ายสำหรับกรณีหลาย ๆ อย่าง

Resources & Related

Additional Notes

Text.AfterDelimiter ใช้สำหรับดึงข้อความส่วนที่อยู่หลังตัวคั่นที่คุณกำหนด ฟังก์ชันนี้ยืดหยุ่นมากเพราะสามารถเลือกได้ว่าจะใช้ตัวคั่นอันไหน (ตัวแรก ตัวที่สอง ฯลฯ) และนับได้ทั้งจากซ้ายไปขวา และจากขวาไปซ้าย

ที่เจ๋งคือ parameters ตัวที่สาม (index) ทำให้เราจัดการกับข้อมูลที่มีตัวคั่นซ้ำหลายครั้ง เช่นเวลาเราต้องดึงชื่อโดเมนจากอีเมล ที่มี dot หลายตัว

ส่วนตัวผม มักใช้ Text.AfterDelimiter แบบง่าย ๆ สำหรับการแยกแฟ่มชื่อ (เอา xlsx ออกจาก report.xlsx) แต่พอมีข้อมูลซับซ้อนขึ้นมา ก็ต้องหยิบ index parameter มาใช้ ทำให้ได้ผลลัพธ์เป๊ะที่ 😎

Leave a Reply

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