---
title: TOCSV – แปลงตารางเป็นข้อความ CSV
url: https://www.thepexcel.com/functions/dax/text/tocsv-dax/
type: function-explainer
program: DAX
syntax: "TOCSV(<Table> [, <MaxRows>] [, <Delimiter>] [, <IncludeHeaders>])"
date: 2025-12-13
updated: 2025-12-17
scores:
  popularity: 5
  difficulty: 3
  usefulness: 5
---

# TOCSV – แปลงตารางเป็นข้อความ CSV

> แปลงตารางเป็นสตริง CSV

## คำอธิบาย

แปลงตารางเป็นสตริงรูปแบบ CSV โดยกำหนดจำนวนแถวสูงสุด ตัวคั่น และว่าจะใส่หัวคอลัมน์หรือไม่

## Syntax

```excel
TOCSV(&lt;Table&gt; [, &lt;MaxRows&gt;] [, &lt;Delimiter&gt;] [, &lt;IncludeHeaders&gt;])
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| Table | Yes | table |  | ตารางที่ต้องการแปลงเป็น CSV |
| MaxRows | No | number | 10 | จำนวนแถวสูงสุดที่จะแปลง; ถ้าเป็นค่าติดลบหมายถึงแปลงทุกแถว (ค่าเริ่มต้นโดยทั่วไปคือ 10) |
| Delimiter | No | string | "," | ตัวคั่นฟิลด์ (ต้องเป็นสตริงคงที่ที่ไม่ว่าง) ค่าเริ่มต้นคือ "," |
| IncludeHeaders | No | boolean | TRUE | ถ้าเป็น TRUE จะใส่แถวหัวคอลัมน์ในผลลัพธ์ (ค่าเริ่มต้นคือ TRUE) |

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

### ส่งออกตารางย่อยเป็นข้อความ

แปลงตารางที่สร้างจาก SUMMARIZECOLUMNS/ADDCOLUMNS เป็นข้อความเพื่อส่งต่อ/เก็บเป็นสตริง

_เหมาะกับ:_ export-table-to-text

### ดีบัก/ตรวจสอบผลลัพธ์อย่างรวดเร็ว

เมื่อสร้างตารางซับซ้อน สามารถแปลงมาเป็นข้อความเพื่อดูค่าหลัก ๆ ได้ง่าย

_เหมาะกับ:_ debug-table

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: แปลงตารางสรุปเป็น CSV (กำหนด 3 แถวแรก)

```excel
CSV 3 แถว =
VAR T =
    SUMMARIZECOLUMNS(
        'Customer'[CountryRegion],
        "Amount", [Sales Amount]
    )
RETURN
    TOCSV(T, 3, ",", FALSE)
```

**ผลลัพธ์:** `ได้ข้อความ CSV ของ 3 แถวแรกจากตารางสรุป โดยไม่ใส่หัวคอลัมน์`

เหมาะสำหรับดูตัวอย่างผลลัพธ์โดยย่อ และควบคุมจำนวนแถวที่จะแปลง

### 2. ตัวอย่างที่ 2: ใส่หัวคอลัมน์และใช้ตัวคั่นอื่น

```excel
CSV พร้อมหัวคอลัมน์ =
TOCSV(
    &lt;Table&gt;,
    10,
    ";",
    TRUE
)
```

**ผลลัพธ์:** `ได้ข้อความ CSV ที่มีแถวหัวคอลัมน์และใช้ ';' เป็นตัวคั่น`

Delimiter ต้องเป็นสตริงคงที่ (constant string) และ IncludeHeaders ควบคุมการใส่หัวคอลัมน์

### 3. ตัวอย่างที่ 3: ควบคุมลำดับเองด้วย CONCATENATEX (แนวคิด)

```excel
แนวคิด: ถ้าต้องคุมลำดับแถว/ตัวขึ้นบรรทัดใหม่ ให้สร้าง CSV เอง
CONCATENATEX(
    &lt;Table&gt;,
    &lt;RowText&gt;,
    UNICHAR(10)
)
```

**ผลลัพธ์:** `ได้สตริงที่ควบคุมลำดับและรูปแบบการคั่น/ขึ้นบรรทัดได้เอง`

ข้อจำกัดอย่างหนึ่งของ TOCSV คือไม่สามารถคุมลำดับผลลัพธ์ได้ จึงอาจต้องใช้ CONCATENATEX ในกรณีต้องการควบคุมเต็มรูปแบบ

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

TOCSV มีพฤติกรรมการใส่เครื่องหมายอัญประกาศเพื่อ escape ตามกติกา CSV และไม่สามารถเปลี่ยนสัญลักษณ์ขึ้นบรรทัดใหม่ได้; ถ้าต้องควบคุมรายละเอียดมากให้สร้างข้อความเองด้วย CONCATENATEX

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

**Q: TOCSV คืนค่าเป็นตารางหรือข้อความ?**

คืนค่าเป็นสตริงเดียว (ข้อความ CSV)

**Q: สามารถควบคุมลำดับแถวในผลลัพธ์ได้ไหม?**

โดยทั่วไปไม่สามารถควบคุมลำดับผลลัพธ์ของ TOCSV ได้ ถ้าจำเป็นต้องคุมลำดับให้พิจารณาใช้ CONCATENATEX สร้างข้อความเอง

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

- tojson
- concatenatex
- [UNICHAR – สร้างอักขระจากโค้ด Unicode (DAX)](https://www.thepexcel.com/functions/dax/text/unichar-dax/)
- summarizecolumns
- addcolumns
- values
- topn
- selectcolumns

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

- [DAX Guide: TOCSV](https://dax.guide/tocsv/) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/dax/text/tocsv-dax/](https://www.thepexcel.com/functions/dax/text/tocsv-dax/)_
