Table.RemoveColumns ใช้ลบคอลัมน์เดียวหรือหลายคอลัมน์จาก table ครั้งเดียว เป็นวิธีที่สะดวกเมื่อต้องการลบ column ที่ไม่ต้องการ เช่น unwanted columns จากการโหลด Excel หรือ column ชั่วคราวหลังใช้คำนวณเสร็จ
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| 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) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
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 เปลี่ยนโครงสร้าง)
ลบคอลัมน์ที่ใช้คำนวณเสร็จแล้วและไม่ต้องการแสดงผลลัพธ์สุดท้าย
ลบคอลัมน์ที่มีข้อมูลส่วนบุคคล (PII) ก่อนแชร์ข้อมูล
ส่ง column ชื่อ "Phone" เป็น text ลบออก ใช้ได้เลยเวลาลบแค่ column เดียว
ส่ง list {} ของชื่อ columns ที่จะลบ ดีกว่าการลบทีละตัวหลายๆ step เพราะเร็วกว่าและโค้ดสะอาดกว่า
MissingField.Ignore บอก Power Query ให้ข้ามไปถ้า column ไม่มี ไม่เกิด error จะดีมากตอนข้อมูล source เปลี่ยนโครงสร้าง
Excel มักขยับ empty columns มากับไฟล์ Table.RemoveColumns ช่วยลบออกได้ในครั้งเดียว
จะเกิด Error: 'The column… of the table wasn't found' ซึ่งถ้าไม่แก้จะทำให้ query ล่มทั้งตัว การแก้คือใส่ MissingField.Ignore: Table.RemoveColumns(Source, "Phone", MissingField.Ignore) แล้วมันจะข้ามไปถ้า column ไม่มี
ใช้ Table.SelectColumns แทน มันทำงานตรงข้าม คุณชี้เลยว่า column ไหนที่ต้องเก็บ ไม่ใช่ลบออก เช่น Table.SelectColumns(Source, {"ID", "Name", "Email"})
ใช่ ถ้าลบ 1 column ส่ง text: "Phone" หรือส่ง list เดียวตัวก็ได้ {"Phone"} แต่ลบหลายตัว ต้องส่ง list {"Phone", "Email", "Address"}
ไม่ต้อง ส่ง list ของ columns ทั้งหมดที่ต้องลบในครั้งเดียว ดีกว่าแนวดี: Table.RemoveColumns(Source, {"Col1", "Col2", "Col3"}) แทนการลบทีละตัว 3 step
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.RemoveColumns จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Table.AddColumn เพิ่มคอลัมน์ใหม่ลงในตารางโดยคำนวณค่าจากฟังก์ชันที่กำหนด ใช้คำสั่ง each เพื่ออ้างอิงข้อมูลในแต่ละแถว เช่น each [Price] * [Quantity] สามารถระบุชนิดข้อมูลได้เพื่อเพิ่มประสิทธิภาพและป้องกันข้อผิดพลาดจากการคาดเดาชนิดข้อมูล ทำงานแบบทีละแถวและเหมาะสำหรับสร้างคอลัมน์คำนวณ รวมข้อมูล ใช้เงื่อนไข และการแปลงข้อมูลต่างๆ ใช้ร่วมกับฟังก์ชัน Table.TransformColumns สำหรับแก้ไขคอลัมน์เดิม Table.AddIndexColumn สำหรับเพิ่มหมายเลขลำดับ Table.SelectRows สำหรับกรองแถว Table.FromRecords สำหรับสร้างตารางจากข้อมูล Text.Combine สำหรับรวมข้อความ Number.Round สำหรับปัดเศษ Date.Year สำหรับดึงค่าปี และ Text.Upper สำหรับแปลงเป็นตัวพิมพ์ใหญ่ เพื่อสร้างกระบวนการแปลงข้อมูลที่สมบูรณ์
Table.ColumnNames ดึงชื่อคอลัมน์ทั้งหมดจากตารางและคืนค่าเป็นลิสต์ของข้อความ เหมาะสำหรับการทำงานแบบไดนามิกกับโครงสร้างตารางที่ไม่แน่นอน
สร้างคอลัมน์ใหม่โดยคัดลอกค่ามาจากคอลัมน์ที่มีอยู่เดิม (Duplicate)
Table.FillDown เติมเต็มค่า null ด้วยค่าจากแถวด้านบน (forward fill) เหมาะสำหรับข้อมูลที่มีการ merge cell หรือจัดกลุ่มข้อมูลแบบ hierarchical ทำให้ได้ตารางที่สมบูรณ์พร้อมใช้ต่อได้เลย
Table.RenameColumns ใช้สำหรับเปลี่ยนชื่อคอลัมน์หนึ่งหรือหลายคอลัมน์ในตารางพร้อมกัน โดยส่งผ่าน list ของ rename pairs {ชื่อเก่า, ชื่อใหม่}
จัดเรียงลำดับคอลัมน์ในตารางใหม่ตามลำดับที่ต้องการ พร้อมจัดการกรณีคอลัมน์หายไป
Table.SelectColumns ใช้สำหรับเลือกคอลัมน์เฉพาะจากตารางและสร้างตารางใหม่ที่มีเฉพาะคอลัมน์เหล่านั้น
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่