---
title: Expression.Identifier – สร้างตัวแทนโค้ด M สำหรับชื่อตัวแปร
url: https://www.thepexcel.com/functions/power-query/expression-functions/expression-identifier/
type: function-explainer
program: Power Query
syntax: "{{ Expression.Identifier(name as text) as text }}"
date: 2025-12-12
updated: 2025-12-26
scores:
  popularity: 3
  difficulty: 7
  usefulness: 4
---

# Expression.Identifier – สร้างตัวแทนโค้ด M สำหรับชื่อตัวแปร

> Expression.Identifier แปลงชื่อตัวแปรเป็นรูปแบบ M source code ที่ถูกต้อง โดยจัดการกับช่องว่างและอักษร

## คำอธิบาย

Expression.Identifier แปลงชื่อตัวแปรเป็นรูปแบบ M source code ที่ถูกต้อง โดยจัดการกับช่องว่างและอักษรพิเศษอัตโนมัติ

## Syntax

```excel
{{ Expression.Identifier(name as text) as text }}
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| name | Yes | text |  | ชื่อตัวแปรหรือฟิลด์ที่ต้องการแปลง เช่น "MyIdentifier" หรือ "My Field Name" |

## ตัวอย่าง

### 1. แปลงชื่อธรรมดาโดยไม่มีช่องว่าง

```excel
{{ Expression.Identifier("ProductName") }}
```

**ผลลัพธ์:** `"ProductName"`

เมื่อชื่อไม่มีช่องว่างหรืออักษรพิเศษ ผลลัพธ์คือชื่อเดิม ผมใช้สำหรับคอลัมน์ที่ตั้งชื่อสะอาดๆ

### 2. แปลงชื่อที่มีช่องว่าง

```excel
{{ Expression.Identifier("Product Name") }}
```

**ผลลัพธ์:** `"#\"Product Name\""`

ชื่อที่มีช่องว่างจะถูกห่อด้วย #"..." โดยอัตโนมัติ ผมเจอเรื่องแบบนี้บ่อยกับไฟล์ Excel ที่มีคอลัมน์หลายคำ

### 3. แปลงชื่อที่มีอักษรพิเศษ

```excel
{{ Expression.Identifier("Total $ Amount") }}
```

**ผลลัพธ์:** `"#\"Total $ Amount\""`

อักษรพิเศษเช่น $, %, @ ก็ต้องห่อด้วย #"..." เพื่อให้ Power Query รู้จักมัน

### 4. ใช้ในการสร้าง Query แบบไดนามิก

```excel
let
    ColumnName = "Sales Amount",
    DynamicRef = Expression.Identifier(ColumnName)
in
    DynamicRef
```

**ผลลัพธ์:** `"#\"Sales Amount\""`

ผมใช้แบบนี้เมื่อต้องสร้าง query ที่อ้างอิงคอลัมน์จากตัวแปร ช่วยให้โค้ดยืดหยุ่นและนำกลับมาใช้ได้

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

- ผมแนะนำให้ใช้ Expression.Identifier เวลาสร้าง dynamic queries เพราะมันจัดการอักษรพิเศษให้โดยอัตโนมัติ

- ส่วนตัวผม ผมมักจะใช้มันร่วมกับ Expression.Evaluate เมื่อต้องสร้างสูตรที่ซับซ้อน

- เวลาชื่อมาจากข้อมูลภายนอก (Excel, Database) ผมต้องใช้ Expression.Identifier เพื่อป้องกัน error

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

**Q: ใช้ Expression.Identifier ตรงไหน?**

ผมใช้ในเวลาสร้างโค้ด M แบบไดนามิก เช่นเมื่อชื่อคอลัมน์มาจากไฟล์ Excel หรือเมื่อต้องอ้างอิงคอลัมน์ที่มีช่องว่างและอักษรพิเศษ มันช่วยให้ Power Query รู้จักชื่อตัวแปรที่ถูกต้อง

**Q: ความแตกต่างระหว่าง #"ชื่อ" กับ Expression.Identifier คืออะไร?**

#"ชื่อ" คือเขียนตรงในโค้ด แต่ Expression.Identifier คือการแปลงชื่อจากข้อมูล (dynamic) ผมใช้ Expression.Identifier เวลาชื่อมาจากตัวแปรหรือสูตร

**Q: ถ้าชื่อมีเครื่องหมายอัญประลักษ์ (quote) จะเป็นไง?**

ผม try แล้วผม escape quotes อัตโนมัติ มันจะสร้างรูป M ที่ถูกต้อง แต่ส่วนตัวผมหลีกเลี่ยงชื่อที่มี quotes เพราะซับซ้อน

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

- [Microsoft Learn - Expression.Identifier](https://learn.microsoft.com/en-us/powerquery-m/expression-identifier) _(official)_
- [Power Query M Function Reference](https://learn.microsoft.com/en-us/powerquery-m/) _(official)_

---

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