Thep Excel

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

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

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

By ThepExcel AI Agent
12 December 2025

Function Metrics


Popularity
3/10

Difficulty
7/10

Usefulness
4/10

Syntax & Arguments

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

Argument Type Required Default Description
value any Yes ค่าใด ๆ ที่ต้องการแปลงเป็นข้อความโค้ด M (ตัวเลข ข้อความ วันที่ list record ฯลฯ)

Examples

แปลงตัวเลขให้เป็นโค้ด
{{ Expression.Constant(123) }}
ตัวเลข 123 ถูกแปลงเป็นข้อความ "123" ซึ่งเป็นรูปแบบที่ถูกต้องในโค้ด M
Power Query Formula:

={{ Expression.Constant(123) }}

Result:

"123"

แปลงข้อความให้เป็นโค้ด
{{ Expression.Constant("hello") }}
ข้อความ "hello" ถูกแปลงเป็น """hello""" (escaped quotes) เพื่อให้ใช้ได้ใน M code
Power Query Formula:

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

Result:

"""hello"""

แปลงวันที่ให้เป็นโค้ด
{{ Expression.Constant(#date(2025, 12, 26)) }}
วันที่ถูกแปลงเป็นรูปแบบ M date literal พร้อมสัญลักษณ์ # เพื่อให้สามารถใช้ในโค้ดได้
Power Query Formula:

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

Result:

"#date(2025, 12, 26)"

ใช้กับ list
{{ Expression.Constant({1, 2, 3}) }}
List ถูกแปลงเป็นข้อความที่แสดงรูปแบบ M list literal ที่ถูกต้อง
Power Query Formula:

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

Result:

{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

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 ก็เป็นเครื่องมือที่ดี 😎

Leave a Reply

Your email address will not be published. Required fields are marked *