ดึงข้อความหลังจากตัวคั่นที่กำหนด สามารถเลือกว่าจะใช้ตัวคั่นที่ 1, 2, 3 เป็นต้น
=Text.AfterDelimiter(text as text, delimiter as text, optional index as any) as any
=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} สำหรับนับจากต้นหรือท้าย |
Text.AfterDelimiter("report.xlsx", ".")= Text.AfterDelimiter("report.xlsx", ".")
"xlsx"
Text.AfterDelimiter("111-222-333", "-", 1)= Text.AfterDelimiter("111-222-333", "-", 1)
"333"
Text.AfterDelimiter("111-222-333", "-", {1, RelativePosition.FromEnd})= Text.AfterDelimiter("111-222-333", "-", {1, RelativePosition.FromEnd})
"222-333"
Text.AfterDelimiter("john.doe@company.com", "@")= Text.AfterDelimiter("john.doe@company.com", "@")
"company.com"
ฟังก์ชันจะส่งคืน null (ค่าว่าง) หรือข้อมูลหลัก ขึ้นอยู่กับการตั้งค่า ลองใช้ try-catch หรือ if error เพื่อจัดการสถานการณ์นี้
3 แบบ: (1) เลขธรรมชาติ 0, 1, 2 เป็นต้น นับจากซ้าย (2) {occurrence, RelativePosition.FromStart} นับจากซ้ายชัดเจน (3) {occurrence, RelativePosition.FromEnd} นับจากขวา
Text.Split แยกข้อความทั้งหมด ส่งคืน list ของทั้งหมด ส่วน Text.AfterDelimiter ดึงส่วนหลังตัวคั่นตัวเดียวเท่านั้น ทำให้ AfterDelimiter เร็วกว่าและเรียบง่ายสำหรับกรณีหลาย ๆ อย่าง
Text.AfterDelimiter ใช้สำหรับดึงข้อความส่วนที่อยู่หลังตัวคั่นที่คุณกำหนด ฟังก์ชันนี้ยืดหยุ่นมากเพราะสามารถเลือกได้ว่าจะใช้ตัวคั่นอันไหน (ตัวแรก ตัวที่สอง ฯลฯ) และนับได้ทั้งจากซ้ายไปขวา และจากขวาไปซ้าย
ที่เจ๋งคือ parameters ตัวที่สาม (index) ทำให้เราจัดการกับข้อมูลที่มีตัวคั่นซ้ำหลายครั้ง เช่นเวลาเราต้องดึงชื่อโดเมนจากอีเมล ที่มี dot หลายตัว
ส่วนตัวผม มักใช้ Text.AfterDelimiter แบบง่าย ๆ สำหรับการแยกแฟ่มชื่อ (เอา xlsx ออกจาก report.xlsx) แต่พอมีข้อมูลซับซ้อนขึ้นมา ก็ต้องหยิบ index parameter มาใช้ ทำให้ได้ผลลัพธ์เป๊ะที่ 😎