Thep Excel

Text.Combine – รวมข้อความหลายรายการเป็นข้อความเดียว

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

=Text.Combine(texts as list, optional separator as nullable text) as text

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
8/10

Difficulty
3/10

Usefulness
8/10

Syntax & Arguments

=Text.Combine(texts as list, optional separator as nullable text) as text

Argument Type Required Default Description
texts list Yes List ของข้อความที่ต้องการรวมกัน ค่า null ใน list จะถูกข้ามไปโดยอัตโนมัติ
separator text Optional ตัวคั่นที่ต้องการใส่ระหว่างแต่ละข้อความ ถ้าไม่ระบุจะต่อกันโดยไม่มีตัวคั่น

How it works

สร้างที่อยู่แบบเต็ม

รวมส่วนประกอบของที่อยู่ เช่น เลขที่, ถนน, ตำบล, อำเภอ ให้เป็นสตริงเดียว

สร้างรหัสสินค้าจากส่วนย่อย

รวมรหัสหมวดหมู่, รหัสสินค้า, รหัสสี เข้าด้วยกันโดยมีตัวคั่น

รวม Tags เป็นข้อความเดียว

นำ List ของ Tags ที่แยกไว้ มารวมเป็นสตริงเดียวเพื่อใช้ใน Description

Examples

รวมข้อความพื้นฐาน (ไม่มีตัวคั่น)
Text.Combine({"Hello", "World"})
รวมข้อความสองคำโดยไม่มีตัวคั่นใดๆ ต่อเป็นข้อความเดียวเลย
Power Query Formula:

= Text.Combine({"Hello", "World"})

Result:

HelloWorld

รวมข้อความกับตัวคั่น
Text.Combine({"Seattle", "WA", "98001"}, ", ")
รวมข้อมูลที่อยู่สามส่วนโดยใช้ลูกน้ำและช่องว่างเป็นตัวคั่น ได้ที่อยู่แบบสมบูรณ์เลย
Power Query Formula:

= Text.Combine({"Seattle", "WA", "98001"}, ", ")

Result:

Seattle, WA, 98001

สร้างชื่อเต็มพร้อมจัดการค่า null
let Names = {"Doug", "J", "Elis"}, FullName = Text.Combine(Names, " "), NamesWithNull = {"Rada", null, "Mihaylova"}, FullNameWithNull = Text.Combine(NamesWithNu…
สังเกตว่าเมื่อมี null ในตรงกลาง มันจะถูก skip ไปโดยอัตโนมัติ ไม่ทำให้เกิดช่องว่างพิเศษ ประสิทธิภาพสูงมากเวลาข้อมูลไม่สมบูรณ์
Power Query Formula:

let
    Names = {"Doug", "J", "Elis"},
    FullName = Text.Combine(Names, " "),
    NamesWithNull = {"Rada", null, "Mihaylova"},
    FullNameWithNull = Text.Combine(NamesWithNull, " ")
in
    {FullName, FullNameWithNull}

Result:

{"Doug J Elis", "Rada Mihaylova"}

ใช้กับ Table.AddColumn เพื่อสร้างคอลัมน์ใหม่
let Source = Table.FromRecords({ [First = "John", Last = "Smith", City = "NYC"], [First = "Jane", Last = "Doe", City = "LA"] }), FullInfo = Table.AddColumn(Sour…
ใช้ each context เพื่อสร้างข้อความรวมจากคอลัมน์ต่างๆ ผลลัพธ์เป็นคอลัมน์ใหม่ที่มีข้อมูลที่รวมแล้ว เหมาะสำหรับสร้างรหัสประจำตัวหรือ identifier หลากหลาย
Power Query Formula:

let
    Source = Table.FromRecords({
        [First = "John", Last = "Smith", City = "NYC"],
        [First = "Jane", Last = "Doe", City = "LA"]
    }),
    FullInfo = Table.AddColumn(Source, "FullInfo", 
        each Text.Combine({[First], [Last], [City]}, " - "))
in
    FullInfo

Result:

Table with new column: {"John - Smith - NYC", "Jane - Doe - LA"}

รวมรหัสประจำตัวด้วยตัวคั่นเครื่องหมายขีด
Text.Combine({"EMP", "2024", "001"}, "-")
สร้างรหัสพนักงานโดยรวมส่วนต่างๆ กับตัวคั่นเครื่องหมายขีด ใช้ทั่วไปในระบบที่ต้องการรหัสมาตรฐาน
Power Query Formula:

= Text.Combine({"EMP", "2024", "001"}, "-")

Result:

EMP-2024-001

รวมรายการจากคอลัมน์ List ด้วย Table.Column
let SourceTable = Table.FromRecords({ [ID = 1, Tags = {"Power", "Query", "Excel"}], [ID = 2, Tags = {"M", "Language"}] }), CombinedTags = Table.AddColumn(Source…
ใช้ Text.Combine กับคอลัมน์ที่เป็น List โดยรวมสมาชิกแต่ละตัวด้วยลูกน้ะและช่องว่าง ส่วนตัวผมใช้วิธีนี้บ่อยมากตอนต้องการแสดงแท็กหลายรายการเป็นข้อความเดียว 😎
Power Query Formula:

let
    SourceTable = Table.FromRecords({
        [ID = 1, Tags = {"Power", "Query", "Excel"}],
        [ID = 2, Tags = {"M", "Language"}]
    }),
    CombinedTags = Table.AddColumn(SourceTable, "TagsText", 
        each Text.Combine([Tags], ", "))
in
    CombinedTags

Result:

Table with TagsText column: {"Power, Query, Excel", "M, Language"}

FAQs

ถ้า List มีค่า null จะเกิดอะไรขึ้น?

ค่า null จะถูกข้ามไปโดยอัตโนมัติ ไม่ต้องตัดออกก่อน ตัวเช่น {“A”, null, “B”} กับตัวคั่น “-” จะได้ “A-B” ไม่ใช่ “A–B” ซึ่งสะดวกมากครับ

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

Text.Split ทำสิ่งตรงกันข้าม มันแยกข้อความเป็น List โดยใช้ตัวคั่นกำหนด ส่วน Text.Combine คือรวม List เป็นข้อความเดียว อันหนึ่งคือการแยก อีกอันคือการรวม เหมือนกับตัวผกผันกัน

List ว่างจะส่งคืนค่าอะไร?

ได้ “” (ข้อความว่าง) กลับมา เลยต้องระวังตอนทำ formula เพื่อหลีกเลี่ยงผลลัพธ์ที่ว่างเปล่า

ถ้า List มีตัวเลขหรือข้อมูลอื่นที่ไม่ใช่ Text จะเกิดอะไร?

จะเกิด Error ครับ ต้องแน่ใจว่า List มีแต่ Text เท่านั้น ถ้ามีตัวเลขต้องแปลงเป็น Text ก่อนด้วย Text.From() หรือ Number.ToText()

ใช้ Text.Combine กับ csv หรือ json ได้ไหม?

ได้ครับ ถ้าต้องการสร้าง csv format ให้ใช้ตัวคั่นเป็น “,” และถ้าต้องการสร้าง json array อาจต้องรวมกับ Text.Format หรือ JSON functions อื่นๆ ด้วย

Resources & Related

Additional Notes

Text.Combine ใช้สำหรับรวม List ของข้อความให้กลายเป็นสตริงข้อความเดียว โดยสามารถกำหนดตัวคั่น (Separator) ระหว่างแต่ละข้อความได้

ที่เจ๋งคือมันจะ ignore ค่า null อัตโนมัติ เลยสะดวกมากเวลามีข้อมูลที่ไม่สมบูรณ์ ตัวอย่างเช่น ถ้า Middle Name ว่างจะไม่เพิ่มช่องว่างพิเศษเข้ามา

ส่วนตัวผมใช้ฟังก์ชันนี้บ่อยมากตอนต้องการสร้างที่อยู่แบบสมบูรณ์ หรือ merge ชื่อนามสกุลกับข้อมูลอื่นๆ มันทำให้โค้ด M ดูง่ายและสะอาดขึ้นเยอะครับ 😎

Leave a Reply

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