Thep Excel

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

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

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

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
6/10

Difficulty
4/10

Usefulness
7/10

Syntax & Arguments

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

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

Examples

สร้างตารางจากลิสต์ 2 คอลัมน์พร้อมชื่อ
let IDList = {1, 2, 3}, NameList = {"Bob", "Jim", "Paul"}, Result = Table.FromColumns({IDList, NameList}, {"ID", "Name"}) in Result
นำลิสต์ ID และ Name มาสร้างเป็นตาราง โดยระบุชื่อคอลัมน์เป็น ID และ Name
Power Query Formula:

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

Result:

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

ข้อมูลแต่ละคอลัมน์มีจำนวนไม่เท่ากัน
let Col1 = {1, 2}, Col2 = {"A", "B", "C"}, Result = Table.FromColumns({Col1, Col2}, {"Numbers", "Letters"}) in Result
Col1 มี 2 ค่า Col2 มี 3 ค่า – Power Query จะเติม null ให้ในแถวที่ 3 ของ Numbers โดยอัตโนมัติ
Power Query Formula:

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

Result:

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

ไม่ระบุชื่อคอลัมน์ (Auto-naming)
let Data1 = {100, 200, 300}, Data2 = {50, 75, 25}, Data3 = {"X", "Y", "Z"}, Result = Table.FromColumns({Data1, Data2, Data3}) in Result
ไม่ระบุ parameter ที่ 2 ก็ Power Query จะตั้งชื่อคอลัมน์เองตามลำดับ
Power Query Formula:

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

Result:

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

ลิสต์ว่าง (Empty List)
let Empty1 = {}, Empty2 = {}, Result = Table.FromColumns({Empty1, Empty2}, {"A", "B"}) in Result
ถ้าลิสต์ว่างหมด ก็จะได้ตารางว่าง (0 แถว) แต่ยังคงมีชื่อคอลัมน์ 2 คอลัมน์
Power Query Formula:

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

Result:

ตาราง 0 แถว 2 คอลัมน์

FAQs

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

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

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

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

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

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

Resources & Related

Additional Notes

Table.FromColumns ใช้สร้างตารางจากข้อมูลที่จัดเก็บเป็นคอลัมน์แยกกัน แทนแถว ฟังก์ชันนี้คาดหวัง {{Col1}, {Col2}, {Col3}} ก็จะสร้างตารางแนวนอนให้เองครับ

ที่เจ๋งคือถ้า List แต่ละอันมีจำนวนข้อมูลไม่เท่ากัน Power Query จะเติม null ให้อัตโนมัติแทนที่จะพังเลย ก็ไม่ต้องกังวลเรื่องข้อมูลที่ไม่เรียบร้อย

ส่วนตัวผมใช้ฟังก์ชันนี้บ่อยครั้งตอนดึงข้อมูลจาก API ที่ return เป็น {“ids”: [1,2,3], “names”: [“Bob”, “Jim”]} อย่างนี้ ก็นำ List ทั้งสองมา feed ให้ Table.FromColumns เสร็จสรรค์ใจแล้ว 😎

Leave a Reply

Your email address will not be published. Required fields are marked *