Thep Excel

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

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

=Table.RemoveColumns(table as table, columns as any, optional missingField as nullable number) as table

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
10/10

Difficulty
2/10

Usefulness
9/10

Syntax & Arguments

=Table.RemoveColumns(table as table, columns as any, optional missingField as nullable number) as table

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

How it works

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

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

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

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

Examples

ลบ column เดียว – ลบ Phone
let 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 เดียว
Power Query Formula:

= 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

Result:

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 เพราะเร็วกว่าและโค้ดสะอาดกว่า
Power Query Formula:

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

Result:

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 เปลี่ยนโครงสร้าง
Power Query Formula:

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

Result:

Table unchanged with ID, Name, Price columns (Phone/Email/Address ไม่มี แต่ไม่ error)

ลบ unwanted columns จากการโหลด Excel
let Excel = Table.FromRecords({ [ID = 1, Name = "Item", Column1 = "", Column2 = "", Column3 = ""] }), Clean = Table.RemoveColumns(Excel, {"Column1", "Column2",…
Excel มักขยับ empty columns มากับไฟล์ Table.RemoveColumns ช่วยลบออกได้ในครั้งเดียว
Power Query Formula:

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

Result:

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

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 เปลี่ยนโครงสร้าง)

Leave a Reply

Your email address will not be published. Required fields are marked *