Thep Excel

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

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

fx
= Table.FromList(list, [splitter], [columns], [default], [extraValues]) as table

ความนิยม5/10
ความยาก4/10
ประโยชน์6/10

อัปเดต 3 December 2025

Syntax & Arguments

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

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

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 ออกมาเป็นคอลัมน์ 😎

Examples

แปลง List เป็น Table แบบง่ายTable.FromList({1, 2, 3}, null, {"Number"})

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

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

ผลลัพธ์ตาราง 3 แถวจาก List {1, 2, 3} โดยมีคอลัมน์ชื่อ "Number"
แยก CSV text โดยใช้ Splitter.SplitByCommaTable.FromList({"a,apple", "b,ball", "c,cookie", "d,door"}, Splitter.SplitByComma(), {"Letter", "Example"})

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

fx
= 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.SplitByNothing() เพื่อไม่แยกข้อมูลTable.FromList({"a,apple", "b,ball", "c,cookie"}, Splitter.SplitByNothing(), {"Combined"})

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

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

ผลลัพธ์ตาราง 3 แถว 1 คอลัมน์ที่เก็บค่าเดิม "a,apple", "b,ball", "c,cookie"
แปลง Record List โดยใช้ Record.FieldValueslet RecordList = { [CustomerID = 1, Name = "Alice", City = "Bangkok"], [CustomerID = 2, Name = "Bob", City = "Chiang Mai"] } in Table.FromList(RecordList, Recor…

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

fx
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
แปลง List โดยระบุจำนวนคอลัมน์Table.FromList({"Alice", "Bob", "Charlie"}, null, 1)

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

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

ผลลัพธ์ตาราง 3 แถว 1 คอลัมน์ที่ชื่อ "Column1" (ค่าเริ่มต้น)
ใช้ Splitter.SplitByDelimiter สำหรับการแยกแบบอื่นTable.FromList({"a|apple", "b|ball", "c|cookie"}, Splitter.SplitByDelimiter("|"), {"Letter", "Example"})

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

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

ผลลัพธ์ตาราง 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

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.FromList จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Table.FromListTable functions
Table functions (2)
Table.FromRecords

แปลง List ของ Record เป็นตาราง โดยแต่ละ Record กลายเป็นหนึ่งแถว เหมาะสำหรับข้อมูลจาก API หรือ JSON

Table.FromRows

Table.FromRows สร้างตารางจาก List ของ List โดยแต่ละ List ย่อยแทนข้อมูลในแถวหนึ่ง คล้ายกับการ transpose ข้อมูลแบบแถว-คอลัมน์ แต่ทำให้เป็นตารางจริงในทันที

Accessing data functions (1)
Html.Table

Html.Table ใช้สำหรับแยกข้อมูลจากตารางหรือรายการในเอกสาร HTML โดยใช้ CSS selectors เพื่อกำหนดตำแหน่งและคอลัมน์

List functions (1)
List.ConformToPageReader

List.ConformToPageReader ใช้ภายในเพื่อแปลง List ของ Record เป็น Table ตาม Schema ที่กำหนด เหมาะสำหรับโครงสร้างข้อมูลที่ Page Reader ต้องการ

Record functions (1)
Record.FieldValues

คืนค่าข้อมูล (Values) ทั้งหมดจาก Record เป็น List

Splitter functions (1)
Splitter.SplitByNothing

Splitter.SplitByNothing ใช้สำหรับการประมวลผล

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่