Thep Excel

Table.ToRows – แปลงตารางเป็น List ของ List (รายแถว)

Table.ToRows แปลงตารางให้เป็น List ของ List โดยแต่ละ List ย่อยแทนข้อมูล 1 แถว ไม่มีชื่อคอลัมน์ เหมาะสำหรับส่งออกข้อมูลเป็น JSON/CSV หรือประมวลผลแถวโดยไม่สนใจชื่อฟิลด์

=Table.ToRows(table as table) as list

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
5/10

Difficulty
4/10

Usefulness
6/10

Syntax & Arguments

=Table.ToRows(table as table) as list

Argument Type Required Default Description
table table Yes ตารางที่ต้องการแปลงให้เป็น List ของ List

How it works

สร้างไฟล์ CSV จากตาราง

ใช้ Text.Combine ร่วมกับ Table.ToRows เพื่อแปลงข้อมูลในตารางให้เป็นรูปแบบ CSV

ประมวลผลข้อมูลทีละแถวโดยไม่สนใจชื่อคอลัมน์

เหมาะสำหรับกรณีที่ต้องการประมวลผลข้อมูลแบบ Element-by-Element หรือเมื่อชื่อคอลัมน์ไม่สำคัญ

Examples

ตัวอย่างพื้นฐาน: แปลงตารางง่ายๆ
let SampleTable = Table.FromRecords( { [ID = 1, Name = "Bob", Phone = "123-4567"], [ID = 2, Name = "Jim", Phone = "987-6543"], [ID = 3, Name = "Paul", Phone = "…
ตาราง 3 แถว 3 คอลัมน์ ถูกแปลงเป็น List ของ 3 Lists ย่อย แต่ละ List ย่อยประกอบด้วยค่าจากแถวนั้นเท่านั้น ไม่มี Field Names
Power Query Formula:

let
    SampleTable = Table.FromRecords(
        {
            [ID = 1, Name = "Bob", Phone = "123-4567"],
            [ID = 2, Name = "Jim", Phone = "987-6543"],
            [ID = 3, Name = "Paul", Phone = "543-7890"]
        }
    ),
    Result = Table.ToRows(SampleTable)
in
    Result

Result:

{{1, "Bob", "123-4567"}, {2, "Jim", "987-6543"}, {3, "Paul", "543-7890"}}

ตัวอย่างจริง: ส่งออก CSV
let Source = Table.FromRecords( { [OrderID = "001", Amount = 1500], [OrderID = "002", Amount = 2300], [OrderID = "003", Amount = 800] } ), AsRows = Table.ToRows…
แปลงตารางเป็น List of Lists แล้วจึง combine ข้อมูลให้เป็น CSV format ที่มี comma delimiter และ line feed
Power Query Formula:

let
    Source = Table.FromRecords(
        {
            [OrderID = "001", Amount = 1500],
            [OrderID = "002", Amount = 2300],
            [OrderID = "003", Amount = 800]
        }
    ),
    AsRows = Table.ToRows(Source),
    CsvFormat = Text.Combine(
        List.Transform(
            AsRows,
            each Text.Combine(List.Transform(_, Text.From), ",")
        ),
        "#(lf)"
    )
in
    CsvFormat

Result:

"001,1500\n002,2300\n003,800"

เปรียบเทียบ Table.ToRows vs Table.ToRecords
let Data = Table.FromRecords({[ID = 1, Status = "Active"]}), Rows = Table.ToRows(Data), Records = Table.ToRecords(Data) in {Rows, Records}
Table.ToRows ⟶ {{1, "Active"}} (List ของ List) | Table.ToRecords ⟶ {[ID = 1, Status = "Active"]} (List ของ Record ที่มี Field Names)
Power Query Formula:

let
    Data = Table.FromRecords({[ID = 1, Status = "Active"]}),
    Rows = Table.ToRows(Data),
    Records = Table.ToRecords(Data)
in
    {Rows, Records}

Result:

{{1, "Active"}, {[ID = 1, Status = "Active"]}}

FAQs

Table.ToRows ต่างจาก Table.ToRecords อย่างไร?

Table.ToRows คืน List ของ List (เช่น {{1, 2}, {3, 4}}) โดยไม่มีชื่อคอลัมน์ ส่วน Table.ToRecords คืน List ของ Record (เช่น {[A=1, B=2], [A=3, B=4]}) ที่มี Field Names หากคุณต้องการชื่อคอลัมน์เพื่อการประมวลผลต่อไป ให้ใช้ Table.ToRecords แต่ถ้าแค่ต้องการค่าข้อมูลแบบง่ายๆ ให้ใช้ Table.ToRows

ใช้ Table.ToRows ตอนไหน?

ใช้เวลาต้องการ: (1) ส่งออกเป็น CSV/JSON array format, (2) ประมวลผลแถวโดยไม่จำเป็นต้องรู้ชื่อคอลัมน์, (3) ส่งข้อมูลไปยัง API ที่ต้องการ array-of-arrays, (4) สร้าง List แบบง่ายๆ เพื่อใช้งานต่อไป

ค่าจากแถวจะเรียงตามลำดับไหน?

ค่าจะเรียงตามลำดับของคอลัมน์ในตารางจากซ้ายไปขวา เช่น ถ้าตารางมี คอลัมน์ A, B, C ลำดับจะเป็น {valueA, valueB, valueC}

ถ้าตารางไม่มีแถวเลยจะเกิดอะไร?

จะคืน List ว่าง {} (empty list) ไม่ใช่ error

Resources & Related

Additional Notes

Table.ToRows ฟังก์ชันแปลงตารางให้เป็น List โดยที่สมาชิกแต่ละตัวใน List ใหญ่ คือ List ย่อยที่มีค่าจาก 1 แถวในตาราง เรียงตามลำดับคอลัมน์ และสำคัญคือ ไม่มีชื่อคอลัมน์มาด้วย เหมาะสำหรับสถานการณ์ที่ต้องแปลงตารางเป็น CSV หรือ JSON arrays หรือประมวลผลข้อมูลทีละแถวโดยไม่จำเป็นต้องรู้ชื่อคอลัมน์

ที่เจ๋งคือ ถ้าคุณเพียงแค่ต้องการค่าข้อมูล ไม่ต้องการ Field Names ก็ใช้ Table.ToRows ดีกว่า Table.ToRecords เนื่องจาก structure จะเรียบง่ายกว่า

ส่วนตัวผมชอบใช้ Table.ToRows เวลาต้องส่งข้อมูล API ที่ต้องการ array-of-arrays format หรือตอนแปลง Power Query ไป JSON ให้เป็นตัวเลขเท่านั้น ก็ใช้ได้เก่ง ไม่ต้องเพิ่ม Field Names ที่ไม่จำเป็น

Leave a Reply

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