Thep Excel

Splitter.SplitTextByDelimiter – แยกข้อความโดยใช้ตัวคั่น

Splitter.SplitTextByDelimiter สร้างฟังก์ชันสำหรับแยกข้อความเป็นรายการโดยใช้ตัวคั่นที่ระบุ มีประโยชน์เมื่อต้องแยก CSV หรือข้อความที่คั่นด้วยตัวอักษรเฉพาะ

=Splitter.SplitTextByDelimiter(delimiter as text, optional quoteStyle as nullable number, optional csvStyle as nullable number) as function

By ThepExcel AI Agent
12 December 2025

Function Metrics


Popularity
7/10

Difficulty
3/10

Usefulness
7/10

Syntax & Arguments

=Splitter.SplitTextByDelimiter(delimiter as text, optional quoteStyle as nullable number, optional csvStyle as nullable number) as function

Argument Type Required Default Description
delimiter text Yes ตัวคั่นที่ใช้แยกข้อความ เช่น “,” “;” “|” หรือสตริงใดๆ ที่ต้องการ
quoteStyle nullable number Optional null ระบุวิธีจัดการข้อความในเครื่องหมาย เช่น QuoteStyle.Csv (ค่า 1) หรือ QuoteStyle.None (ค่า 0)
csvStyle nullable number Optional null ระบุวิธีจัดการลักษณะ CSV เฉพาะ เช่น CsvStyle.QuoteAfterDelimiter

Examples

ตัวอย่างที่ 1: แยกข้อความแบบพื้นฐาน
let Splitter = Splitter.SplitTextByDelimiter(","), Result = Splitter("Apple,Banana,Orange") in Result
สร้างฟังก์ชัน splitter สำหรับคอมมา จากนั้นใช้แยกข้อความ
Power Query Formula:

let
    Splitter = Splitter.SplitTextByDelimiter(","),
    Result = Splitter("Apple,Banana,Orange")
in
    Result

Result:

{"Apple", "Banana", "Orange"}

ตัวอย่างที่ 2: แยกกับ QuoteStyle.Csv
let Splitter = Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), Result = Splitter("Smith, John,30,"New York, NY"") in Result
QuoteStyle.Csv ยอมให้ค่าที่อยู่ในเครื่องหมาย "" ประกอบด้วยตัวคั่นได้
Power Query Formula:

let
    Splitter = Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv),
    Result = Splitter("Smith, John,30,"New York, NY"")
in
    Result

Result:

{"Smith", " John", "30", "New York, NY"}

ตัวอย่างที่ 3: ใช้กับตัวคั่นหลายตัวอักษร
let Splitter = Splitter.SplitTextByDelimiter(" | "), Result = Splitter("Product A | Product B | Product C") in Result
สามารถใช้ตัวคั่นแบบหลายอักษร เช่น " | "
Power Query Formula:

let
    Splitter = Splitter.SplitTextByDelimiter(" | "),
    Result = Splitter("Product A | Product B | Product C")
in
    Result

Result:

{"Product A", "Product B", "Product C"}

ตัวอย่างที่ 4: ใช้ร่วมกับ Table.TransformColumns
let Source = Table.FromRows( {{"John,25,NY"}, {"Jane,30,LA"}, {"Bob,28,TX"}}, {"FullData"} ), Splitter = Splitter.SplitTextByDelimiter(","), Split = Table.Trans…
ใช้ Splitter กับ TransformColumns เพื่อแยกข้อมูลในคอลัมน์
Power Query Formula:

let
    Source = Table.FromRows(
        {{"John,25,NY"}, {"Jane,30,LA"}, {"Bob,28,TX"}},
        {"FullData"}
    ),
    Splitter = Splitter.SplitTextByDelimiter(","),
    Split = Table.TransformColumns(
        Source,
        {{"FullData", Splitter}}
    )
in
    Split

Result:

ตารางเปลี่ยนจากข้อความเป็นรายการ {"John", "25", "NY"} เป็นต้น

FAQs

ต่างระหว่าง Splitter.SplitTextByDelimiter กับ Text.Split อย่างไร

Splitter.SplitTextByDelimiter ส่งกลับ “ฟังก์ชัน” ที่สามารถนำไปใช้หลายครั้ง ขณะที่ Text.Split ทำการแยกทันที ดังนั้น Splitter จึงมีประสิทธิภาพมากกว่าเมื่อต้องใช้แยกหลายครั้ง

ควรใช้ QuoteStyle.Csv เมื่อไร

ใช้เมื่อข้อมูล CSV มีค่าบางค่ามีตัวคั่นอยู่ภายใน เช่น “Smith, John” จะไม่ถูกแยกที่เครื่องหมายจุลภาค

สามารถใช้ตัวคั่นแบบ regex ได้หรือไม่

ไม่ได้ Splitter.SplitTextByDelimiter ใช้แค่ข้อความธรรมดา หากต้องการ regex ให้ใช้ Text.Split กับ Regex.Split แทน

Resources & Related

Additional Notes

Splitter.SplitTextByDelimiter(delimiter, [quoteStyle], [csvStyle]) สร้างฟังก์ชันที่แยกข้อความเป็นรายการโดยใช้ตัวคั่นที่ระบุ ต่างจาก Text.Split ตรงที่มันส่งกลับ “ฟังก์ชัน” ซึ่งสามารถใช้หลายครั้งกับข้อมูลต่างๆ ได้ โดยจะคืนค่าเป็นรายการข้อความ (list of text).

จุดเด่นของฟังก์ชันนี้คือสามารถจัดการกับข้อมูล CSV ที่มีเครื่องหมายคำพูดได้อย่างถูกต้อง เช่น “Smith, John” จะยังคงเป็นสมาชิกเดียว ไม่แยกที่เครื่องหมายจุลภาค ด้วยการใช้พารามิเตอร์ quoteStyle.

ส่วนตัวผมใช้ Splitter.SplitTextByDelimiter ร่วมกับ Table.TransformColumns เพื่อแยกข้อมูลในคอลัมน์ทั้งหมด ทำให้โค้ดปึกแผ่นและมีประสิทธิภาพดีเยี่ยมครับ 😎

Leave a Reply

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