แปลง List เป็น Table โดยใช้ฟังก์ชัน Splitter เพื่อแยกข้อมูลเป็นคอลัมน์
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| list | list | List ที่ต้องการแปลงเป็น Table | |
| [splitter]ไม่บังคับ | function | null | ฟังก์ชัน Splitter ที่ใช้แยกแต่ละ item ของ List (เช่น Splitter.SplitByComma(), Splitter.SplitByDelimiter(“,”), Record.FieldValues) ถ้าเป็น null จะใช้ Splitter.SplitByComma() เป็นค่าเริ่มต้น |
| [columns]ไม่บังคับ | any | 1 | ชื่อคอลัมน์ของ Table สามารถเป็น number (จำนวนคอลัมน์), text (ชื่อคอลัมน์เดียว), list (รายชื่อคอลัมน์), หรือ TableType |
| [default]ไม่บังคับ | any | ค่าเริ่มต้นสำหรับ cell ที่ว่างหรือไม่มีค่า | |
| [extraValues]ไม่บังคับ | number | 0 | วิธีจัดการค่าพิเศษ (0 = Ignore, 1 = Error, 2 = UseAsIs) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Table.FromList() ใช้สำหรับแปลง List ให้เป็น Table โดยแยกแต่ละ item ใน List เป็นแถวและสามารถระบุวิธีการแยกข้อมูลเป็นคอลัมน์ได้
ที่เจ๋งของ Table.FromList คือมันเอาท์พุทเป็น Table แล้ว สามารถใช้ function อื่นต่อทันทีได้เลย ไม่ต้องแปลง format ใหม่ครับ เหมาะมากสำหรับการแปลงข้อมูลแบบ raw list ให้อยู่ในโครงสร้างตารางที่จัดการง่าย
ส่วนตัวผม ใช้ Table.FromList บ่อยตอนทำ web scraping หรือเวลาดึงข้อมูลจาก API ที่มาเป็น JSON list ยกตัวอย่างเช่น ถ้าได้ list มาแบบ {“a,apple”, “b,ball”, “c,cat”} ผมก็ใช้ Table.FromList ร่วมกับ Splitter function แล้วตั้งชื่อคอลัมน์เรียบร้อย ข้อมูลก็ clean และพร้อม filter/sort ได้เลย นอกจากนี้ยังใช้ได้ดีกับการแปลง text data ที่มี delimiter หรือแม้แต่ record list ที่ต้องการแยก field ออกมาเป็นคอลัมน์ 😎
ใช้ Table.FromList แปลง List ตัวเลขเป็น Table โดยตั้งชื่อคอลัมน์เป็น "Number" ส่วน splitter ใช้ null (ค่าเริ่มต้น)
Splitter.SplitByComma() แยกข้อมูลในแต่ละ item ของ List จากนั้นแทนที่ลงในคอลัมน์ "Letter" และ "Example"
Splitter.SplitByNothing() ไม่แยกข้อมูล เหมาะใช้เวลาอยากเก็บค่าเดิมเป็น single column
Record.FieldValues แยกค่าจาก fields ของแต่ละ record แล้วแทนที่ลงในคอลัมน์ที่ระบุ
เมื่อใช้ number แทนที่ list ของชื่อคอลัมน์ Power Query จะตั้งชื่อเป็น "Column1", "Column2" เป็นต้น
Splitter.SplitByDelimiter() ยืดหยุ่นกว่า SplitByComma เพราะสามารถระบุ delimiter ที่ต้องการได้
Table.FromList() สร้าง Table จาก List (อาจต้องแยกข้อมูล) ส่วน Table.FromRecords() สร้าง Table จาก List of Records โดยตรง ถ้าข้อมูลมาเป็น Record List อยู่แล้ว ให้ใช้ Table.FromRecords() จะง่ายกว่า
ใช้ parameter "default" เพื่อตั้งค่าเริ่มต้นสำหรับ cell ที่ว่าง เช่น Table.FromList(list, Splitter.SplitByComma(), {"A", "B", "C"}, "")
extraValues ควบคุมการจัดการเวลา item มี field มากกว่าจำนวนคอลัมน์ที่กำหนด: 0 = Ignore (ทำให้เป็นค่าเริ่มต้าน), 1 = Error (ขึ้น error), 2 = UseAsIs (เก็บค่าเดิม)
ได้ ใช้ Splitter.SplitByDelimiter(), Splitter.SplitByAnyDelimiter(), หรือ custom function ที่คืนค่า list ได้
ไม่จำเป็น ถ้าไม่ระบุ Power Query จะตั้งชื่อเป็น "Column1", "Column2" เป็นต้น แต่แนะนำให้ระบุไว้เพื่อความชัดเจน
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.FromList จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
แปลง List ของ Record เป็นตาราง โดยแต่ละ Record กลายเป็นหนึ่งแถว เหมาะสำหรับข้อมูลจาก API หรือ JSON
Table.FromRows สร้างตารางจาก List ของ List โดยแต่ละ List ย่อยแทนข้อมูลในแถวหนึ่ง คล้ายกับการ transpose ข้อมูลแบบแถว-คอลัมน์ แต่ทำให้เป็นตารางจริงในทันที
Html.Table ใช้สำหรับแยกข้อมูลจากตารางหรือรายการในเอกสาร HTML โดยใช้ CSS selectors เพื่อกำหนดตำแหน่งและคอลัมน์
List.ConformToPageReader ใช้ภายในเพื่อแปลง List ของ Record เป็น Table ตาม Schema ที่กำหนด เหมาะสำหรับโครงสร้างข้อมูลที่ Page Reader ต้องการ
คืนค่าข้อมูล (Values) ทั้งหมดจาก Record เป็น List
Splitter.SplitByNothing ใช้สำหรับการประมวลผล
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่