Table.FillUp เติมเต็มค่าว่าง (null) ด้วยค่าจากแถวด้านล่างขึ้นไป ทำงานตรงกันข้ามกับ FillDown ใช้สำหรับจัดการข้อมูลที่ค่าสรุปอยู่ล่างสุด
=Table.FillUp(table as table, columns as list) as table
=Table.FillUp(table as table, columns as list) as table
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| table | table | Yes | ตารางข้อมูลต้นทางที่ต้องการเติมค่าว่าง | |
| columns | list | Yes | List ของชื่อคอลัมน์ที่ต้องการเติมค่า null (เขียนเป็น {“ColumnName1”, “ColumnName2”}) |
let Source = #table( {"Item", "Amount"}, {{"Product A", null}, {"Product B", null}, {"Total", 1500}} ), Filled = Table.FillUp(Source, {"Amount"}) in Filledlet
Source = #table(
{"Item", "Amount"},
{{"Product A", null}, {"Product B", null}, {"Total", 1500}}
),
Filled = Table.FillUp(Source, {"Amount"})
in
Filled
Table แสดง: Product A 1500, Product B 1500, Total 1500
let Source = #table( {"Date", "Category", "Status"}, {{null, null, "Pending"}, {null, null, "Pending"}, {"2025-12-25", "Sales", "Pending"}} ), Filled = Table.Fi…let
Source = #table(
{"Date", "Category", "Status"},
{{null, null, "Pending"}, {null, null, "Pending"}, {"2025-12-25", "Sales", "Pending"}}
),
Filled = Table.FillUp(Source, {"Date", "Category"})
in
Filled
Table แสดง: Date 2025-12-25, Category Sales ในทุกแถว
let Source = #table( {"Division", "Revenue", "Expense"}, {{"North", 50000, null}, {"Central", 75000, null}, {"South", 60000, null}, {"", "", 30000}} ), Filled =…let
Source = #table(
{"Division", "Revenue", "Expense"},
{{"North", 50000, null}, {"Central", 75000, null}, {"South", 60000, null}, {"", "", 30000}}
),
Filled = Table.FillUp(Source, {"Expense"})
in
Filled
Table แสดง Expense 30000 ในแถว North, Central, South
let Source = #table( {"ID", "Value"}, {{"A", 100}, {"B", null}, {"C", null}} ), FillUpResult = Table.FillUp(Source, {"Value"}), FillDownResult = Table.FillDown(…let
Source = #table(
{"ID", "Value"},
{{"A", 100}, {"B", null}, {"C", null}}
),
FillUpResult = Table.FillUp(Source, {"Value"}),
FillDownResult = Table.FillDown(Source, {"Value"})
in
FillUpResult
// FillDown จะคืนค่า 100, 100, 100
// FillUp จะคืนค่า 100, null, null (ไม่มีค่าด้านล่าง)
ขึ้นอยู่กับทิศทาง: FillUp ดึงจากด้านล่าง vs FillDown ดึงจากด้านบน
Table.FillDown ดึงค่าจากด้านบนลงมา ส่วน Table.FillUp ดึงค่าจากด้านล่างขึ้นไป ผมแนะนำใช้ FillUp เมื่อข้อมูลสรุป (Subtotal, Total) อยู่บรรทัดล่างสุดและต้องการให้ค่านั้นบังคับแถวด้านบน
FillUp จะหาต่อเนื่องไปยังแถวล่างไปเรื่อยๆ จนกว่าจะหาค่า non-null ถ้าหาไม่เจอเลยก็ค่า null นั้นจะเหลือเป็น null แบบเดิม ผมแนะนำให้เช็กข้อมูลต้นทางก่อนใช้ FillUp
ได้ครับ! ใส่ชื่อคอลัมน์หลายตัวใน list เช่น Table.FillUp(Source, {“Column1”, “Column2”, “Column3”}) ส่วนตัวผมชอบใช้วิธีนี้เพราะสะดวกมากกว่าทำทีละคอลัมน์
Table.FillUp เป็นฟังก์ชันที่ใช้เติมเต็มค่า null ในคอลัมน์ที่กำหนด โดยดึงค่าจากแถวด้านล่างขึ้นไปแทนที่ช่องว่าง ต่างจาก Table.FillDown ที่ดึงค่าจากด้านบนลงมา
ที่เจ๋งคือมันเหมาะมากเวลาข้อมูลของคุณมีค่าสรุป (Subtotal, Total, Status) อยู่บรรทัดล่างสุด แล้วต้องการให้ค่านั้นบังคับกำกับแถวข้างบน เช่นข้อมูลประเภทที่มีบันทึกรายการอยู่ด้านบนและจำนวนเงินทั้งหมดอยู่ล่างสุด
ส่วนตัวผมเจอสถานการณ์นี้ค่อนข้างมากเมื่อได้รับ Excel exports จากระบบเก่าๆ ที่มีลักษณะ sub-section summary อยู่ล่างสุด พอใช้ FillUp ข้อมูลเลย clean ขึ้นมาเยอะเลย 😎