Thep Excel

Combiner.CombineTextByDelimiter – สร้างฟังก์ชันรวมข้อความ

Combiner.CombineTextByDelimiter คืนค่าเป็น ‘ฟังก์ชัน’ ที่ช่วยรวม List ของข้อความด้วยตัวคั่น (Delimiter) ที่กำหนด มักใช้เป็น argument ในฟังก์ชันอื่นๆ เช่น Table.CombineColumns

=Combiner.CombineTextByDelimiter(delimiter as text, optional quoteStyle as nullable number) as function

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
6/10

Difficulty
3/10

Usefulness
6/10

Syntax & Arguments

=Combiner.CombineTextByDelimiter(delimiter as text, optional quoteStyle as nullable number) as function

Argument Type Required Default Description
delimiter text Yes ตัวคั่นที่ใช้ระหว่างข้อความแต่ละรายการ เช่น “, ” หรือ “;” หรือ ” – “
quoteStyle number Optional QuoteStyle.None รูปแบบการใส่เครื่องหมายคำพูด เช่น QuoteStyle.None, QuoteStyle.Csv, QuoteStyle.Json เลือกตามต้องการ

How it works

ใช้กับ Table.CombineColumns

ระบุวิธีการรวมคอลัมน์ โดยบอกว่าให้ใช้ตัวคั่นอะไร

เตรียมฟังก์ชันสำหรับ List.Transform

สร้างฟังก์ชันรวมข้อความเตรียมไว้ แล้วนำไป map กับ List ของ List

Examples

ตัวอย่างที่ 1: เรียกใช้ฟังก์ชันโดยตรง (Direct Invocation)
let Combiner = Combiner.CombineTextByDelimiter("-"), List = {"A", "B", "C"}, Result = Combiner(List) in Result
สร้างฟังก์ชันรวมด้วยเครื่องหมายขีดกลาง "-" แล้วส่ง List {"A", "B", "C"} เข้าไปให้ทำงาน ผลลัพธ์คือข้อความ A-B-C
Power Query Formula:

let
    Combiner = Combiner.CombineTextByDelimiter("-"),
    List = {"A", "B", "C"},
    Result = Combiner(List)
in
    Result

Result:

"A-B-C"

ตัวอย่างที่ 2: รวมคอลัมน์ในตารางกับ Table.CombineColumns
let Source = Table.FromRows( {{"John", "Doe"}, {"Jane", "Smith"}}, {"FirstName", "LastName"} ), Combined = Table.CombineColumns( Source, {"FirstName", "LastName…
ใช้ Combiner.CombineTextByDelimiter กับ Table.CombineColumns เพื่อรวมคอลัมน์ FirstName และ LastName ด้วยช่องว่าง
Power Query Formula:

let
    Source = Table.FromRows(
        {{"John", "Doe"}, {"Jane", "Smith"}},
        {"FirstName", "LastName"}
    ),
    Combined = Table.CombineColumns(
        Source,
        {"FirstName", "LastName"},
        Combiner.CombineTextByDelimiter(" "),
        "FullName"
    )
in
    Combined

Result:

ตารางที่มีคอลัมน์ใหม่ชื่อ FullName มีค่า "John Doe" และ "Jane Smith"

ตัวอย่างที่ 3: ใช้กับ QuoteStyle.Csv
let Combiner = Combiner.CombineTextByDelimiter(",", QuoteStyle.Csv), List = {"apple", "banana, yellow", "cherry"}, Result = Combiner(List) in Result
เมื่อใช้ QuoteStyle.Csv ข้อมูลที่มีคอมม่าข้างในจะถูกใส่ quote เพื่อหลีกเลี่ยงปัญหา CSV parsing
Power Query Formula:

let
    Combiner = Combiner.CombineTextByDelimiter(",", QuoteStyle.Csv),
    List = {"apple", "banana, yellow", "cherry"},
    Result = Combiner(List)
in
    Result

Result:

"apple,""banana, yellow"",cherry"

ตัวอย่างที่ 4: ใช้กับจำนวนหลายตัวเลข
let Numbers = {1, 2, 3, 4, 5}, TextNumbers = List.Transform(Numbers, each Text.From(_)), Combiner = Combiner.CombineTextByDelimiter(" + "), Result = Combiner(Te…
แปลงตัวเลขเป็นข้อความก่อน แล้วใช้ Combiner.CombineTextByDelimiter เพื่อรวมด้วย " + "
Power Query Formula:

let
    Numbers = {1, 2, 3, 4, 5},
    TextNumbers = List.Transform(Numbers, each Text.From(_)),
    Combiner = Combiner.CombineTextByDelimiter(" + "),
    Result = Combiner(TextNumbers)
in
    Result

Result:

"1 + 2 + 3 + 4 + 5"

FAQs

ต่างจาก Text.Combine อย่างไร?

Text.Combine ทำการรวมข้อความทันที ส่วน Combiner.CombineTextByDelimiter คืนค่าเป็นฟังก์ชัน ช่วยให้นำไปใช้ใน Table.CombineColumns และฟังก์ชันอื่นๆ ได้สะดวก

ต้องใช้ quoteStyle ไหม?

ไม่จำเป็น quoteStyle เป็น optional parameter หากข้อมูลไม่มีเครื่องหมายคำพูด ก็ไม่ต้องใส่

ใช้ delimiter เป็นครั้งเดียวได้กี่อัน?

Combiner.CombineTextByDelimiter ใช้ delimiter เพียงตัวเดียว หากต้องการรูปแบบการรวมที่ซับซ้อน ต้องสร้างฟังก์ชันเองหรือใช้ Text.Combine แทน

ฟังก์ชันนี้คืนค่า empty string ได้ไหม?

ได้ หากส่ง List ว่าง {} เข้าไป ก็จะคืนค่า empty string “” กลับมา

Resources & Related

Additional Notes

Combiner.CombineTextByDelimiter ใน Power Query คืนค่าเป็น ‘ฟังก์ชัน’ ที่จะทำหน้าที่รวมข้อความด้วยตัวคั่นที่ระบุ นี่คือฟังก์ชัน factory ที่สร้างเครื่องมือรวมข้อมูลเฉพาะ ไม่ใช่ฟังก์ชันที่ทำงานทันที

ส่วนตัวผมคิดว่าเจ๋งคือประเด็นนี้: Combiner.CombineTextByDelimiter ต่างจาก Text.Combine ตรงที่มันคืนค่าเป็นฟังก์ชัน (Function type) มาให้คุณนำไปใช้ต่อ ไม่ได้ทำการรวมโลดโผน ทำให้เหมาะสำหรับใช้เป็น parameter ในฟังก์ชันอื่นได้สะดวก เช่นเวลารวมหลายคอลัมน์พร้อมกัน

คุณสามารถส่วน quoteStyle เพื่อให้จัดการ CSV-style quoting ได้ถูกต้อง เมื่อข้อมูลมีคอมม่าข้างในก็จะใส่ quote ให้อัตโนมัติ 😎

Leave a Reply

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