Thep Excel

Table.FillUpเติมค่าว่างด้วยค่าจากแถวด้านล่าง

Table.FillUp เติมเต็มค่าว่าง (null) ด้วยค่าจากแถวด้านล่างขึ้นไป ทำงานตรงกันข้ามกับ FillDown ใช้สำหรับจัดการข้อมูลที่ค่าสรุปอยู่ล่างสุด

fx
=Table.FillUp(table, columns) as table

ความนิยม6/10
ความยาก3/10
ประโยชน์6/10

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
table table ตารางข้อมูลต้นทางที่ต้องการเติมค่าว่าง
columns list List ของชื่อคอลัมน์ที่ต้องการเติมค่า null (เขียนเป็น {“ColumnName1”, “ColumnName2”})

Additional Notes

Table.FillUp เป็นฟังก์ชันที่ใช้เติมเต็มค่า null ในคอลัมน์ที่กำหนด โดยดึงค่าจากแถวด้านล่างขึ้นไปแทนที่ช่องว่าง ต่างจาก Table.FillDown ที่ดึงค่าจากด้านบนลงมา

ที่เจ๋งคือมันเหมาะมากเวลาข้อมูลของคุณมีค่าสรุป (Subtotal, Total, Status) อยู่บรรทัดล่างสุด แล้วต้องการให้ค่านั้นบังคับกำกับแถวข้างบน เช่นข้อมูลประเภทที่มีบันทึกรายการอยู่ด้านบนและจำนวนเงินทั้งหมดอยู่ล่างสุด

ส่วนตัวผมเจอสถานการณ์นี้ค่อนข้างมากเมื่อได้รับ Excel exports จากระบบเก่าๆ ที่มีลักษณะ sub-section summary อยู่ล่างสุด พอใช้ FillUp ข้อมูลเลย clean ขึ้นมาเยอะเลย 😎

Examples

เติมค่าหนึ่งคอลัมน์ (พื้นฐาน)let Source = #table( {"Item", "Amount"}, {{"Product A", null}, {"Product B", null}, {"Total", 1500}} ), Filled = Table.FillUp(Source, {"Amount"}) in Filled

ค่า null ใน Amount row แรกและแถว 2 จะถูกแทนที่ด้วยค่า 1500 จากแถวล่างสุด (Total row)

fx
let
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…

เติมค่า Date และ Category จากแถวล่างสุดขึ้นไปเพื่อให้ข้อมูล complete

fx
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 ในทุกแถว
ข้อมูลจริง: Report Summarylet Source = #table( {"Division", "Revenue", "Expense"}, {{"North", 50000, null}, {"Central", 75000, null}, {"South", 60000, null}, {"", "", 30000}} ), Filled =…

สถานการณ์จริงที่ Expense แสดงเพียงครั้งเดียวที่บรรทัดล่างสุด (ค่าใช้ร่วม) ใช้ FillUp เพื่อเติมค่านี้ให้กับทุกแถว

fx
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
ต่างจาก FillDownlet Source = #table( {"ID", "Value"}, {{"A", 100}, {"B", null}, {"C", null}} ), FillUpResult = Table.FillUp(Source, {"Value"}), FillDownResult = Table.FillDown(…

FillUp ค้นหาค่า non-null ด้านล่างและดึงขึ้นไป ส่วน FillDown ค้นหาค่า non-null ด้านบนและดึงลงมา สองฟังก์ชันนี้ตรงกันข้าม

fx
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 ดึงจากด้านบน

FAQs

ต่างจาก Table.FillDown อย่างไร?+

Table.FillDown ดึงค่าจากด้านบนลงมา ส่วน Table.FillUp ดึงค่าจากด้านล่างขึ้นไป ผมแนะนำใช้ FillUp เมื่อข้อมูลสรุป (Subtotal, Total) อยู่บรรทัดล่างสุดและต้องการให้ค่านั้นบังคับแถวด้านบน

แล้วถ้าค่าด้านล่างก็ null ด้วยละ?+

FillUp จะหาต่อเนื่องไปยังแถวล่างไปเรื่อยๆ จนกว่าจะหาค่า non-null ถ้าหาไม่เจอเลยก็ค่า null นั้นจะเหลือเป็น null แบบเดิม ผมแนะนำให้เช็กข้อมูลต้นทางก่อนใช้ FillUp

เติมได้หลายคอลัมน์พร้อมกันมั้ย?+

ได้ครับ! ใส่ชื่อคอลัมน์หลายตัวใน list เช่น Table.FillUp(Source, {"Column1", "Column2", "Column3"}) ส่วนตัวผมชอบใช้วิธีนี้เพราะสะดวกมากกว่าทำทีละคอลัมน์

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.FillUp จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Table.FillUpTable functions
Table functions (4)
Table.Combine

Table.Combine ใช้สำหรับรวม list ของ table เข้าเป็น table เดียว ยับยั้ง append ตัว 1 แถวหลาย ๆ ตารางพร้อมกัน

Table.FillDown

Table.FillDown เติมเต็มค่า null ด้วยค่าจากแถวด้านบน (forward fill) เหมาะสำหรับข้อมูลที่มีการ merge cell หรือจัดกลุ่มข้อมูลแบบ hierarchical ทำให้ได้ตารางที่สมบูรณ์พร้อมใช้ต่อได้เลย

Table.ReplaceValue

Table.ReplaceValue ใช้สำหรับค้นหาและแทนที่ค่าในตารางได้หลายวิธี ตั้งแต่แทนที่ค่าทั้งหมดไปจนถึงแทนที่แบบมีเงื่อนไข

Table.TransformColumns

Table.TransformColumns ใช้สำหรับแปลงข้อมูลในคอลัมน์โดยใช้ฟังก์ชันที่กำหนดไว้ แต่ละคอลัมน์สามารถมีการแปลงแตกต่างกันได้ รองรับการเปลี่ยนแปลงประเภทข้อมูลในเวลาเดียวกัน

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่