Thep Excel

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

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

fx
=Combiner.CombineTextByDelimiter(delimiter, [quoteStyle]) as function

ความนิยม6/10
ความยาก3/10
ประโยชน์6/10

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
delimiter text ตัวคั่นที่ใช้ระหว่างข้อความแต่ละรายการ เช่น “, ” หรือ “;” หรือ ” – “
[quoteStyle]ไม่บังคับ number QuoteStyle.None รูปแบบการใส่เครื่องหมายคำพูด เช่น QuoteStyle.None, QuoteStyle.Csv, QuoteStyle.Json เลือกตามต้องการ

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

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

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

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

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

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

ผลลัพธ์"A-B-C"
ตัวอย่างที่ 2: รวมคอลัมน์ในตารางกับ Table.CombineColumnslet Source = Table.FromRows( {{"John", "Doe"}, {"Jane", "Smith"}}, {"FirstName", "LastName"} ), Combined = Table.CombineColumns( Source, {"FirstName", "LastName…

ใช้ Combiner.CombineTextByDelimiter กับ Table.CombineColumns เพื่อรวมคอลัมน์ FirstName และ LastName ด้วยช่องว่าง

fx
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"
ตัวอย่างที่ 3: ใช้กับ QuoteStyle.Csvlet Combiner = Combiner.CombineTextByDelimiter(",", QuoteStyle.Csv), List = {"apple", "banana, yellow", "cherry"}, Result = Combiner(List) in Result

เมื่อใช้ QuoteStyle.Csv ข้อมูลที่มีคอมม่าข้างในจะถูกใส่ quote เพื่อหลีกเลี่ยงปัญหา CSV parsing

fx
let
Combiner = Combiner.CombineTextByDelimiter(",", QuoteStyle.Csv),
List = {"apple", "banana, yellow", "cherry"},
Result = Combiner(List)
in
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 เพื่อรวมด้วย " + "

fx
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"

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

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Combiner.CombineTextByDelimiter จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Combiner.CombineTextByDelimiterCombiner functions
Table functions (2)
Table.AddColumn

Table.AddColumn เพิ่มคอลัมน์ใหม่ลงในตารางโดยคำนวณค่าจากฟังก์ชันที่กำหนด ใช้คำสั่ง each เพื่ออ้างอิงข้อมูลในแต่ละแถว เช่น each [Price] * [Quantity] สามารถระบุชนิดข้อมูลได้เพื่อเพิ่มประสิทธิภาพและป้องกันข้อผิดพลาดจากการคาดเดาชนิดข้อมูล ทำงานแบบทีละแถวและเหมาะสำหรับสร้างคอลัมน์คำนวณ รวมข้อมูล ใช้เงื่อนไข และการแปลงข้อมูลต่างๆ ใช้ร่วมกับฟังก์ชัน Table.TransformColumns สำหรับแก้ไขคอลัมน์เดิม Table.AddIndexColumn สำหรับเพิ่มหมายเลขลำดับ Table.SelectRows สำหรับกรองแถว Table.FromRecords สำหรับสร้างตารางจากข้อมูล Text.Combine สำหรับรวมข้อความ Number.Round สำหรับปัดเศษ Date.Year สำหรับดึงค่าปี และ Text.Upper สำหรับแปลงเป็นตัวพิมพ์ใหญ่ เพื่อสร้างกระบวนการแปลงข้อมูลที่สมบูรณ์

Table.CombineColumns

Table.CombineColumns รวมข้อมูลจากหลายคอลัมน์เข้าด้วยกันเป็นคอลัมน์เดียว โดยใช้ฟังก์ชัน Combiner ที่กำหนดเอง เช่น รวมชื่อ-นามสกุล หรือสร้างรหัสประจำตัว

List functions (1)
List.Transform

List.Transform ใช้สำหรับสร้างลิสต์ใหม่โดยนำฟังก์ชันไปประมวลผลแต่ละตัวในลิสต์เดิม

Text functions (1)
Text.Combine

Text.Combine ใช้สำหรับรวมข้อความหลายตัวจาก List เข้าด้วยกันเป็นข้อความเดียว โดยสามารถเลือกใช้ตัวคั่น (separator) เช่น ลูกน้ำ เครื่องหมายขีด หรือ space ได้ เหมาะสำหรับสร้างชื่อเต็ม ที่อยู่ หรือรหัสประจำตัวจากส่วนประกอบย่อยๆ

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่