แปลง List ของ Record เป็นตาราง โดยแต่ละ Record กลายเป็นหนึ่งแถว เหมาะสำหรับข้อมูลจาก API หรือ JSON
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| records | List | รายการ Record ที่ต้องการแปลงเป็นตาราง เช่น {[ID=1, Name=”Alice”], [ID=2, Name=”Bob”]} | |
| [columns]ไม่บังคับ | Any | null | ระบุชื่อคอลัมน์ (List of Text) หรือ Type ของตาราง (type table […]) เพื่อกำหนดลำดับคอลัมน์ตามที่ต้อง |
| [missingField]ไม่บังคับ | Number | MissingField.Error | วิธีการจัดการฟิลด์ที่หายไปในบาง Record – MissingField.Error (ค่า default) หรือ MissingField.UseNull (เติม null) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ฟังก์ชัน Table.FromRecords ใช้เปลี่ยน List ของ Record (รูปแบบคล้าย Dictionary) เป็นตาราง Structure ตามธรรมชาติ โดยชื่อฟิลด์ใน Record จะกลายเป็นชื่อคอลัมน์ และค่าแต่ละ Record เป็นหนึ่งแถว
ที่เจ๋งคือเมื่อคุณทำงานกับ API ที่คืน JSON หรือข้อมูลที่มาจากการ Transform ขั้นกลาง Table.FromRecords ช่วยให้เปลี่ยนข้อมูลลง Table ได้อย่างมีประสิทธิภาพ โดยคุณสามารถควบคุมลำดับคอลัมน์ และจัดการฟิลด์ที่หายไปได้
ส่วนตัวผม มักใช้ Table.FromRecords ตอนสร้างตารางจากข้อมูล JSON ที่ได้มาจาก API หรือสร้าง test data ในการ debug ข้อสำคัญคือ parameter columns เพราะถ้าไม่กำหนดลำดับคอลัมน์ อาจไม่ตรงตามที่คาดหวัง และ parameter missingField ช่วยให้ไม่ต้อง Error เมื่อ Record บางอันไม่มีฟิลด์บาง 😎
แปลง List ของ Record 3 ตัวเป็นตาราง โดยไม่ระบุ columns parameter ลำดับคอลัมน์อาจขึ้นอยู่กับลำดับการปรากฏตัวของฟิลด์
ใช้ columns parameter ด้วย type table เพื่อบังคับลำดับคอลัมน์ให้ Name มาก่อน ID และกำหนด Type ของแต่ละคอลัมน์
Record ที่ 2 ไม่มี Email field จะแสดงเป็น null แทน ซึ่ง MissingField.UseNull ช่วยให้ไม่เกิด Error
รับข้อมูล JSON จาก API, แปลงเป็น Record List, แล้วสร้างตาราง โดยจัดการฟิลด์ที่อาจหายไป
Table.FromRecords ใช้กับ List of Record (named fields) เช่น {[Name="Alice", Age=25]} ส่วน Table.FromRows ใช้กับ List of List (positional values) เช่น {{"Alice", 25}} เลือกตามรูปแบบข้อมูลที่มี
ตามค่า default (MissingField.Error) จะเกิด Error หากต้องให้มันเติม null แทน ให้ใช้ MissingField.UseNull
ใช้ columns parameter โดยระบุ type table เช่น type table [ColA = text, ColB = number] จะบังคับลำดับตามลำดับการประกาศ
สองพารามิเตอร์แรก (records, columns) มีจากแรก ส่วน missingField parameter เพิ่มมาในเวอร์ชันหลัง (Power Query 2016 ขึ้นไป)
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.FromRecords จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Table.AddColumn เพิ่มคอลัมน์ใหม่ลงในตารางโดยคำนวณค่าจากฟังก์ชันที่กำหนด ใช้คำสั่ง each เพื่ออ้างอิงข้อมูลในแต่ละแถว เช่น each [Price] * [Quantity] สามารถระบุชนิดข้อมูลได้เพื่อเพิ่มประสิทธิภาพและป้องกันข้อผิดพลาดจากการคาดเดาชนิดข้อมูล ทำงานแบบทีละแถวและเหมาะสำหรับสร้างคอลัมน์คำนวณ รวมข้อมูล ใช้เงื่อนไข และการแปลงข้อมูลต่างๆ ใช้ร่วมกับฟังก์ชัน Table.TransformColumns สำหรับแก้ไขคอลัมน์เดิม Table.AddIndexColumn สำหรับเพิ่มหมายเลขลำดับ Table.SelectRows สำหรับกรองแถว Table.FromRecords สำหรับสร้างตารางจากข้อมูล Text.Combine สำหรับรวมข้อความ Number.Round สำหรับปัดเศษ Date.Year สำหรับดึงค่าปี และ Text.Upper สำหรับแปลงเป็นตัวพิมพ์ใหญ่ เพื่อสร้างกระบวนการแปลงข้อมูลที่สมบูรณ์
Table.AddJoinColumn เชื่อมต่อข้อมูลจากสองตารางตามคีย์ที่ตรงกัน โดยเก็บผลลัพธ์ในคอลัมน์ใหม่เป็นตารางแบบ nested แทนการขยายแนวนอน
โหลดตารางเข้าสู่หน่วยความจำ (RAM) เพื่อแยกข้อมูลจากแหล่งเดิมและป้องกันไม่ให้ Query Folding ดึงข้อมูลใหม่
Table.Column ดึงค่าจากคอลัมน์เฉพาะออกมาจากตาราง และคืนค่าเป็น List เพื่อให้สามารถนำไปประมวลผลต่อได้
Table.Combine ใช้สำหรับรวม list ของ table เข้าเป็น table เดียว ยับยั้ง append ตัว 1 แถวหลาย ๆ ตารางพร้อมกัน
Table.ConformToPageReader ปรับโครงสร้างตารางให้เข้ากับกลไก page reader โดยรับฟังก์ชันสำหรับการจัดรูปแบบ เป็นฟังก์ชันภายในของ Power Query ไม่แนะนำให้ใช้ในโค้ดทั่วไป
Table.FromColumns สร้างตารางจากลิสต์ของลิสต์ โดยแต่ละลิสต์จะเป็นคอลัมน์หนึ่ง เหมาะกับข้อมูล column-oriented จาก API หรือ JSON
แปลง List เป็น Table โดยใช้ฟังก์ชัน Splitter เพื่อแยกข้อมูลเป็นคอลัมน์
Table.FromRows สร้างตารางจาก List ของ List โดยแต่ละ List ย่อยแทนข้อมูลในแถวหนึ่ง คล้ายกับการ transpose ข้อมูลแบบแถว-คอลัมน์ แต่ทำให้เป็นตารางจริงในทันที
Table.ReplacePartitionKey แทนที่ partition key ของตาราง ซึ่งเป็น metadata สำหรับการแบ่งพาร์ทิชันและการจัดการข้อมูลภายใน เอาไว้ควบคุมวิธีการแบ่งพาร์ทิชันของข้อมูลในตารางนั้น
Table.SelectColumns ใช้สำหรับเลือกคอลัมน์เฉพาะจากตารางและสร้างตารางใหม่ที่มีเฉพาะคอลัมน์เหล่านั้น
Table.StopFolding ป้องกันไม่ให้ขั้นตอน downstream ถูกส่งกลับไปประมวลผลที่ data source เดิม ช่วยเมื่อต้องดีบักหรือเมื่อการบังคับประมวลผลใน Power Query ให้ผลลัพธ์ที่คาดหวัง
Table.TransformColumnTypes เปลี่ยน Data Type ของคอลัมน์ที่ระบุให้เป็นประเภทใหม่ (เช่น Text เป็น Number, Date เป็น Text) โดยใช้ built-in conversion methods เบื้องหลัง รองรับการแปลงหลายคอลัมน์พร้อมกัน และสามารถระบุ culture parameter เพื่อจัดการ locale-specific formatting สำหรับวันที่และตัวเลข เหมาะสำหรับขั้นตอนเตรียมข้อมูลก่อน Load เข้า Data Model เพื่อป้องกัน conversion errors และเพิ่มประสิทธิภาพ ใช้ร่วมกับ Table.TransformColumns, Number.From, Text.From และ Date.From เมื่อต้องการ custom transformation logic
Table.UnpivotOtherColumns แปลงคอลัมน์ที่ไม่ได้ระบุทั้งหมดให้กลายเป็นแถว (Unpivot) โดยระบุเฉพาะคอลัมน์ที่ต้องการคงไว้ ข้อดีคือเป็น Dynamic ถ้ามีคอลัมน์ใหม่เพิ่มเข้ามาในอนาคตก็จะถูก Unpivot ให้อัตโนมัติ เหมาะสำหรับแปลงข้อมูลจาก Wide Format (หลายคอลัมน์) ให้เป็น Long Format (หลายแถว) สำหรับ PivotTable และ Database
สร้างหรือแก้ไขพฤติกรรมของตาราง สำหรับการพัฒนา Custom Connector และการจัดการ Query Folding
ประเภทการแจงนับ (Enumeration Type) สำหรับกำหนดประเภทการควบคุมการเข้าถึงข้อมูล ใช้ในการพัฒนาตัวเชื่อมต่อ Power Query แบบกำหนดเอง
DeltaLake.Table ใช้ดึงข้อมูลจากตาราง Delta Lake โดยระบุที่อยู่ไดเรกทอรี่ของตาราง เหมาะสำหรับเชื่อมต่อกับ Data Lake หรือ Microsoft Fabric
List.ConformToPageReader ใช้ภายในเพื่อแปลง List ของ Record เป็น Table ตาม Schema ที่กำหนด เหมาะสำหรับโครงสร้างข้อมูลที่ Page Reader ต้องการ
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่