---
title: Table.FromList – สร้างตารางจาก List
url: https://www.thepexcel.com/functions/power-query/table-functions/table-fromlist/
type: function-explainer
program: Power Query
syntax: "= Table.FromList(list as list, optional splitter as nullable function, optional columns as any, optional default as any, optional extraValues as nullable number) as table"
date: 2025-12-03
updated: 2025-12-24
scores:
  popularity: 5
  difficulty: 4
  usefulness: 6
---

# Table.FromList – สร้างตารางจาก List

> แปลง List เป็น Table โดยใช้ฟังก์ชัน Splitter เพื่อแยกข้อมูลเป็นคอลัมน์

## คำอธิบาย

แปลง List เป็น Table โดยใช้ฟังก์ชัน Splitter เพื่อแยกข้อมูลเป็นคอลัมน์

## Syntax

```excel
= Table.FromList(list as list, optional splitter as nullable function, optional columns as any, optional default as any, optional extraValues as nullable number) as table
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| list | Yes | list |  | List ที่ต้องการแปลงเป็น Table |
| splitter | No | function | null | ฟังก์ชัน Splitter ที่ใช้แยกแต่ละ item ของ List (เช่น Splitter.SplitByComma(), Splitter.SplitByDelimiter(","), Record.FieldValues) ถ้าเป็น null จะใช้ Splitter.SplitByComma() เป็นค่าเริ่มต้น |
| columns | No | any | 1 | ชื่อคอลัมน์ของ Table สามารถเป็น number (จำนวนคอลัมน์), text (ชื่อคอลัมน์เดียว), list (รายชื่อคอลัมน์), หรือ TableType |
| default | No | any |  | ค่าเริ่มต้นสำหรับ cell ที่ว่างหรือไม่มีค่า |
| extraValues | No | number | 0 | วิธีจัดการค่าพิเศษ (0 = Ignore, 1 = Error, 2 = UseAsIs) |

## ตัวอย่าง

### 1. แปลง List เป็น Table แบบง่าย

```excel
= Table.FromList({1, 2, 3}, null, {"Number"})
```

**ผลลัพธ์:** `ตาราง 3 แถวจาก List {1, 2, 3} โดยมีคอลัมน์ชื่อ "Number"`

ใช้ Table.FromList แปลง List ตัวเลขเป็น Table โดยตั้งชื่อคอลัมน์เป็น "Number" ส่วน splitter ใช้ null (ค่าเริ่มต้น)

### 2. แยก CSV text โดยใช้ Splitter.SplitByComma

```excel
= Table.FromList({"a,apple", "b,ball", "c,cookie", "d,door"}, Splitter.SplitByComma(), {"Letter", "Example"})
```

**ผลลัพธ์:** `ตาราง 4 แถว 2 คอลัมน์ ได้ Letter (a, b, c, d) และ Example (apple, ball, cookie, door)`

Splitter.SplitByComma() แยกข้อมูลในแต่ละ item ของ List จากนั้นแทนที่ลงในคอลัมน์ "Letter" และ "Example"

### 3. ใช้ Splitter.SplitByNothing() เพื่อไม่แยกข้อมูล

```excel
= Table.FromList({"a,apple", "b,ball", "c,cookie"}, Splitter.SplitByNothing(), {"Combined"})
```

**ผลลัพธ์:** `ตาราง 3 แถว 1 คอลัมน์ที่เก็บค่าเดิม "a,apple", "b,ball", "c,cookie"`

Splitter.SplitByNothing() ไม่แยกข้อมูล เหมาะใช้เวลาอยากเก็บค่าเดิมเป็น single column

### 4. แปลง Record List โดยใช้ Record.FieldValues

```excel
let
    RecordList = {
        [CustomerID = 1, Name = "Alice", City = "Bangkok"],
        [CustomerID = 2, Name = "Bob", City = "Chiang Mai"]
    }
in
    Table.FromList(RecordList, Record.FieldValues, {"CustomerID", "Name", "City"})
```

**ผลลัพธ์:** `ตาราง 2 แถว 3 คอลัมน์ ได้ CustomerID, Name, City จาก Record List`

Record.FieldValues แยกค่าจาก fields ของแต่ละ record แล้วแทนที่ลงในคอลัมน์ที่ระบุ

### 5. แปลง List โดยระบุจำนวนคอลัมน์

```excel
= Table.FromList({"Alice", "Bob", "Charlie"}, null, 1)
```

**ผลลัพธ์:** `ตาราง 3 แถว 1 คอลัมน์ที่ชื่อ "Column1" (ค่าเริ่มต้น)`

เมื่อใช้ number แทนที่ list ของชื่อคอลัมน์ Power Query จะตั้งชื่อเป็น "Column1", "Column2" เป็นต้น

### 6. ใช้ Splitter.SplitByDelimiter สำหรับการแยกแบบอื่น

```excel
= Table.FromList({"a|apple", "b|ball", "c|cookie"}, Splitter.SplitByDelimiter("|"), {"Letter", "Example"})
```

**ผลลัพธ์:** `ตาราง 3 แถว 2 คอลัมน์ แยกตาม delimiter "|"`

Splitter.SplitByDelimiter() ยืดหยุ่นกว่า SplitByComma เพราะสามารถระบุ delimiter ที่ต้องการได้

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

- ใช้ Table.FromList() ร่วมกับ Splitter function เพื่อแยกข้อมูล CSV หรือ delimited text ได้อย่างสะดวก

- ถ้าข้อมูลมาเป็น Record List แล้ว ให้ใช้ Table.FromRecords() จะเรียบง่ายกว่า

- สามารถ chain function ได้เลย เช่น Table.FromList(...) |> Table.TransformColumnTypes(...) |> Table.SelectRows(...)

- ใช้ let...in structure เวลา List มีขนาดใหญ่หรือ complex เพื่อให้อ่านง่ายขึ้น

- ลองทดสอบ splitter ก่อนในแต่ละขั้นตอน ถ้า splitter ไม่ทำงานตามที่คาดไว้ ข้อมูลจะผิด

- ใช้ Splitter.SplitByDelimiter() แทน SplitByComma() เมื่อต้องการ delimiter ที่เฉพาะเจาะจง

- ระบุชื่อคอลัมน์ให้ชัดเจนเสมอ เพื่อให้โค้ดอ่านง่ายและ maintain ได้ดีขึ้น

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

**Q: Table.FromList กับ Table.FromRecords ต่างกันอย่างไร?**

Table.FromList() สร้าง Table จาก List (อาจต้องแยกข้อมูล) ส่วน Table.FromRecords() สร้าง Table จาก List of Records โดยตรง ถ้าข้อมูลมาเป็น Record List อยู่แล้ว ให้ใช้ Table.FromRecords() จะง่ายกว่า

**Q: ถ้า List มี item ที่มีจำนวน field ไม่เท่ากันจะเป็นไง?**

ใช้ parameter "default" เพื่อตั้งค่าเริ่มต้นสำหรับ cell ที่ว่าง เช่น Table.FromList(list, Splitter.SplitByComma(), {"A", "B", "C"}, "")

**Q: "extraValues" ใช้ทำไม?**

extraValues ควบคุมการจัดการเวลา item มี field มากกว่าจำนวนคอลัมน์ที่กำหนด: 0 = Ignore (ทำให้เป็นค่าเริ่มต้าน), 1 = Error (ขึ้น error), 2 = UseAsIs (เก็บค่าเดิม)

**Q: สามารถใช้ custom splitter ได้ไหม?**

ได้ ใช้ Splitter.SplitByDelimiter(), Splitter.SplitByAnyDelimiter(), หรือ custom function ที่คืนค่า list ได้

**Q: ต้อง specify ชื่อคอลัมน์ไหม?**

ไม่จำเป็น ถ้าไม่ระบุ Power Query จะตั้งชื่อเป็น "Column1", "Column2" เป็นต้น แต่แนะนำให้ระบุไว้เพื่อความชัดเจน

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

- [List.ConformToPageReader – แปลง List ของ Record เป็น Table สำหรับ Page Reader](https://www.thepexcel.com/functions/power-query/list-functions/list-conformtopagereader/)
- [List.Zip – รวม List หลายชุดเข้าด้วยกัน](https://www.thepexcel.com/functions/power-query/list-functions/list-zip/)
- [Record.FromList – สร้าง Record จาก List ของค่าและชื่อ Field](https://www.thepexcel.com/functions/power-query/record-functions/record-fromlist/)
- [Table.FromRecords – สร้างตารางจากรายการ Record](https://www.thepexcel.com/functions/power-query/table-functions/table-fromrecords/)

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

- [Microsoft Learn - Table.FromList](https://learn.microsoft.com/en-us/powerquery-m/table-fromlist) _(official)_
- [PowerQuery.how - Function Reference](https://powerquery.how/) _(article)_
- [Microsoft Learn - Splitter Functions](https://learn.microsoft.com/en-us/powerquery-m/splitter-functions) _(official)_
- [Microsoft Learn - Record Functions](https://learn.microsoft.com/en-us/powerquery-m/record-fieldvalues) _(official)_

---

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