Table.ToRecords แปลงตารางให้เป็น List โดยแต่ละแถวกลายเป็น Record พร้อมชื่อคอลัมน์เป็น Field Name ทำให้สะดวกในการวนลูปแบบมีโครงสร้าง
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| table | table | ตารางต้นทางที่ต้องการแปลงเป็น List ของ Record |
ฟังก์ชัน Table.ToRecords ใน Power Query ใช้สำหรับแปลงข้อมูลตารางให้เป็น List ของ Record โดยแต่ละ Record แทนหนึ่งแถวในตาราง และ Field Name ใน Record คือชื่อคอลัมน์ของตารางเดิม
ที่เจ๋งคือการแปลงนี้ช่วยให้เราสามารถทำงานกับข้อมูลแบบมีโครงสร้างได้ อย่างเช่นใช้ List.Transform เพื่อประมวลผลแต่ละแถว หรือใช้กับ Record.FieldNames เพื่อเข้าถึง Field ต่างๆ ได้ง่ายๆ ไม่ต้องจำหมายเลขคอลัมน์
ส่วนตัวผมใช้ Table.ToRecords บ่อยมากตอนต้องการทำงานที่ซับซ้อน เช่น สร้าง Custom Calculation ต่อแถว หรือจำเป็นต้อง Access ข้อมูลแบบมีชื่อ Field 😎
ใช้ List.Transform ร่วมกับ Table.ToRecords เพื่อประมวลผลข้อมูลแต่ละแถวด้วย Logic ที่ซับซ้อน
โครงสร้าง Record ที่ได้จากฟังก์ชันนี้ใกล้เคียงกับ Object ใน JSON ทำให้ง่ายต่อการ Export เป็น JSON
ตาราง 3 แถว ถูกแปลงเป็น List ของ 3 Records โดยแต่ละ Record มี Field ProductID, ProductName, Price ตามชื่อคอลัมน์เดิม
ใช้ Table.ToRecords แปลงเป็น List แล้วทำ List.Transform เพื่อเพิ่ม Field Total ให้แต่ละ Record ด้วยการคูณ Quantity × UnitPrice
ใช้ Table.ToRecords + List.Transform ทำให้เราเลือกเฉพาะ Field Name และ Email ที่ต้องการ โดยตัดทิ้ง Department
แปลงตารางเป็น Record List แล้วใช้ List.Select เพื่อกรองเฉพาะ Record ที่ Score ≥ 85 ออกมา
List ของ Record ไม่มีชื่อคอลัมน์แสดง แต่ข้อมูลแต่ละ Record ยังมี Field Name ที่สามารถเข้าถึงแบบ [FieldName] ได้อยู่ ส่วนตาราง (Table) มีโครงสร้างแสดงชื่อคอลัมน์ชัดเจน ถ้าต้องการแสดงผลลัพธ์เป็นตารางอีกครั้งก็ใช้ Table.FromRecords กลับไป
Table.ToRecords คืน List ของ Record (มีชื่อ Field) ส่วน Table.ToRows คืน List ของ List (เป็นเพียงค่าโดยไม่มีชื่อคอลัมน์) เมื่อใช้ Table.ToRows ต้องจำว่าสมาชิกลำดับที่ 1 คือคอลัมน์แรก ลำดับที่ 2 คือคอลัมน์ที่สอง เป็นต้น แต่ Table.ToRecords ทำให้สะดวกกว่าเพราะเข้าถึงแบบชื่อ
ใช้เมื่อต้องการประมวลผลแต่ละแถวแบบ Custom Logic ที่ซับซ้อน เช่นคำนวณค่า, สร้าง Field ใหม่, เปลี่ยนชื่อ Field, หรือกรองข้อมูลแบบมีเงื่อนไขที่ต้องเข้าถึง Field หลายตัว เมื่อใช้ร่วมกับ List.Transform, List.Select, List.Select ทำให้สะดวกมากครับ
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.ToRecords จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Table.ToRows แปลงตารางให้เป็น List ของ List โดยแต่ละ List ย่อยแทนข้อมูล 1 แถว ไม่มีชื่อคอลัมน์ เหมาะสำหรับส่งออกข้อมูลเป็น JSON/CSV หรือประมวลผลแถวโดยไม่สนใจชื่อฟิลด์
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่