Thep Excel

Text.BeforeDelimiter – ดึงข้อความก่อนตัวคั่น

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

=Text.BeforeDelimiter(text as nullable 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.BeforeDelimiter(text as nullable 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.BeforeDelimiter("John.Doe", ".")
ดึงข้อความก่อนจุด (.) ตัวแรก จึงได้ 'John'
Power Query Formula:

=Text.BeforeDelimiter("John.Doe", ".")

Result:

"John"

ใช้กับข้อมูลตัวเลข – ดึงส่วนแรก
Text.BeforeDelimiter("111-222-333", "-")
ดึงข้อความก่อนเครื่องหมายลบ (-) ตัวแรก จึงได้ '111'
Power Query Formula:

=Text.BeforeDelimiter("111-222-333", "-")

Result:

"111"

ดึงข้อมูลก่อนตัวคั่นตัวที่สอง
Text.BeforeDelimiter("111-222-333", "-", 1)
ระบุ index=1 เพื่อหาตัวคั่นตัวที่สอง จึงได้ '111-222' (รวมตัวคั่นตัวแรก)
Power Query Formula:

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

Result:

"111-222"

แยกโดเมนจากอีเมล
Text.BeforeDelimiter("john.doe@company.com", "@")
ดึงข้อความก่อน @ จึงได้ชื่อผู้ใช้จากที่อยู่อีเมล
Power Query Formula:

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

Result:

"john.doe"

นับตัวคั่นจากท้ายสุด
Text.BeforeDelimiter("path/to/file.txt", ".", {0, RelativePosition.FromEnd})
ใช้ RelativePosition.FromEnd เพื่อนับจากท้ายสุด ได้ส่วนที่ไม่รวมนามสกุลไฟล์
Power Query Formula:

=Text.BeforeDelimiter("path/to/file.txt", ".", {0, RelativePosition.FromEnd})

Result:

"path/to/file"

ใช้ในตารางเต็มรูป
let Source = Table.FromRows( {{"Alice.Smith"}, {"Bob.Johnson"}, {"Carol.White"}}, {"FullName"} ), AddFirstName = Table.AddColumn( Source, "FirstName", each Text…
เพิ่มคอลัมน์ใหม่ที่ใช้ Text.BeforeDelimiter เพื่อแยกชื่อหน้า
Power Query Formula:

let
    Source = Table.FromRows(
        {{"Alice.Smith"}, {"Bob.Johnson"}, {"Carol.White"}},
        {"FullName"}
    ),
    AddFirstName = Table.AddColumn(
        Source,
        "FirstName",
        each Text.BeforeDelimiter([FullName], ".")
    )
in
    AddFirstName

Result:

ตารางที่มีคอลัมน์ FirstName ที่ดึงชื่อหน้าจาก FullName

FAQs

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

ฟังก์ชันจะคืนค่าข้อความทั้งหมดเอง ไม่มีข้อผิดพลาด

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

Text.Split ตัดข้อความออกเป็นลิสต์ทั้งหมด Text.BeforeDelimiter ดึงเฉพาะส่วนหน้า

ใช้ RelativePosition ได้กับเรื่องอะไร?

ใช้เมื่อต้องการนับตัวคั่นจากท้ายสุด เช่นแยกนามสกุลไฟล์จากที่อยู่ไฟล์

ตัวคั่นอาจเป็นสตริงยาวได้ไหม?

ได้ เช่น Text.BeforeDelimiter(“Hello—World”, “—“) จะได้ “Hello”

Resources & Related

Additional Notes

Text.BeforeDelimiter(text, delimiter, [index]) ใช้สำหรับดึงข้อความก่อนหน้าตัวคั่นที่กำหนด

ที่เจ๋งคือมันสามารถระบุตัวคั่นตัวไหนได้ เช่นถ้าข้อความมีหลายตัวคั่น ผมจะดึงข้อความก่อนตัวคั่นตัวที่สอง หรือนับจากท้ายสุดก็ได้

ส่วนตัวผมชอบใช้คู่กับ Text.AfterDelimiter เพื่อแยกข้อมูล เช่นแยกชื่อจากอีเมล (john.doe@company.com) ออกมาเป็น John.Doe ได้เลย 😎

Leave a Reply

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