Table.FillDown เติมเต็มค่า null ด้วยค่าจากแถวด้านบน (forward fill) เหมาะสำหรับข้อมูลที่มีการ merge cell หรือจัดกลุ่มข้อมูลแบบ hierarchical ทำให้ได้ตารางที่สมบูรณ์พร้อมใช้ต่อได้เลย
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| table | table | ตารางข้อมูลต้นฉบับที่มีค่า null ที่ต้องการเติมเต็ม |
| columns | list | List ของชื่อคอลัมน์ที่ต้องการ fill down (เช่น {“Department”, “Category”}) |
Table.FillDown(table, columns) ใช้เติมเต็มค่าว่าง (null) ในคอลัมน์ที่ระบุ ด้วยค่าจากแถวข้างบนสุด (forward fill)
ที่เจ๋งคือ ฟังก์ชันนี้ช่วยแก้ปัญหาข้อมูลที่มาจาก Excel ที่เคยมี merge cell – แค่ใส่ชื่อแผนก/หัวข้อไว้บรรทัดแรก แล้วทำให้ null ลงมา ปล่อยให้ FillDown ช่วยเติมให้ครับ ทำให้การ transform ข้อมูลเร็วขึ้นเยอะ 😎
ส่วนตัวผมใช้ Table.FillDown ก่อน Table.SelectRows เสมอ เพราะฉะนั้นข้อมูลจึงเสร็จสมบูรณ์แล้วจึงกรองข้อมูลต่อ
null ในคอลัมน์ Category จะเติมด้วยค่า "Fruit" จนกว่าจะเจอค่า "Veg" ที่ต่างกัน – ทำให้ข้อมูลสมบูรณ์แล้วสามารถ group หรือ analyze ได้
ระบุสองคอลัมน์ {"Company", "Department"} ทำให้ null ในทั้ง Company และ Department จะเติมด้วยค่าจากด้านบน – ข้อมูล hierarchical สมบูรณ์แล้ว สามารถ group by ได้เลย
Excel ที่มี merge cell มักจะ import มาด้วย null หลายตัว เมื่อใช้ FillDown ก็จะได้ข้อมูลที่สมบูรณ์ แล้วนำไป สร้าง pivot หรือ group ได้ตรงตัว
ข้อมูล sales ที่หลายแถวใช้ Date และ Region เดียวกัน จึงเก็บเป็น null เพื่อประหยัดพื้นที่ FillDown จะช่วยเติมให้สมบูรณ์ และสามารถ pivot หรือ group by date/region ได้
วิธีการใช้จริง: Import CSV → Promote Headers → FillDown เพื่อให้ข้อมูลสมบูรณ์ → SelectRows เพื่อกรอง – นี่คือ workflow ที่ผมใช้เกือบทุกวัน 😎
ค่า null ในแถวแรก (ที่ไม่มีค่าด้านบนให้ยืมมา) จะยังคงเป็น null นะครับ เพราะว่า FillDown จะดึงค่าจากแถวด้านบนเท่านั้น ถ้าแถวแรกมี null ไม่มีค่าด้านบนจึงไม่สามารถเติมได้ – ลองใช้ Table.ReplaceValue หรือ Table.FillUp สำหรับแถวแรก
เจอบ่อยครับ 😅 ส่วนมากเพราะว่าไม่มี null เลย ถ้าคอลัมน์ไม่มี null อยู่แล้ว FillDown ก็ไม่ต้องทำอะไร ลองเช็คด้วย View ที่ทำให้เห็น null หรือใช้ Table.Profile เพื่อดูจำนวน null ในแต่ละคอลัมน์
FillDown ดึงค่าจากแถวด้านบน (forward fill), FillUp ดึงค่าจากแถวด้านล่าง (backward fill) – เลือกให้เหมาะกับลักษณะข้อมูลของเราครับ
ชื่อคอลัมน์ในลิสต์ต้องตรงกับชื่อในตาราง (case-sensitive) – เช็คสะกดให้ถูกนะครับ ถ้าคอลัมน์ไม่มี FillDown จะ error ทันที
ได้ครับ เช่น เก็บชื่อคอลัมน์ในตัวแปรแล้วส่งเข้า FillDown ได้เลย – เรียก List.Select หรือ Table.ColumnNames เพื่อหาคอลัมน์ที่ต้องการเติม
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.FillDown จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Table.AddColumn เพิ่มคอลัมน์ใหม่ลงในตารางโดยคำนวณค่าจากฟังก์ชันที่กำหนด ใช้คำสั่ง each เพื่ออ้างอิงข้อมูลในแต่ละแถว เช่น each [Price] * [Quantity] สามารถระบุชนิดข้อมูลได้เพื่อเพิ่มประสิทธิภาพและป้องกันข้อผิดพลาดจากการคาดเดาชนิดข้อมูล ทำงานแบบทีละแถวและเหมาะสำหรับสร้างคอลัมน์คำนวณ รวมข้อมูล ใช้เงื่อนไข และการแปลงข้อมูลต่างๆ ใช้ร่วมกับฟังก์ชัน Table.TransformColumns สำหรับแก้ไขคอลัมน์เดิม Table.AddIndexColumn สำหรับเพิ่มหมายเลขลำดับ Table.SelectRows สำหรับกรองแถว Table.FromRecords สำหรับสร้างตารางจากข้อมูล Text.Combine สำหรับรวมข้อความ Number.Round สำหรับปัดเศษ Date.Year สำหรับดึงค่าปี และ Text.Upper สำหรับแปลงเป็นตัวพิมพ์ใหญ่ เพื่อสร้างกระบวนการแปลงข้อมูลที่สมบูรณ์
Table.FillUp เติมเต็มค่าว่าง (null) ด้วยค่าจากแถวด้านล่างขึ้นไป ทำงานตรงกันข้ามกับ FillDown ใช้สำหรับจัดการข้อมูลที่ค่าสรุปอยู่ล่างสุด
Table.RemoveColumns ใช้ลบคอลัมน์เดียวหรือหลายคอลัมน์จาก table ครั้งเดียว เป็นวิธีที่สะดวกเมื่อต้องการลบ column ที่ไม่ต้องการ เช่น unwanted columns จากการโหลด Excel หรือ column ชั่วคราวหลังใช้คำนวณเสร็จ
Table.ReplaceValue ใช้สำหรับค้นหาและแทนที่ค่าในตารางได้หลายวิธี ตั้งแต่แทนที่ค่าทั้งหมดไปจนถึงแทนที่แบบมีเงื่อนไข
เรียงลำดับข้อมูลในตารางตามคอลัมน์ที่ระบุ รองรับการเรียงหลายระดับและกำหนดทิศทางการเรียง
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่