Expression.Identifier แปลงชื่อตัวแปรเป็นรูปแบบ M source code ที่ถูกต้อง โดยจัดการกับช่องว่างและอักษรพิเศษอัตโนมัติ
={{ Expression.Identifier(name as text) as text }}
={{ Expression.Identifier(name as text) as text }}
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| name | text | Yes | ชื่อตัวแปรหรือฟิลด์ที่ต้องการแปลง เช่น “MyIdentifier” หรือ “My Field Name” |
{{ Expression.Identifier("ProductName") }}={{ Expression.Identifier("ProductName") }}
"ProductName"
{{ Expression.Identifier("Product Name") }}={{ Expression.Identifier("Product Name") }}
"#\"Product Name\""
{{ Expression.Identifier("Total $ Amount") }}={{ Expression.Identifier("Total $ Amount") }}
"#\"Total $ Amount\""
let ColumnName = "Sales Amount", DynamicRef = Expression.Identifier(ColumnName) in DynamicReflet
ColumnName = "Sales Amount",
DynamicRef = Expression.Identifier(ColumnName)
in
DynamicRef
"#\"Sales Amount\""
ผมใช้ในเวลาสร้างโค้ด M แบบไดนามิก เช่นเมื่อชื่อคอลัมน์มาจากไฟล์ Excel หรือเมื่อต้องอ้างอิงคอลัมน์ที่มีช่องว่างและอักษรพิเศษ มันช่วยให้ Power Query รู้จักชื่อตัวแปรที่ถูกต้อง
#”ชื่อ” คือเขียนตรงในโค้ด แต่ Expression.Identifier คือการแปลงชื่อจากข้อมูล (dynamic) ผมใช้ Expression.Identifier เวลาชื่อมาจากตัวแปรหรือสูตร
ผม try แล้วผม escape quotes อัตโนมัติ มันจะสร้างรูป M ที่ถูกต้อง แต่ส่วนตัวผมหลีกเลี่ยงชื่อที่มี quotes เพราะซับซ้อน
Expression.Identifier ใช้แปลงชื่อตัวแปรธรรมดา (เช่น “MyIdentifier”) เป็นรูปแบบที่ Power Query เข้าใจได้ หากชื่อมีช่องว่างหรืออักษรพิเศษ มันจะจัดเรียงให้อยู่ในรูป #”…” โดยอัตโนมัติ
ที่เจ๋งคือ ผมใช้มันเวลาสร้างโค้ด M แบบไดนามิก เช่น เมื่อชื่อคอลัมน์มาจากไฟล์ Excel ที่มีช่องว่าง ฟังก์ชันนี้ช่วยให้ไม่ต้องเขียนสูตรซ้ำแบบเดิมๆ
ส่วนตัวผม ผมแนะนำให้ใช้มันในการสร้าง queries ที่ต้องการความยืดหยุ่น เช่นสร้างรายงานที่ชื่อคอลัมน์อาจเปลี่ยนแปลงตามเวลา 😎