Thep Excel

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

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

fx
=Text.AfterDelimiter(text, delimiter, [index]) as any

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

อัปเดต 3 December 2025

Syntax & Arguments

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

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

Additional Notes

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

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

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

Examples

ตัวอย่างพื้นฐาน – ดึงส่วนหลังตัวคั่นแรกText.AfterDelimiter("report.xlsx", ".")

ดึงข้อความหลังจุด จะได้ 'xlsx' เพื่อใช้สำหรับดึงนามสกุลไฟล์

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

ผลลัพธ์"xlsx"
ตัวอย่างข้อมูลหลายตัวคั่น – ใช้ indexText.AfterDelimiter("111-222-333", "-", 1)

มี dash 2 ตัว index 0 ใช้ dash แรก index 1 ใช้ dash ที่สอง จึงได้ข้อความหลัง dash ที่สองคือ '333'

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

ผลลัพธ์"333"
ตัวอย่างนับจากท้ายสตริง – RelativePositionText.AfterDelimiter("111-222-333", "-", {1, RelativePosition.FromEnd})

นับจากท้ายสตริง {1, FromEnd} หมายถึง dash ที่สองจากท้าย ผลลัพธ์คือข้อความหลังจากนั้น '222-333'

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

ผลลัพธ์"222-333"
ตัวอย่างจริง – ดึงชื่อโดเมนจากอีเมลText.AfterDelimiter("john.doe@company.com", "@")

ดึงโดเมนจากอีเมลโดยใช้ @ เป็นตัวคั่น ผลลัพธ์คือ 'company.com'

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

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

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

ฟังก์ชันนี้Text.AfterDelimiterText functions
Text functions (5)
Text.BeforeDelimiter

Text.BeforeDelimiter ดึงข้อความส่วนที่อยู่ก่อนตัวคั่นที่กำหนด พร้อมตัวเลือกระบุตัวคั่นตัวไหน

Text.BetweenDelimiters

ดึงข้อความที่อยู่ระหว่างตัวคั่น 2 ตัว

Text.Replace

Text.Replace ใช้สำหรับแทนที่ทุกส่วนของข้อความเก่าในข้อความหลักด้วยข้อความใหม่ เป็น Case Sensitive และแทนที่ทีละครั้งที่เจอในข้อความทั้งหมด

Text.Split

Text.Split(text, separator) ใช้แยกข้อความเป็น List โดยอิงตามตัวคั่น (delimiter) ที่ระบุ สามารถใช้ตัวคั่นเพียงตัวเดียวหรือหลายตัวอักษร เช่น "|" หรือ ", the " ผลลัพธ์คืนค่าเป็น List ของข้อความ

Text.Trim

Text.Trim ลบอักขระที่ระบุออกจากต้นและท้ายของข้อความ ค่าเริ่มต้นจะลบแค่ช่องว่าง

Comments

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