| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| value | Scalar (Number, Date, Time) | ค่าที่ต้องการแปลง อาจเป็นตัวเลข วันที่ เวลา หรือ expression ที่ return ค่าเหล่านี้ | |
| format_string | Text | รูปแบบการแสดงผล สามารถใช้รูปแบบที่กำหนดไว้ (“Currency”, “Percent”, “General Date”) หรือ pattern เช่น “#,0.00”, “yyyy-mm-dd” | |
| [locale_name]ไม่บังคับ | Text | Model locale | ชื่อ locale สำหรับตั้งรูปแบบตามวัฒนธรรม เช่น “en-US”, “th-TH”, “en-GB” ถ้าไม่ระบุจะใช้ locale ของ model |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
FORMAT คือฟังก์ชันสำหรับปรับแต่งการแสดงผลข้อมูล โดยแปลงตัวเลข วันที่ เวลา เป็น Text string ตามรูปแบบที่ระบุ
ที่เจ๋งคือ FORMAT สนับสนุนทั้งรูปแบบที่กำหนดไว้แล้ว (Predefined Formats) เช่น “Currency”, “Percent”, “General Date” และรูปแบบที่สร้างเองด้วย pattern เช่น “#,0.00” หรือ “yyyy-mm-dd”
ส่วนตัวผมเห็นว่า FORMAT มีประโยชน์เวลาต้องจัดเตรียมข้อมูลสำหรับ Dashboard หรือ Export ที่ต้องให้ดูสวย มีความเป็นระเบียบ แต่ที่ต้องระวังคือ FORMAT แปลงค่าเป็น Text ซึ่งทำให้ไม่สามารถนำไปใช้ในการคำนวณต่อได้แล้ว นอกจากนี้ FORMAT ไม่ได้ถูกสนับสนุนใน DirectQuery mode ด้วย 😎
เช่น ทำให้ยอดมีคอมมาและจำนวนทศนิยมตามต้องการ
เช่น แสดงเดือนเป็น yyyy-mm สำหรับหัวข้อหรือ tooltip
ใช้รูปแบบ "Currency" ที่กำหนดไว้ เปลี่ยน 12345.67 เป็น $12,345.67 ตามรูปแบบสกุลเงิน
แปลง decimal 0.1234 เป็น "12.34%" โดยอัตโนมัติ ใช้สำหรับแสดงอัตราการเติบโต อัตรากำไร หรือ conversion rate
ใช้ pattern "dd/mm/yyyy" เปลี่ยนวันที่เป็น "20/12/2025" ตามรูปแบบวัน/เดือน/ปี DAX ใช้ Visual Basic format patterns ไม่ใช่ .NET style
รูปแบบ "General Date" แสดงต่างกันตามประเทศ en-US ใช้ M/D/Y แต่ en-GB ใช้ D/M/Y ที่สำคัญเมื่อ export ไป locales ต่างๆ
ใช้ pattern "$#,0.00" เพื่อแสดงสกุลเงิน thousands separator และทศนิยม 2 ตำแหน่ง
ใช้ pattern "hh:mm:ss" เปลี่ยนเวลาเป็น "14:30:45" ตามรูปแบบ 24 ชั่วโมง
เพราะ 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 จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
COMBINEVALUES รวมหลายค่าสเกลาร์เป็นข้อความเดียว โดยกำหนดตัวคั่นได้ เหมาะกับการสร้างคีย์รวมจากหลายคอลัมน์ในแถวเดียว
CONCATENATE ต่อข้อความ 2 ค่าให้เป็นสตริงเดียว เหมาะกับการทำ label หรือรวมข้อความจาก 2 แหล่งในบริบทปัจจุบัน
EXACT เปรียบเทียบ Text1 กับ Text2 แบบตรงตัวและคำนึงถึงตัวพิมพ์เล็ก/ใหญ่ คืน TRUE เมื่อเหมือนกันทุกตัวอักษร เหมาะกับงานตรวจรหัส/ข้อความที่ต้องแยก case
FIXED แปลงตัวเลขเป็นข้อความ พร้อมกำหนดจำนวนทศนิยม และเลือกใส่/ไม่ใส่ตัวคั่นหลักพัน เหมาะกับการแสดงผลแบบรูปแบบคงที่
UNICHAR รับค่าโค้ด Unicode (ฐานสิบ) และคืนอักขระที่ตรงกับโค้ดนั้น ใช้สร้างสัญลักษณ์หรืออักขระพิเศษใน Measures/Columns เพื่อเพิ่มความสื่อสารในรายงาน
VALUE แปลงข้อความที่แทนตัวเลขให้เป็นตัวเลข (decimal) เหมาะสำหรับข้อมูลนำเข้าที่ตัวเลขถูกเก็บเป็นข้อความหรือข้อมูลที่ไม่ทำความสะอาดอย่างถูกต้อง
CURRENCY แปลงค่าตัวเลขให้เป็นชนิด Currency โดยเก็บเลขทศนิยมเพียง 4 ตำแหน่ง เหมาะสำหรับการคำนวณค่าเงินที่ต้องความแม่นยำในการปัดเศษ
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่