FORMAT ใช้แปลงค่า (ตัวเลข วันที่ เวลา) เป็น Text ตามรูปแบบที่ต้องการ เช่น แปลง 0.25 เป็น “25%” หรือ 2025-12-20 เป็น “20/12/2025” โดยสนับสนุน locale ต่างๆ
=FORMAT(<value>, <format_string>, [<locale_name>])
=FORMAT(<value>, <format_string>, [<locale_name>])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| value | Scalar (Number, Date, Time) | Yes | ค่าที่ต้องการแปลง อาจเป็นตัวเลข วันที่ เวลา หรือ expression ที่ return ค่าเหล่านี้ | |
| format_string | Text | Yes | รูปแบบการแสดงผล สามารถใช้รูปแบบที่กำหนดไว้ (“Currency”, “Percent”, “General Date”) หรือ pattern เช่น “#,0.00”, “yyyy-mm-dd” | |
| locale_name | Text | Optional | Model locale | ชื่อ locale สำหรับตั้งรูปแบบตามวัฒนธรรม เช่น “en-US”, “th-TH”, “en-GB” ถ้าไม่ระบุจะใช้ locale ของ model |
เช่น ทำให้ยอดมีคอมมาและจำนวนทศนิยมตามต้องการ
เช่น แสดงเดือนเป็น yyyy-mm สำหรับหัวข้อหรือ tooltip
Sales Currency = FORMAT(SUM(Sales[Amount]), "Currency")Sales Currency = FORMAT(SUM(Sales[Amount]), "Currency")
$12,345.67
Growth Rate = FORMAT(0.1234, "Percent")Growth Rate = FORMAT(0.1234, "Percent")
12.34%
Today Date = FORMAT(TODAY(), "dd/mm/yyyy")Today Date = FORMAT(TODAY(), "dd/mm/yyyy")
20/12/2025
US Date = FORMAT(DATE(2025, 12, 20), "General Date", "en-US") GB Date = FORMAT(DATE(2025, 12, 20), "General Date", "en-GB")US Date = FORMAT(DATE(2025, 12, 20), "General Date", "en-US")
GB Date = FORMAT(DATE(2025, 12, 20), "General Date", "en-GB")
US: 12/20/2025 | GB: 20/12/2025
Display Sales = FORMAT(2500.5, "$#,0.00")Display Sales = FORMAT(2500.5, "$#,0.00")
$2,500.50
Current Time = FORMAT(NOW(), "hh:mm:ss")Current Time = FORMAT(NOW(), "hh:mm:ss")
14:30:45
เพราะ FORMAT แปลงค่าเป็น Text (string) จึงไม่สามารถนำไปใช้ในการคำนวณได้อีก ถ้ายังต้องคำนวณต่อควรใช้ Dynamic Format String แทน หรือแปลงเป็น Text เฉพาะในการแสดงผลเท่านั้น โดยเก็บค่าตัวเลขไว้แยก
“Currency” จะใช้สกุลเงินตามหมายเลข locale ของ model หรือตัวแปร locale_name ถ้าต้องการสกุลเงินอื่น ต้องใช้ pattern เช่น “฿#,0.00” สำหรับบาทไทย หรือ “¥#,0” สำหรับเยน
ถ้า value เป็น BLANK, FORMAT จะ return empty string “” ไม่ว่าจะใช้ format string อะไร ซึ่งใช้ได้ดีเมื่อต้องการเงื่อนไขแบบ IF(ISBLANK(…), “No Data”, FORMAT(…))
# = digit ที่ไม่บังคับ (จะไม่แสดง 0 นำหน้า), 0 = digit ที่บังคับ (จะแสดง 0 แม้ว่าตัวเลขไม่ถึง), , = thousands separator, .00 = ทศนิยม 2 ตำแหน่ง
ไม่ได้ FORMAT ไม่สนับสนุนใน DirectQuery mode สำหรับ calculated column หรือ RLS ต้องใช้ที่ query engine ตรงแทน เช่น FORMAT ใน SQL Server หรือ Power Query
FORMAT คือฟังก์ชันสำหรับปรับแต่งการแสดงผลข้อมูล โดยแปลงตัวเลข วันที่ เวลา เป็น Text string ตามรูปแบบที่ระบุ
ที่เจ๋งคือ FORMAT สนับสนุนทั้งรูปแบบที่กำหนดไว้แล้ว (Predefined Formats) เช่น “Currency”, “Percent”, “General Date” และรูปแบบที่สร้างเองด้วย pattern เช่น “#,0.00” หรือ “yyyy-mm-dd”
ส่วนตัวผมเห็นว่า FORMAT มีประโยชน์เวลาต้องจัดเตรียมข้อมูลสำหรับ Dashboard หรือ Export ที่ต้องให้ดูสวย มีความเป็นระเบียบ แต่ที่ต้องระวังคือ FORMAT แปลงค่าเป็น Text ซึ่งทำให้ไม่สามารถนำไปใช้ในการคำนวณต่อได้แล้ว นอกจากนี้ FORMAT ไม่ได้ถูกสนับสนุนใน DirectQuery mode ด้วย 😎