---
title: Table.FromColumns – สร้างตารางจากลิสต์ของคอลัมน์
url: https://www.thepexcel.com/functions/power-query/table-functions/table-fromcolumns/
type: function-explainer
program: Power Query
syntax: "Table.FromColumns(lists as list, optional columns as any) as table"
date: 2025-12-03
updated: 2025-12-23
scores:
  popularity: 6
  difficulty: 4
  usefulness: 7
---

# Table.FromColumns – สร้างตารางจากลิสต์ของคอลัมน์

> Table.FromColumns สร้างตารางจากลิสต์ของลิสต์ โดยแต่ละลิสต์จะเป็นคอลัมน์หนึ่ง เหมาะกับข้อมูล column-o

## คำอธิบาย

Table.FromColumns สร้างตารางจากลิสต์ของลิสต์ โดยแต่ละลิสต์จะเป็นคอลัมน์หนึ่ง เหมาะกับข้อมูล column-oriented จาก API หรือ JSON

## Syntax

```excel
Table.FromColumns(lists as list, optional columns as any) as table
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| lists | Yes | list |  | ลิสต์ที่บรรจุลิสต์ของค่าแต่ละคอลัมน์ เช่น {{1, 2, 3}, {"A", "B", "C"}} |
| columns | No | any | null | ชื่อคอลัมน์ (ลิสต์ของ Text) หรือ Table Type - ถ้าไม่ระบุจะเป็น Column1, Column2, ... เป็นต้น |

## ตัวอย่าง

### 1. สร้างตารางจากลิสต์ 2 คอลัมน์พร้อมชื่อ

```excel
let
    IDList = {1, 2, 3},
    NameList = {"Bob", "Jim", "Paul"},
    Result = Table.FromColumns({IDList, NameList}, {"ID", "Name"})
in
    Result
```

**ผลลัพธ์:** `ตาราง 3 แถว 2 คอลัมน์: ID (1,2,3) และ Name (Bob, Jim, Paul)`

นำลิสต์ ID และ Name มาสร้างเป็นตาราง โดยระบุชื่อคอลัมน์เป็น ID และ Name

### 2. ข้อมูลแต่ละคอลัมน์มีจำนวนไม่เท่ากัน

```excel
let
    Col1 = {1, 2},
    Col2 = {"A", "B", "C"},
    Result = Table.FromColumns({Col1, Col2}, {"Numbers", "Letters"})
in
    Result
```

**ผลลัพธ์:** `ตาราง 3 แถว: แถว 1-2 มีค่า แถว 3 มี null ในคอลัมน์ Numbers`

Col1 มี 2 ค่า Col2 มี 3 ค่า - Power Query จะเติม null ให้ในแถวที่ 3 ของ Numbers โดยอัตโนมัติ

### 3. ไม่ระบุชื่อคอลัมน์ (Auto-naming)

```excel
let
    Data1 = {100, 200, 300},
    Data2 = {50, 75, 25},
    Data3 = {"X", "Y", "Z"},
    Result = Table.FromColumns({Data1, Data2, Data3})
in
    Result
```

**ผลลัพธ์:** `ตาราง 3 แถว 3 คอลัมน์ ชื่อคอลัมน์เป็น Column1, Column2, Column3 (อัตโนมัติ)`

ไม่ระบุ parameter ที่ 2 ก็ Power Query จะตั้งชื่อคอลัมน์เองตามลำดับ

### 4. ลิสต์ว่าง (Empty List)

```excel
let
    Empty1 = {},
    Empty2 = {},
    Result = Table.FromColumns({Empty1, Empty2}, {"A", "B"})
in
    Result
```

**ผลลัพธ์:** `ตาราง 0 แถว 2 คอลัมน์`

ถ้าลิสต์ว่างหมด ก็จะได้ตารางว่าง (0 แถว) แต่ยังคงมีชื่อคอลัมน์ 2 คอลัมน์

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

- ใช้ Table.FromColumns ร่วมกับ Json.Document เมื่อ API return column-oriented JSON

- ถ้าข้อมูลมาจาก API ที่จำนวนเวลา List ไม่เท่า ก็แนะนำให้ clean ข้อมูลก่อน เช่น List.Pad หรือ List.Range

- หากต้องสร้างตารางจากแถว ให้ใช้ Table.FromRows แทน Table.FromColumns ครับ

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

**Q: ต่างจาก Table.FromRows ยังไง?**

Table.FromRows คาดหวัง {{Row1}, {Row2}, ...} ข้อมูลเป็นแถวๆ ส่วน Table.FromColumns คาดหวัง {{Col1}, {Col2}, ...} ข้อมูลเป็นคอลัมน์ๆ - ตรงข้ามกันเลยครับ

**Q: เวลา List ความยาวไม่เท่า จะบอกว่าไหนคือแถวที่สุดหรือเปล่า?**

ไม่บอก Power Query ก็เติม null ให้เอง ใช้ List.Max(List.Transform({Col1, Col2, Col3}, List.Count)) ถ้าอยากรู้ว่าจะมีกี่แถว

**Q: ถ้าลิสต์ว่างหมดจะเป็นไง?**

ก็จะได้ตารางว่าง (0 แถว) แต่คอลัมน์จะยังอยู่ถ้าระบุชื่อคอลัมน์ไว้

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

- [Microsoft Learn - Table.FromColumns](https://learn.microsoft.com/en-us/powerquery-m/table-fromcolumns) _(official)_
- [Microsoft Learn - Table.FromRows (ตัวอักษรสำหรับเปรียบเทียบ)](https://learn.microsoft.com/en-us/powerquery-m/table-fromrows) _(official)_

---

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