Table.FromColumns สร้างตารางจากลิสต์ของลิสต์ โดยแต่ละลิสต์จะเป็นคอลัมน์หนึ่ง เหมาะกับข้อมูล column-oriented จาก API หรือ JSON
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| lists | list | ลิสต์ที่บรรจุลิสต์ของค่าแต่ละคอลัมน์ เช่น {{1, 2, 3}, {“A”, “B”, “C”}} | |
| [columns]ไม่บังคับ | any | null | ชื่อคอลัมน์ (ลิสต์ของ Text) หรือ Table Type – ถ้าไม่ระบุจะเป็น Column1, Column2, … เป็นต้น |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Table.FromColumns ใช้สร้างตารางจากข้อมูลที่จัดเก็บเป็นคอลัมน์แยกกัน แทนแถว ฟังก์ชันนี้คาดหวัง {{Col1}, {Col2}, {Col3}} ก็จะสร้างตารางแนวนอนให้เองครับ
ที่เจ๋งคือถ้า List แต่ละอันมีจำนวนข้อมูลไม่เท่ากัน Power Query จะเติม null ให้อัตโนมัติแทนที่จะพังเลย ก็ไม่ต้องกังวลเรื่องข้อมูลที่ไม่เรียบร้อย
ส่วนตัวผมใช้ฟังก์ชันนี้บ่อยครั้งตอนดึงข้อมูลจาก API ที่ return เป็น {“ids”: [1,2,3], “names”: [“Bob”, “Jim”]} อย่างนี้ ก็นำ List ทั้งสองมา feed ให้ Table.FromColumns เสร็จสรรค์ใจแล้ว 😎
นำลิสต์ ID และ Name มาสร้างเป็นตาราง โดยระบุชื่อคอลัมน์เป็น ID และ Name
Col1 มี 2 ค่า Col2 มี 3 ค่า – Power Query จะเติม null ให้ในแถวที่ 3 ของ Numbers โดยอัตโนมัติ
ไม่ระบุ parameter ที่ 2 ก็ Power Query จะตั้งชื่อคอลัมน์เองตามลำดับ
ถ้าลิสต์ว่างหมด ก็จะได้ตารางว่าง (0 แถว) แต่ยังคงมีชื่อคอลัมน์ 2 คอลัมน์
Table.FromRows คาดหวัง {{Row1}, {Row2}, …} ข้อมูลเป็นแถวๆ ส่วน Table.FromColumns คาดหวัง {{Col1}, {Col2}, …} ข้อมูลเป็นคอลัมน์ๆ – ตรงข้ามกันเลยครับ
ไม่บอก Power Query ก็เติม null ให้เอง ใช้ List.Max(List.Transform({Col1, Col2, Col3}, List.Count)) ถ้าอยากรู้ว่าจะมีกี่แถว
ก็จะได้ตารางว่าง (0 แถว) แต่คอลัมน์จะยังอยู่ถ้าระบุชื่อคอลัมน์ไว้
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.FromColumns จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
แปลง List ของ Record เป็นตาราง โดยแต่ละ Record กลายเป็นหนึ่งแถว เหมาะสำหรับข้อมูลจาก API หรือ JSON
Table.FromRows สร้างตารางจาก List ของ List โดยแต่ละ List ย่อยแทนข้อมูลในแถวหนึ่ง คล้ายกับการ transpose ข้อมูลแบบแถว-คอลัมน์ แต่ทำให้เป็นตารางจริงในทันที
Table.ToColumns แปลงตาราง (Table) ให้เป็น List ของ List โดยแต่ละ List ย่อยแทนข้อมูลจากคอลัมน์เดียว เรียงตามลำดับคอลัมน์จากซ้ายไปขวา ส่วนกลับกันของ Table.FromColumns
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่