Thep Excel

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

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

= 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

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
5/10

Difficulty
4/10

Usefulness
6/10

Syntax & Arguments

= 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

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

Examples

แปลง List เป็น Table แบบง่าย
Table.FromList({1, 2, 3}, null, {"Number"})
ใช้ Table.FromList แปลง List ตัวเลขเป็น Table โดยตั้งชื่อคอลัมน์เป็น "Number" ส่วน splitter ใช้ null (ค่าเริ่มต้น)
Power Query Formula:

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

Result:

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

แยก CSV text โดยใช้ Splitter.SplitByComma
Table.FromList({"a,apple", "b,ball", "c,cookie", "d,door"}, Splitter.SplitByComma(), {"Letter", "Example"})
Splitter.SplitByComma() แยกข้อมูลในแต่ละ item ของ List จากนั้นแทนที่ลงในคอลัมน์ "Letter" และ "Example"
Power Query Formula:

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

Result:

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

ใช้ Splitter.SplitByNothing() เพื่อไม่แยกข้อมูล
Table.FromList({"a,apple", "b,ball", "c,cookie"}, Splitter.SplitByNothing(), {"Combined"})
Splitter.SplitByNothing() ไม่แยกข้อมูล เหมาะใช้เวลาอยากเก็บค่าเดิมเป็น single column
Power Query Formula:

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

Result:

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

แปลง Record List โดยใช้ Record.FieldValues
let RecordList = { [CustomerID = 1, Name = "Alice", City = "Bangkok"], [CustomerID = 2, Name = "Bob", City = "Chiang Mai"] } in Table.FromList(RecordList, Recor…
Record.FieldValues แยกค่าจาก fields ของแต่ละ record แล้วแทนที่ลงในคอลัมน์ที่ระบุ
Power Query Formula:

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

Result:

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

แปลง List โดยระบุจำนวนคอลัมน์
Table.FromList({"Alice", "Bob", "Charlie"}, null, 1)
เมื่อใช้ number แทนที่ list ของชื่อคอลัมน์ Power Query จะตั้งชื่อเป็น "Column1", "Column2" เป็นต้น
Power Query Formula:

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

Result:

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

ใช้ Splitter.SplitByDelimiter สำหรับการแยกแบบอื่น
Table.FromList({"a|apple", "b|ball", "c|cookie"}, Splitter.SplitByDelimiter("|"), {"Letter", "Example"})
Splitter.SplitByDelimiter() ยืดหยุ่นกว่า SplitByComma เพราะสามารถระบุ delimiter ที่ต้องการได้
Power Query Formula:

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

Result:

ตาราง 3 แถว 2 คอลัมน์ แยกตาม delimiter "|"

FAQs

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

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

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

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

"extraValues" ใช้ทำไม?

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

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

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

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

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

Resources & Related

Additional Notes

Table.FromList() ใช้สำหรับแปลง List ให้เป็น Table โดยแยกแต่ละ item ใน List เป็นแถวและสามารถระบุวิธีการแยกข้อมูลเป็นคอลัมน์ได้

ที่เจ๋งของ Table.FromList คือมันเอาท์พุทเป็น Table แล้ว สามารถใช้ function อื่นต่อทันทีได้เลย ไม่ต้องแปลง format ใหม่ครับ เหมาะมากสำหรับการแปลงข้อมูลแบบ raw list ให้อยู่ในโครงสร้างตารางที่จัดการง่าย

ส่วนตัวผม ใช้ Table.FromList บ่อยตอนทำ web scraping หรือเวลาดึงข้อมูลจาก API ที่มาเป็น JSON list ยกตัวอย่างเช่น ถ้าได้ list มาแบบ {“a,apple”, “b,ball”, “c,cat”} ผมก็ใช้ Table.FromList ร่วมกับ Splitter function แล้วตั้งชื่อคอลัมน์เรียบร้อย ข้อมูลก็ clean และพร้อม filter/sort ได้เลย นอกจากนี้ยังใช้ได้ดีกับการแปลง text data ที่มี delimiter หรือแม้แต่ record list ที่ต้องการแยก field ออกมาเป็นคอลัมน์ 😎

Leave a Reply

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