Thep Excel

Expression.Constantส่งค่าเป็นโค้ด M

Expression.Constant แปลงค่าใด ๆ ให้เป็นข้อความโค้ด M ที่ถูกต้องทางไวยากรณ์ ใช้เมื่อต้องสร้างโค้ด M แบบไดนามิก

fx
={{ Expression.Constant(value) as text }}

ความนิยม3/10
ความยาก7/10
ประโยชน์4/10

อัปเดต 12 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
value any ค่าใด ๆ ที่ต้องการแปลงเป็นข้อความโค้ด M (ตัวเลข ข้อความ วันที่ list record ฯลฯ)

Additional Notes

Expression.Constant เป็นฟังก์ชันเมตา (meta function) ที่รับค่าใด ๆ แล้วส่งกลับการแทนค่านั้นในรูปแบบโค้ด M ที่ถูกต้อง เช่น ตัวเลข 123 จะกลายเป็น “123” ส่วนข้อความ “abc” จะกลายเป็น “””abc””” ฟังก์ชันนี้ส่งคืนผลลัพธ์เป็น text เสมอ

ที่เจ๋งคือ ผมสามารถใช้มันสร้างโค้ด M โปรแกรม (programmatic) ได้จริง ๆ เวลาอยากสร้าง step ใหม่ หรอ generate formula แบบ dynamic ตามเงื่อนไขต่าง ๆ ใช้ได้ทั้งตัวเลข วันที่ ข้อความ ทั้ง list record และแม้กระทั่ง function reference

ส่วนตัวผม พบว่าคนส่วนใหญ่เขียน Power Query ปกติ ๆ ไม่ค่อยต้องสัมผัสฟังก์ชันแบบนี้หรอก เพราะมันอยู่ในระดับ meta programming ที่ค่อนข้างลึก แต่ถ้าเจอปัญหาที่ต้อง generate code string หรือทำ code injection ด้วยความชาญฉลาด Expression.Constant ก็เป็นเครื่องมือที่ดี 😎

Examples

แปลงตัวเลขให้เป็นโค้ด{{ Expression.Constant(123) }}

ตัวเลข 123 ถูกแปลงเป็นข้อความ "123" ซึ่งเป็นรูปแบบที่ถูกต้องในโค้ด M

fx
={{ Expression.Constant(123) }}

ผลลัพธ์"123"
แปลงข้อความให้เป็นโค้ด{{ Expression.Constant("hello") }}

ข้อความ "hello" ถูกแปลงเป็น """hello""" (escaped quotes) เพื่อให้ใช้ได้ใน M code

fx
={{ Expression.Constant("hello") }}

ผลลัพธ์"""hello"""
แปลงวันที่ให้เป็นโค้ด{{ Expression.Constant(#date(2025, 12, 26)) }}

วันที่ถูกแปลงเป็นรูปแบบ M date literal พร้อมสัญลักษณ์ # เพื่อให้สามารถใช้ในโค้ดได้

fx
={{ Expression.Constant(#date(2025, 12, 26)) }}

ผลลัพธ์"#date(2025, 12, 26)"
ใช้กับ list{{ Expression.Constant({1, 2, 3}) }}

List ถูกแปลงเป็นข้อความที่แสดงรูปแบบ M list literal ที่ถูกต้อง

fx
={{ Expression.Constant({1, 2, 3}) }}

ผลลัพธ์{1, 2, 3}

FAQs

ทำไมต้องใช้ Expression.Constant ไม่สามารถนำค่ามาต่อกับ text ธรรมชาติได้หรือ?+

ผมเห็นคำถามนี้บ่อย ส่วนหนึ่งเพราะว่าข้อมูลบางประเภท เช่น text ต้องมี quote ด้านข้าง และบางประเภท เช่น date ต้องมีสัญลักษณ์พิเศษ Expression.Constant จัดการทุกเรื่องให้อัตโนมัติ ถ้า concat ธรรมชาติ อาจจะมี syntax error ได้

ใช้ได้กับค่าอะไรบ้าง?+

ปกติใช้ได้กับค่า constant ที่เฉพาะเจาะจง เช่น number text logical date time duration list record ถ้าเป็นฟังก์ชัน (function values) บางประเภท อาจจะทำให้เกิด error ได้เพราะฟังก์ชันไม่ใช่ constant

ผลลัพธ์เป็น text ใช่ไหม ต้องทำอะไรไหม?+

ใช่ครับ ผม Expression.Constant คืน text สตริง ถ้าต้องการใช้ผลลัพธ์เป็นโค้ด M จริง ต้องใช้ Expression.Evaluate เพื่อประมวลผลสตริงนั้นให้กลายเป็น M expression ที่ทำงานได้จริง

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Expression.Constant จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Expression.ConstantExpression functions
Expression functions (2)
Expression.Evaluate

Expression.Evaluate ใช้สำหรับประเมินผลนิพจน์ M ที่เก็บไว้เป็นข้อความ โดยสามารถระบุตัวแปรและฟังก์ชันที่ใช้ได้ในสภาพแวดล้อม ทำให้สามารถเขียนโค้ด M แบบไดนามิก

Expression.Identifier

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

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่