---
title: Table.RenameColumns – เปลี่ยนชื่อคอลัมน์ในตาราง
url: https://www.thepexcel.com/functions/power-query/table-functions/table-renamecolumns/
type: function-explainer
program: Power Query
syntax: "Table.RenameColumns(table as table, renames as list, optional missingField as nullable number) as table"
date: 2025-12-03
updated: 2025-12-20
scores:
  popularity: 9
  difficulty: 2
  usefulness: 9
---

# Table.RenameColumns – เปลี่ยนชื่อคอลัมน์ในตาราง

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

## คำอธิบาย

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

## Syntax

```excel
Table.RenameColumns(table as table, renames as list, optional missingField as nullable number) as table
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| table | Yes | table |  | ตารางที่ต้องการเปลี่ยนชื่อคอลัมน์ |
| renames | Yes | list |  | List ของ Rename Pairs โดยแต่ละ Pair คือ {ชื่อเก่า, ชื่อใหม่} เช่น {{"OldName", "NewName"}} สำหรับเปลี่ยนชื่อเดียว หรือ {{"Old1", "New1"}, {"Old2", "New2"}} สำหรับหลายชื่อ |
| missingField | No | number |  | กำหนดพฤติกรรมเมื่อไม่พบคอลัมน์ที่ต้องการเปลี่ยนชื่อ สามารถใช้ MissingField.Ignore (ข้ามผ่าน) หรือ MissingField.UseNull (ใช้ Null) ถ้าไม่ระบุจะ throw Error |

## เคสการใช้งาน

### จัดระเบียบ Header

เปลี่ยนชื่อคอลัมน์ที่ได้มาจาก Source ให้เป็นชื่อที่เข้าใจง่ายและสอดคล้องกัน

### แก้ไขชื่อคอลัมน์ผิดพลาด

เมื่อชื่อคอลัมน์ถูกโหลดมาผิดพลาด สามารถแก้ไขได้ทันทีใน Power Query

## ตัวอย่าง

### 1. เปลี่ยนชื่อคอลัมน์เดียว

```excel
let
    Sales = Table.FromRecords(
        {{[ProductID = 1, Name = "Laptop", Amount = 15000]},
         {[ProductID = 2, Name = "Mouse", Amount = 500]}}
    ),
    Renamed = Table.RenameColumns(Sales, {{"ProductID", "รหัสสินค้า"}})
in
    Renamed
```

**ผลลัพธ์:** `Table with columns: รหัสสินค้า, Name, Amount`

เปลี่ยนชื่อคอลัมน์ ProductID เป็น รหัสสินค้า ส่วนคอลัมน์อื่นๆ ยังคงเป็นชื่อเดิม

### 2. เปลี่ยนชื่อหลายคอลัมน์พร้อมกัน

```excel
let
    CustomerData = Table.FromRecords(
        {{[CustID = 1, FullName = "Alice", PhoneNum = "081-xxx"]},
         {[CustID = 2, FullName = "Bob", PhoneNum = "082-yyy"]}}
    ),
    Renamed = Table.RenameColumns(CustomerData, 
        {{"CustID", "Customer ID"}, 
         {"FullName", "Full Name"}, 
         {"PhoneNum", "Phone Number"}})
in
    Renamed
```

**ผลลัพธ์:** `Table with columns: Customer ID, Full Name, Phone Number`

เปลี่ยนชื่อ 3 คอลัมน์พร้อมกัน ใช้ double curly braces {{}} สำหรับแต่ละ pair ส่วนตัวผมชอบการใช้งานแบบนี้มาก เพราะดูอ่านง่ายและเป็นระเบียบ 😎

### 3. จัดการคอลัมน์ที่หาไม่เจอ

```excel
let
    Data = Table.FromRecords(
        {{[OrderID = 1, OrderDate = "2025-01-01"]},
         {[OrderID = 2, OrderDate = "2025-01-02"]}}
    ),
    Renamed = Table.RenameColumns(Data,
        {{"OrderID", "Order ID"}, 
         {"NonExistentColumn", "New Name"}},
        MissingField.Ignore)
in
    Renamed
```

**ผลลัพธ์:** `Table with columns: Order ID, OrderDate (ชื่อ NonExistentColumn ถูกข้ามผ่านโดยไม่เกิด Error)`

ถ้าไม่ใส่ MissingField.Ignore จะเกิด Error ทันที แต่เวลาใส่มันจะข้ามคอลัมน์ที่หาไม่เจอไปโดยไม่มีการบ่น ที่ต้องระวังคือมันจะข้ามผ่านเฉยๆ ไม่ได้เพิ่มคอลัมน์ใหม่นะครับ

### 4. เปลี่ยนชื่อคอลัมน์ตาม Naming Standard

```excel
let
    RawData = Table.FromRecords(
        {{[prod_id = 1, prod_name = "A", unit_price = 100]},
         {[prod_id = 2, prod_name = "B", unit_price = 200]}}
    ),
    RenamingList = {{"prod_id", "ProductID"}, 
                    {"prod_name", "ProductName"}, 
                    {"unit_price", "UnitPrice"}},
    Cleaned = Table.RenameColumns(RawData, RenamingList)
in
    Cleaned
```

**ผลลัพธ์:** `Table with columns: ProductID, ProductName, UnitPrice (เปลี่ยนจาก snake_case เป็น PascalCase)`

Use case ที่บ่อยมาก คือเวลา Import Data จาก Database ที่ใช้ naming convention แบบ snake_case (prod_id) แล้วต้องเปลี่ยนเป็น PascalCase (ProductID) ให้เป็นมาตรฐาน ส่วนตัวผมมักทำขั้นตอนนี้เป็นขั้นตอนแรกของ Data Cleaning เลยครับ 💡

## หมายเหตุเพิ่มเติม

- ใช้ let...in structure เพื่อสร้างตัวแปร RenamingList แล้วค่อยส่งเข้า Table.RenameColumns ทำให้ Code อ่านง่ายและ Maintain ได้ง่ายกว่า

- ถ้าต้องเปลี่ยนชื่อทั้งหมดของคอลัมน์ตาม Pattern (เช่นเปลี่ยนเป็น UPPER CASE ทั้งหมด) ใช้ Table.TransformColumnNames ดีกว่า

- Power Query Case Sensitive ครับ เลย Check ชื่อเก่าให้ดี ก่อน Rename มิฉะนั้นเสียเวลาหา Error

- ส่วนตัวผมชอบใช้ Table.ColumnNames() เพื่อดูชื่อคอลัมน์ที่แน่นอนก่อน Rename เพื่อไม่ให้พิมพ์เสีย 😎

## คำถามที่พบบ่อย

**Q: ชื่อคอลัมน์เก่าต้องตรงเป๊ะไหม?**

ต้องตรงเป๊ะครับ เพราะ Power Query เป็น Case Sensitive (สำคัญ Capital/Lowercase) และสำคัญช่องว่าง (Space) ด้วย ถ้าพิมพ์เสีย "ProductId" แทน "ProductID" มันจะหาไม่เจอและเกิด Error

**Q: ถ้าไม่พบคอลัมน์เก่าที่ต้องการเปลี่ยนชื่อ?**

โดยปกติจะเกิด Error ครับ แต่สามารถใช้ MissingField.Ignore เพื่อข้ามผ่านได้ ไม่ว่าจะหาเจอหรือไม่เจอก็จะ Rename ชื่อที่เจออยู่เท่านั้นค่ะ

**Q: สามารถเปลี่ยนชื่อคอลัมน์เป็นชื่อที่มีอยู่แล้วได้ไหม?**

ได้ครับ แต่มันจะเกิด Error เพราะจะทำให้มีชื่อคอลัมน์ซ้ำกัน Power Query ไม่อนุญาตให้มีชื่อคอลัมน์ซ้ำ ต้องระวังจุดนี้นะครับ

**Q: ต่างกับ Table.TransformColumnNames ยังไง?**

Table.RenameColumns เปลี่ยนชื่อเฉพาะที่ระบุ แต่ Table.TransformColumnNames ใช้ function เพื่อแปลงชื่อทุกคอลัมน์ เช่นต้องการเปลี่ยนทั้งหมดเป็น UPPER CASE

## ฟังก์ชันที่เกี่ยวข้อง

- [Table.TransformColumnNames – แปลงชื่อคอลัมน์ด้วยฟังก์ชัน](https://www.thepexcel.com/functions/power-query/table-functions/table-transformcolumnnames/)
- [Table.ColumnNames – ดึงชื่อคอลัมน์จากตาราง](https://www.thepexcel.com/functions/power-query/table-functions/table-columnnames/)
- [Table.SelectColumns – เลือกคอลัมน์ที่ต้องการจากตาราง](https://www.thepexcel.com/functions/power-query/table-functions/table-selectcolumns/)
- [Table.RemoveColumns – ลบคอลัมน์ที่ไม่ต้องการจาก table](https://www.thepexcel.com/functions/power-query/table-functions/table-removecolumns/)
- [Record.RenameFields – Rename fields in a record](https://www.thepexcel.com/functions/power-query/record-functions/record-renamefields/)

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn: Table.RenameColumns](https://learn.microsoft.com/en-us/powerquery-m/table-renamecolumns) _(official)_
- [PowerQuery.how - Table Functions](https://powerquery.how/) _(article)_

---

_Source: [https://www.thepexcel.com/functions/power-query/table-functions/table-renamecolumns/](https://www.thepexcel.com/functions/power-query/table-functions/table-renamecolumns/)_
