Table.ToRows แปลงตารางให้เป็น List ของ List โดยแต่ละ List ย่อยแทนข้อมูล 1 แถว ไม่มีชื่อคอลัมน์ เหมาะสำหรับส่งออกข้อมูลเป็น JSON/CSV หรือประมวลผลแถวโดยไม่สนใจชื่อฟิลด์
=Table.ToRows(table as table) as list
=Table.ToRows(table as table) as list
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| table | table | Yes | ตารางที่ต้องการแปลงให้เป็น List ของ List |
ใช้ Text.Combine ร่วมกับ Table.ToRows เพื่อแปลงข้อมูลในตารางให้เป็นรูปแบบ CSV
เหมาะสำหรับกรณีที่ต้องการประมวลผลข้อมูลแบบ Element-by-Element หรือเมื่อชื่อคอลัมน์ไม่สำคัญ
let SampleTable = Table.FromRecords( { [ID = 1, Name = "Bob", Phone = "123-4567"], [ID = 2, Name = "Jim", Phone = "987-6543"], [ID = 3, Name = "Paul", Phone = "…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
{{1, "Bob", "123-4567"}, {2, "Jim", "987-6543"}, {3, "Paul", "543-7890"}}
let Source = Table.FromRecords( { [OrderID = "001", Amount = 1500], [OrderID = "002", Amount = 2300], [OrderID = "003", Amount = 800] } ), AsRows = Table.ToRows…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
"001,1500\n002,2300\n003,800"
let Data = Table.FromRecords({[ID = 1, Status = "Active"]}), Rows = Table.ToRows(Data), Records = Table.ToRecords(Data) in {Rows, Records}let
Data = Table.FromRecords({[ID = 1, Status = "Active"]}),
Rows = Table.ToRows(Data),
Records = Table.ToRecords(Data)
in
{Rows, Records}
{{1, "Active"}, {[ID = 1, Status = "Active"]}}
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
ใช้เวลาต้องการ: (1) ส่งออกเป็น CSV/JSON array format, (2) ประมวลผลแถวโดยไม่จำเป็นต้องรู้ชื่อคอลัมน์, (3) ส่งข้อมูลไปยัง API ที่ต้องการ array-of-arrays, (4) สร้าง List แบบง่ายๆ เพื่อใช้งานต่อไป
ค่าจะเรียงตามลำดับของคอลัมน์ในตารางจากซ้ายไปขวา เช่น ถ้าตารางมี คอลัมน์ A, B, C ลำดับจะเป็น {valueA, valueB, valueC}
จะคืน List ว่าง {} (empty list) ไม่ใช่ error
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 ที่ไม่จำเป็น