Thep Excel

DAX · Text

FORMATแปลงค่าเป็น Text ตามรูปแบบที่กำหนด

FORMAT ใช้แปลงค่า (ตัวเลข วันที่ เวลา) เป็น Text ตามรูปแบบที่ต้องการ เช่น แปลง 0.25 เป็น “25%” หรือ 2025-12-20 เป็น “20/12/2025” โดยสนับสนุน locale ต่างๆ

fx
=FORMAT(<value>, <format_string>, [<locale_name>])

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

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
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

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

FORMAT คือฟังก์ชันสำหรับปรับแต่งการแสดงผลข้อมูล โดยแปลงตัวเลข วันที่ เวลา เป็น Text string ตามรูปแบบที่ระบุ

ที่เจ๋งคือ FORMAT สนับสนุนทั้งรูปแบบที่กำหนดไว้แล้ว (Predefined Formats) เช่น “Currency”, “Percent”, “General Date” และรูปแบบที่สร้างเองด้วย pattern เช่น “#,0.00” หรือ “yyyy-mm-dd”

ส่วนตัวผมเห็นว่า FORMAT มีประโยชน์เวลาต้องจัดเตรียมข้อมูลสำหรับ Dashboard หรือ Export ที่ต้องให้ดูสวย มีความเป็นระเบียบ แต่ที่ต้องระวังคือ FORMAT แปลงค่าเป็น Text ซึ่งทำให้ไม่สามารถนำไปใช้ในการคำนวณต่อได้แล้ว นอกจากนี้ FORMAT ไม่ได้ถูกสนับสนุนใน DirectQuery mode ด้วย 😎

How it works

จัดรูปแบบตัวเลขเพื่อแสดงผล

เช่น ทำให้ยอดมีคอมมาและจำนวนทศนิยมตามต้องการ

จัดรูปแบบวันที่เพื่อทำ label

เช่น แสดงเดือนเป็น yyyy-mm สำหรับหัวข้อหรือ tooltip

Examples

แปลงตัวเลขเป็นสกุลเงิน (Currency)Sales Currency = FORMAT(SUM(Sales[Amount]), "Currency")

ใช้รูปแบบ "Currency" ที่กำหนดไว้ เปลี่ยน 12345.67 เป็น $12,345.67 ตามรูปแบบสกุลเงิน

fx
Sales Currency = FORMAT(SUM(Sales[Amount]), "Currency")

ผลลัพธ์$12,345.67
แปลงเป็นเปอร์เซ็นต์ (Percent)Growth Rate = FORMAT(0.1234, "Percent")

แปลง decimal 0.1234 เป็น "12.34%" โดยอัตโนมัติ ใช้สำหรับแสดงอัตราการเติบโต อัตรากำไร หรือ conversion rate

fx
Growth Rate = FORMAT(0.1234, "Percent")

ผลลัพธ์12.34%
แปลงวันที่ด้วย Pattern CustomToday Date = FORMAT(TODAY(), "dd/mm/yyyy")

ใช้ pattern "dd/mm/yyyy" เปลี่ยนวันที่เป็น "20/12/2025" ตามรูปแบบวัน/เดือน/ปี DAX ใช้ Visual Basic format patterns ไม่ใช่ .NET style

fx
Today Date = FORMAT(TODAY(), "dd/mm/yyyy")

ผลลัพธ์20/12/2025
แปลงวันที่ตามรูปแบบ Locale ต่างๆUS Date = FORMAT(DATE(2025, 12, 20), "General Date", "en-US") GB Date = FORMAT(DATE(2025, 12, 20), "General Date", "en-GB")

รูปแบบ "General Date" แสดงต่างกันตามประเทศ en-US ใช้ M/D/Y แต่ en-GB ใช้ D/M/Y ที่สำคัญเมื่อ export ไป locales ต่างๆ

fx
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
สร้าง Custom Pattern สำหรับตัวเลขด้วยเครื่องหมายDisplay Sales = FORMAT(2500.5, "$#,0.00")

ใช้ pattern "$#,0.00" เพื่อแสดงสกุลเงิน thousands separator และทศนิยม 2 ตำแหน่ง

fx
Display Sales = FORMAT(2500.5, "$#,0.00")

ผลลัพธ์$2,500.50
แปลงเวลาตามรูปแบบ 24-hourCurrent Time = FORMAT(NOW(), "hh:mm:ss")

ใช้ pattern "hh:mm:ss" เปลี่ยนเวลาเป็น "14:30:45" ตามรูปแบบ 24 ชั่วโมง

fx
Current Time = FORMAT(NOW(), "hh:mm:ss")

ผลลัพธ์14:30:45

FAQs

ทำไมใช้ FORMAT แล้ว chart ไม่คำนวณค่าได้?+

เพราะ FORMAT แปลงค่าเป็น Text (string) จึงไม่สามารถนำไปใช้ในการคำนวณได้อีก ถ้ายังต้องคำนวณต่อควรใช้ Dynamic Format String แทน หรือแปลงเป็น Text เฉพาะในการแสดงผลเท่านั้น โดยเก็บค่าตัวเลขไว้แยก

รูปแบบ "Currency" ใช้ได้กับสกุลเงินอื่นไหม?+

"Currency" จะใช้สกุลเงินตามหมายเลข locale ของ model หรือตัวแปร locale_name ถ้าต้องการสกุลเงินอื่น ต้องใช้ pattern เช่น "฿#,0.00" สำหรับบาทไทย หรือ "¥#,0" สำหรับเยน

ต่างกันระหว่าง BLANK กับ empty string ใน FORMAT?+

ถ้า value เป็น BLANK, FORMAT จะ return empty string "" ไม่ว่าจะใช้ format string อะไร ซึ่งใช้ได้ดีเมื่อต้องการเงื่อนไขแบบ IF(ISBLANK(…), "No Data", FORMAT(…))

รูปแบบ pattern "#,0.00" มีความหมายอย่างไร?+

# = digit ที่ไม่บังคับ (จะไม่แสดง 0 นำหน้า), 0 = digit ที่บังคับ (จะแสดง 0 แม้ว่าตัวเลขไม่ถึง), , = thousands separator, .00 = ทศนิยม 2 ตำแหน่ง

FORMAT ใช้ได้กับ DirectQuery ไหม?+

ไม่ได้ FORMAT ไม่สนับสนุนใน DirectQuery mode สำหรับ calculated column หรือ RLS ต้องใช้ที่ query engine ตรงแทน เช่น FORMAT ใน SQL Server หรือ Power Query

Resources & Related

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

ฟังก์ชันนี้FORMATText
Text (6)
COMBINEVALUES

COMBINEVALUES รวมหลายค่าสเกลาร์เป็นข้อความเดียว โดยกำหนดตัวคั่นได้ เหมาะกับการสร้างคีย์รวมจากหลายคอลัมน์ในแถวเดียว

CONCATENATE

CONCATENATE ต่อข้อความ 2 ค่าให้เป็นสตริงเดียว เหมาะกับการทำ label หรือรวมข้อความจาก 2 แหล่งในบริบทปัจจุบัน

EXACT

EXACT เปรียบเทียบ Text1 กับ Text2 แบบตรงตัวและคำนึงถึงตัวพิมพ์เล็ก/ใหญ่ คืน TRUE เมื่อเหมือนกันทุกตัวอักษร เหมาะกับงานตรวจรหัส/ข้อความที่ต้องแยก case

FIXED

FIXED แปลงตัวเลขเป็นข้อความ พร้อมกำหนดจำนวนทศนิยม และเลือกใส่/ไม่ใส่ตัวคั่นหลักพัน เหมาะกับการแสดงผลแบบรูปแบบคงที่

UNICHAR

UNICHAR รับค่าโค้ด Unicode (ฐานสิบ) และคืนอักขระที่ตรงกับโค้ดนั้น ใช้สร้างสัญลักษณ์หรืออักขระพิเศษใน Measures/Columns เพื่อเพิ่มความสื่อสารในรายงาน

VALUE

VALUE แปลงข้อความที่แทนตัวเลขให้เป็นตัวเลข (decimal) เหมาะสำหรับข้อมูลนำเข้าที่ตัวเลขถูกเก็บเป็นข้อความหรือข้อมูลที่ไม่ทำความสะอาดอย่างถูกต้อง

Math and Trig (1)
CURRENCY

CURRENCY แปลงค่าตัวเลขให้เป็นชนิด Currency โดยเก็บเลขทศนิยมเพียง 4 ตำแหน่ง เหมาะสำหรับการคำนวณค่าเงินที่ต้องความแม่นยำในการปัดเศษ

Comments

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