---
title: Combiner.CombineTextByDelimiter – สร้างฟังก์ชันรวมข้อความ
url: https://www.thepexcel.com/functions/power-query/combiner-functions/combiner-combinetextbydelimiter/
type: function-explainer
program: Power Query
syntax: "Combiner.CombineTextByDelimiter(delimiter as text, optional quoteStyle as nullable number) as function"
date: 2025-12-03
updated: 2025-12-24
scores:
  popularity: 6
  difficulty: 3
  usefulness: 6
---

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

> Combiner.CombineTextByDelimiter คืนค่าเป็น 'ฟังก์ชัน' ที่ช่วยรวม List ของข้อความด้วยตัวคั่น (Delimit

## คำอธิบาย

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

## Syntax

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

## Arguments

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

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

### ใช้กับ Table.CombineColumns

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

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

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

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: เรียกใช้ฟังก์ชันโดยตรง (Direct Invocation)

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

**ผลลัพธ์:** `"A-B-C"`

สร้างฟังก์ชันรวมด้วยเครื่องหมายขีดกลาง "-" แล้วส่ง List {"A", "B", "C"} เข้าไปให้ทำงาน ผลลัพธ์คือข้อความ A-B-C

### 2. ตัวอย่างที่ 2: รวมคอลัมน์ในตารางกับ Table.CombineColumns

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

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

### 3. ตัวอย่างที่ 3: ใช้กับ QuoteStyle.Csv

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

**ผลลัพธ์:** `"apple,""banana, yellow"",cherry"`

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

### 4. ตัวอย่างที่ 4: ใช้กับจำนวนหลายตัวเลข

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

แปลงตัวเลขเป็นข้อความก่อน แล้วใช้ Combiner.CombineTextByDelimiter เพื่อรวมด้วย " + "

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

- ใช้ Combiner.CombineTextByDelimiter กับ Table.CombineColumns ได้บ่อยมาก เวลารวมหลายคอลัมน์เป็นหนึ่งคอลัมน์

- หากต้องการรูปแบบ delimiter ที่ซับซ้อน เช่น delimiter แตกต่างกันแต่ละแถว ใช้ List.Transform + Text.Combine แทน

- QuoteStyle.Csv เหมาะสำหรับเมื่อข้อมูลมีคอมม่า quote เอง ไม่ต้องจัดการ CSV parsing issues

- ถ้าทำไม่ได้ ให้ลองใช้ Text.Combine ก่อน มันง่ายกว่า Combiner.CombineTextByDelimiter

- Combiner.CombineTextByDelimiter ปรึกษาเพื่อนกับ Table.AddColumn ได้ด้วย สำหรับการแปลง List values เป็น text

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

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

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

**Q: ต้องใช้ quoteStyle ไหม?**

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

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

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

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

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

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

- [Text.Combine – รวมข้อความหลายรายการเป็นข้อความเดียว](https://www.thepexcel.com/functions/power-query/text-functions/text-combine/)
- [Table.CombineColumns – รวมหลายคอลัมน์เป็นหนึ่งเดียว](https://www.thepexcel.com/functions/power-query/table-functions/table-combinecolumns/)

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

- [Microsoft Learn: Combiner.CombineTextByDelimiter](https://learn.microsoft.com/en-us/powerquery-m/combiner-combinetextbydelimiter) _(official)_
- [Microsoft Learn: Table.CombineColumns](https://learn.microsoft.com/en-us/powerquery-m/table-combinecolumns) _(official)_
- [Microsoft Learn: Text.Combine](https://learn.microsoft.com/en-us/powerquery-m/text-combine) _(official)_
- [Microsoft Learn: QuoteStyle](https://learn.microsoft.com/en-us/powerquery-m/quotestyle-type) _(official)_

---

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