Thep Excel

Table.RemoveColumnsลบคอลัมน์ที่ไม่ต้องการจาก table

Table.RemoveColumns ใช้ลบคอลัมน์เดียวหรือหลายคอลัมน์จาก table ครั้งเดียว เป็นวิธีที่สะดวกเมื่อต้องการลบ column ที่ไม่ต้องการ เช่น unwanted columns จากการโหลด Excel หรือ column ชั่วคราวหลังใช้คำนวณเสร็จ

fx
=Table.RemoveColumns(table, columns, [missingField]) as table

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

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
table table Table ที่ต้องการลบ column ออก
columns any ชื่อ column ที่ต้องลบ (ส่งเป็น text สำหรับ 1 column เช่น “Phone” หรือ list สำหรับหลาย column เช่น {“Phone”, “Email”, “Address”})
[missingField]ไม่บังคับ nullable number MissingField.Error พฤติกรรมเมื่อ column ไม่มีจริง ๆ มีตัวเลือก MissingField.Ignore (ข้ามไป ไม่ error) หรือ MissingField.Error (ค่าปกติ เกิด error)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

Table.RemoveColumns ทำหน้าที่ลบคอลัมน์ออกจากตารางได้ทีละตัวหรือหลายตัวพร้อมกัน

จริงๆ มันใช้บ่อยมากในงานจริง เพราะเวลาดึงข้อมูลมา (เช่น Excel, Database, API) มักมี column ที่ไม่ต้องการปะปนอยู่ เช่น Row Number, Column1, Column2, Internal ID หรือข้อมูล sensitive ที่ไม่ควรแชร์ Table.RemoveColumns ช่วยลบออกได้ในลูป

จุดสำคัญคือสามารถลบหลายคอลัมน์พร้อมกันได้ (ส่งเป็น List) ซึ่งดีกว่าการลบทีละตัวทีละ step ทั้งจากด้าน performance และความสะอาดของโค้ด และถ้า column ไม่มีจริง ๆ จะ error ตามค่าปกติ แต่สามารถใส่ MissingField.Ignore เพื่อให้ query ยังสำเร็จได้แม้ column ไม่มี (เป็นประโยชน์เวลาข้อมูล source เปลี่ยนโครงสร้าง)

How it works

ลบคอลัมน์ชั่วคราว

ลบคอลัมน์ที่ใช้คำนวณเสร็จแล้วและไม่ต้องการแสดงผลลัพธ์สุดท้าย

กำจัดข้อมูล Sensitive

ลบคอลัมน์ที่มีข้อมูลส่วนบุคคล (PII) ก่อนแชร์ข้อมูล

Examples

ลบ column เดียว – ลบ Phonelet Customers = Table.FromRecords({ [ID = 1, Name = "Bob", Phone = "123-4567", Email = "bob@email.com"], [ID = 2, Name = "Alice", Phone = "234-5678", Email = "a…

ส่ง column ชื่อ "Phone" เป็น text ลบออก ใช้ได้เลยเวลาลบแค่ column เดียว

fx
= let
Customers = Table.FromRecords({
[ID = 1, Name = "Bob", Phone = "123-4567", Email = "bob@email.com"],
[ID = 2, Name = "Alice", Phone = "234-5678", Email = "alice@email.com"]
}),
Removed = Table.RemoveColumns(Customers, "Phone")
in
Removed

ผลลัพธ์Table with 3 columns: ID, Name, Email (Phone ลบออก)
ลบหลาย columns พร้อมกันlet Sales = Table.FromRecords({ [OrderID = 1001, Product = "Laptop", Price = 50000, InternalID = "X123", TempCalc = 100, Status = "Shipped"] }), Clean = Table.R…

ส่ง list {} ของชื่อ columns ที่จะลบ ดีกว่าการลบทีละตัวหลายๆ step เพราะเร็วกว่าและโค้ดสะอาดกว่า

fx
= let
Sales = Table.FromRecords({
[OrderID = 1001, Product = "Laptop", Price = 50000, InternalID = "X123", TempCalc = 100, Status = "Shipped"]
}),
Clean = Table.RemoveColumns(Sales, {"InternalID", "TempCalc"})
in
Clean

ผลลัพธ์Table with 4 columns: OrderID, Product, Price, Status
ลบ columns ที่อาจไม่มีจริง (ไม่ error)let Data = Table.FromRecords({ [ID = 1, Name = "Product A", Price = 100] }), SafeRemove = Table.RemoveColumns( Data, {"Phone", "Email", "Address"}, MissingField…

MissingField.Ignore บอก Power Query ให้ข้ามไปถ้า column ไม่มี ไม่เกิด error จะดีมากตอนข้อมูล source เปลี่ยนโครงสร้าง

fx
= let
Data = Table.FromRecords({
[ID = 1, Name = "Product A", Price = 100]
}),
SafeRemove = Table.RemoveColumns(
Data,
{"Phone", "Email", "Address"},
MissingField.Ignore
)
in
SafeRemove

ผลลัพธ์Table unchanged with ID, Name, Price columns (Phone/Email/Address ไม่มี แต่ไม่ error)
ลบ unwanted columns จากการโหลด Excellet Excel = Table.FromRecords({ [ID = 1, Name = "Item", Column1 = "", Column2 = "", Column3 = ""] }), Clean = Table.RemoveColumns(Excel, {"Column1", "Column2",…

Excel มักขยับ empty columns มากับไฟล์ Table.RemoveColumns ช่วยลบออกได้ในครั้งเดียว

fx
= let
Excel = Table.FromRecords({
[ID = 1, Name = "Item", Column1 = "", Column2 = "", Column3 = ""]
}),
Clean = Table.RemoveColumns(Excel, {"Column1", "Column2", "Column3"})
in
Clean

ผลลัพธ์Table with 2 columns: ID, Name

FAQs

ถ้าลบ column ที่ไม่มีจริง ๆ จะเกิดอะไร?+

จะเกิด Error: 'The column… of the table wasn't found' ซึ่งถ้าไม่แก้จะทำให้ query ล่มทั้งตัว การแก้คือใส่ MissingField.Ignore: Table.RemoveColumns(Source, "Phone", MissingField.Ignore) แล้วมันจะข้ามไปถ้า column ไม่มี

ผมต้องการลบ columns ทั้งหมด ยกเว้นบางตัว ทำไง?+

ใช้ Table.SelectColumns แทน มันทำงานตรงข้าม คุณชี้เลยว่า column ไหนที่ต้องเก็บ ไม่ใช่ลบออก เช่น Table.SelectColumns(Source, {"ID", "Name", "Email"})

ลบ 1 column ส่ง text, ลบหลาย columns ส่ง list ใช่ไหม?+

ใช่ ถ้าลบ 1 column ส่ง text: "Phone" หรือส่ง list เดียวตัวก็ได้ {"Phone"} แต่ลบหลายตัว ต้องส่ง list {"Phone", "Email", "Address"}

ผมลบ columns หลายทีซ้ำๆ ต้องเขียน Table.RemoveColumns หลายครั้ง?+

ไม่ต้อง ส่ง list ของ columns ทั้งหมดที่ต้องลบในครั้งเดียว ดีกว่าแนวดี: Table.RemoveColumns(Source, {"Col1", "Col2", "Col3"}) แทนการลบทีละตัว 3 step

Resources & Related

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

ฟังก์ชันนี้Table.RemoveColumnsTable functions
Table functions (7)
Table.AddColumn

Table.AddColumn เพิ่มคอลัมน์ใหม่ลงในตารางโดยคำนวณค่าจากฟังก์ชันที่กำหนด ใช้คำสั่ง each เพื่ออ้างอิงข้อมูลในแต่ละแถว เช่น each [Price] * [Quantity] สามารถระบุชนิดข้อมูลได้เพื่อเพิ่มประสิทธิภาพและป้องกันข้อผิดพลาดจากการคาดเดาชนิดข้อมูล ทำงานแบบทีละแถวและเหมาะสำหรับสร้างคอลัมน์คำนวณ รวมข้อมูล ใช้เงื่อนไข และการแปลงข้อมูลต่างๆ ใช้ร่วมกับฟังก์ชัน Table.TransformColumns สำหรับแก้ไขคอลัมน์เดิม Table.AddIndexColumn สำหรับเพิ่มหมายเลขลำดับ Table.SelectRows สำหรับกรองแถว Table.FromRecords สำหรับสร้างตารางจากข้อมูล Text.Combine สำหรับรวมข้อความ Number.Round สำหรับปัดเศษ Date.Year สำหรับดึงค่าปี และ Text.Upper สำหรับแปลงเป็นตัวพิมพ์ใหญ่ เพื่อสร้างกระบวนการแปลงข้อมูลที่สมบูรณ์

Table.ColumnNames

Table.ColumnNames ดึงชื่อคอลัมน์ทั้งหมดจากตารางและคืนค่าเป็นลิสต์ของข้อความ เหมาะสำหรับการทำงานแบบไดนามิกกับโครงสร้างตารางที่ไม่แน่นอน

Table.DuplicateColumn

สร้างคอลัมน์ใหม่โดยคัดลอกค่ามาจากคอลัมน์ที่มีอยู่เดิม (Duplicate)

Table.FillDown

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

Table.RenameColumns

Table.RenameColumns ใช้สำหรับเปลี่ยนชื่อคอลัมน์หนึ่งหรือหลายคอลัมน์ในตารางพร้อมกัน โดยส่งผ่าน list ของ rename pairs {ชื่อเก่า, ชื่อใหม่}

Table.ReorderColumns

จัดเรียงลำดับคอลัมน์ในตารางใหม่ตามลำดับที่ต้องการ พร้อมจัดการกรณีคอลัมน์หายไป

Table.SelectColumns

Table.SelectColumns ใช้สำหรับเลือกคอลัมน์เฉพาะจากตารางและสร้างตารางใหม่ที่มีเฉพาะคอลัมน์เหล่านั้น

Comments

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