Combiner.CombineTextByDelimiter คืนค่าเป็น ‘ฟังก์ชัน’ ที่ช่วยรวม List ของข้อความด้วยตัวคั่น (Delimiter) ที่กำหนด มักใช้เป็น argument ในฟังก์ชันอื่นๆ เช่น Table.CombineColumns
=Combiner.CombineTextByDelimiter(delimiter as text, optional quoteStyle as nullable number) as function
=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 เลือกตามต้องการ |
ระบุวิธีการรวมคอลัมน์ โดยบอกว่าให้ใช้ตัวคั่นอะไร
สร้างฟังก์ชันรวมข้อความเตรียมไว้ แล้วนำไป map กับ List ของ List
let Combiner = Combiner.CombineTextByDelimiter("-"), List = {"A", "B", "C"}, Result = Combiner(List) in Resultlet
Combiner = Combiner.CombineTextByDelimiter("-"),
List = {"A", "B", "C"},
Result = Combiner(List)
in
Result
"A-B-C"
let Source = Table.FromRows( {{"John", "Doe"}, {"Jane", "Smith"}}, {"FirstName", "LastName"} ), Combined = Table.CombineColumns( Source, {"FirstName", "LastName…let
Source = Table.FromRows(
{{"John", "Doe"}, {"Jane", "Smith"}},
{"FirstName", "LastName"}
),
Combined = Table.CombineColumns(
Source,
{"FirstName", "LastName"},
Combiner.CombineTextByDelimiter(" "),
"FullName"
)
in
Combined
ตารางที่มีคอลัมน์ใหม่ชื่อ FullName มีค่า "John Doe" และ "Jane Smith"
let Combiner = Combiner.CombineTextByDelimiter(",", QuoteStyle.Csv), List = {"apple", "banana, yellow", "cherry"}, Result = Combiner(List) in Resultlet
Combiner = Combiner.CombineTextByDelimiter(",", QuoteStyle.Csv),
List = {"apple", "banana, yellow", "cherry"},
Result = Combiner(List)
in
Result
"apple,""banana, yellow"",cherry"
let Numbers = {1, 2, 3, 4, 5}, TextNumbers = List.Transform(Numbers, each Text.From(_)), Combiner = Combiner.CombineTextByDelimiter(" + "), Result = Combiner(Te…let
Numbers = {1, 2, 3, 4, 5},
TextNumbers = List.Transform(Numbers, each Text.From(_)),
Combiner = Combiner.CombineTextByDelimiter(" + "),
Result = Combiner(TextNumbers)
in
Result
"1 + 2 + 3 + 4 + 5"
Text.Combine ทำการรวมข้อความทันที ส่วน Combiner.CombineTextByDelimiter คืนค่าเป็นฟังก์ชัน ช่วยให้นำไปใช้ใน Table.CombineColumns และฟังก์ชันอื่นๆ ได้สะดวก
ไม่จำเป็น quoteStyle เป็น optional parameter หากข้อมูลไม่มีเครื่องหมายคำพูด ก็ไม่ต้องใส่
Combiner.CombineTextByDelimiter ใช้ delimiter เพียงตัวเดียว หากต้องการรูปแบบการรวมที่ซับซ้อน ต้องสร้างฟังก์ชันเองหรือใช้ Text.Combine แทน
ได้ หากส่ง List ว่าง {} เข้าไป ก็จะคืนค่า empty string “” กลับมา
Combiner.CombineTextByDelimiter ใน Power Query คืนค่าเป็น ‘ฟังก์ชัน’ ที่จะทำหน้าที่รวมข้อความด้วยตัวคั่นที่ระบุ นี่คือฟังก์ชัน factory ที่สร้างเครื่องมือรวมข้อมูลเฉพาะ ไม่ใช่ฟังก์ชันที่ทำงานทันที
ส่วนตัวผมคิดว่าเจ๋งคือประเด็นนี้: Combiner.CombineTextByDelimiter ต่างจาก Text.Combine ตรงที่มันคืนค่าเป็นฟังก์ชัน (Function type) มาให้คุณนำไปใช้ต่อ ไม่ได้ทำการรวมโลดโผน ทำให้เหมาะสำหรับใช้เป็น parameter ในฟังก์ชันอื่นได้สะดวก เช่นเวลารวมหลายคอลัมน์พร้อมกัน
คุณสามารถส่วน quoteStyle เพื่อให้จัดการ CSV-style quoting ได้ถูกต้อง เมื่อข้อมูลมีคอมม่าข้างในก็จะใส่ quote ให้อัตโนมัติ 😎