---
title: Text.Combine – รวมข้อความหลายรายการเป็นข้อความเดียว
url: https://www.thepexcel.com/functions/power-query/text-functions/text-combine/
type: function-explainer
program: Power Query
syntax: "Text.Combine(texts as list, optional separator as nullable text) as text"
date: 2025-12-03
updated: 2025-12-22
scores:
  popularity: 8
  difficulty: 3
  usefulness: 8
---

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

> Text.Combine ใช้สำหรับรวมข้อความหลายตัวจาก List เข้าด้วยกันเป็นข้อความเดียว โดยสามารถเลือกใช้ตัวคั่น

## คำอธิบาย

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

## Syntax

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

## Arguments

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

## เคสการใช้งาน

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

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

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

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

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

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

## ตัวอย่าง

### 1. รวมข้อความพื้นฐาน (ไม่มีตัวคั่น)

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

**ผลลัพธ์:** `HelloWorld`

รวมข้อความสองคำโดยไม่มีตัวคั่นใดๆ ต่อเป็นข้อความเดียวเลย

### 2. รวมข้อความกับตัวคั่น

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

**ผลลัพธ์:** `Seattle, WA, 98001`

รวมข้อมูลที่อยู่สามส่วนโดยใช้ลูกน้ำและช่องว่างเป็นตัวคั่น ได้ที่อยู่แบบสมบูรณ์เลย

### 3. สร้างชื่อเต็มพร้อมจัดการค่า null

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

**ผลลัพธ์:** `{"Doug J Elis", "Rada Mihaylova"}`

สังเกตว่าเมื่อมี null ในตรงกลาง มันจะถูก skip ไปโดยอัตโนมัติ ไม่ทำให้เกิดช่องว่างพิเศษ ประสิทธิภาพสูงมากเวลาข้อมูลไม่สมบูรณ์

### 4. ใช้กับ Table.AddColumn เพื่อสร้างคอลัมน์ใหม่

```excel
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
```

**ผลลัพธ์:** `Table with new column: {"John - Smith - NYC", "Jane - Doe - LA"}`

ใช้ each context เพื่อสร้างข้อความรวมจากคอลัมน์ต่างๆ ผลลัพธ์เป็นคอลัมน์ใหม่ที่มีข้อมูลที่รวมแล้ว เหมาะสำหรับสร้างรหัสประจำตัวหรือ identifier หลากหลาย

### 5. รวมรหัสประจำตัวด้วยตัวคั่นเครื่องหมายขีด

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

**ผลลัพธ์:** `EMP-2024-001`

สร้างรหัสพนักงานโดยรวมส่วนต่างๆ กับตัวคั่นเครื่องหมายขีด ใช้ทั่วไปในระบบที่ต้องการรหัสมาตรฐาน

### 6. รวมรายการจากคอลัมน์ List ด้วย Table.Column

```excel
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
```

**ผลลัพธ์:** `Table with TagsText column: {"Power, Query, Excel", "M, Language"}`

ใช้ Text.Combine กับคอลัมน์ที่เป็น List โดยรวมสมาชิกแต่ละตัวด้วยลูกน้ะและช่องว่าง ส่วนตัวผมใช้วิธีนี้บ่อยมากตอนต้องการแสดงแท็กหลายรายการเป็นข้อความเดียว 😎

## หมายเหตุเพิ่มเติม

- ใช้ Text.Combine โดยระบุตัวคั่น ", " (ลูกน้ำและช่องว่าง) สำหรับที่อยู่หรือรายการแบบอ่านง่าย

- ถ้า List มีค่า null หรือข้อมูลไม่สมบูรณ์ใช้ List.RemoveNulls ก่อนเพื่อความแน่นอน (แม้ว่า Text.Combine จะ ignore null อยู่แล้ว)

- เมื่อสร้างรหัสประจำตัว ลองใช้ตัวคั่นต่างๆ เช่น "-" หรือ "_" เพื่อให้รหัสดูชัดเจนและง่ายต่อการอ่าน

- ส่วนตัวผมชอบใช้ Text.Combine คู่กับ Table.AddColumn เพื่อสร้างคอลัมน์ใหม่จากหลายคอลัมน์ เป็นวิธีสะอาดและมีประสิทธิภาพ 😎

## คำถามที่พบบ่อย

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

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

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

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

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

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

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

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

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

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

## ฟังก์ชันที่เกี่ยวข้อง

- [Text.Split – แยกข้อความตามตัวคั่นที่กำหนด](https://www.thepexcel.com/functions/power-query/text-functions/text-split/)
- [Text.Replace – แทนที่ข้อความใน Power Query](https://www.thepexcel.com/functions/power-query/text-functions/text-replace/)
- [Text.Upper – แปลงข้อความเป็นตัวอักษรใหญ่](https://www.thepexcel.com/functions/power-query/text-functions/text-upper/)
- [List.Transform – แปลงค่าในลิสต์แต่ละตัว](https://www.thepexcel.com/functions/power-query/list-functions/list-transform/)

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn: Text.Combine](https://learn.microsoft.com/en-us/powerquery-m/text-combine) _(official)_
- [PowerQuery.how - Text Functions](https://powerquery.how/) _(article)_

---

_Source: [https://www.thepexcel.com/functions/power-query/text-functions/text-combine/](https://www.thepexcel.com/functions/power-query/text-functions/text-combine/)_
