Thep Excel

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

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

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

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
8/10

Difficulty
4/10

Usefulness
8/10

Syntax & Arguments

=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

How it works

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

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

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

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

Examples

แปลงตัวเลขเป็นสกุลเงิน (Currency)
Sales Currency = FORMAT(SUM(Sales[Amount]), "Currency")
ใช้รูปแบบ "Currency" ที่กำหนดไว้ เปลี่ยน 12345.67 เป็น $12,345.67 ตามรูปแบบสกุลเงิน
DAX Formula:

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

Result:

$12,345.67

แปลงเป็นเปอร์เซ็นต์ (Percent)
Growth Rate = FORMAT(0.1234, "Percent")
แปลง decimal 0.1234 เป็น "12.34%" โดยอัตโนมัติ ใช้สำหรับแสดงอัตราการเติบโต อัตรากำไร หรือ conversion rate
DAX Formula:

Growth Rate = FORMAT(0.1234, "Percent")

Result:

12.34%

แปลงวันที่ด้วย Pattern Custom
Today Date = FORMAT(TODAY(), "dd/mm/yyyy")
ใช้ pattern "dd/mm/yyyy" เปลี่ยนวันที่เป็น "20/12/2025" ตามรูปแบบวัน/เดือน/ปี DAX ใช้ Visual Basic format patterns ไม่ใช่ .NET style
DAX Formula:

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

Result:

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 ต่างๆ
DAX Formula:

US Date = FORMAT(DATE(2025, 12, 20), "General Date", "en-US")
GB Date = FORMAT(DATE(2025, 12, 20), "General Date", "en-GB")

Result:

US: 12/20/2025 | GB: 20/12/2025

สร้าง Custom Pattern สำหรับตัวเลขด้วยเครื่องหมาย
Display Sales = FORMAT(2500.5, "$#,0.00")
ใช้ pattern "$#,0.00" เพื่อแสดงสกุลเงิน thousands separator และทศนิยม 2 ตำแหน่ง
DAX Formula:

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

Result:

$2,500.50

แปลงเวลาตามรูปแบบ 24-hour
Current Time = FORMAT(NOW(), "hh:mm:ss")
ใช้ pattern "hh:mm:ss" เปลี่ยนเวลาเป็น "14:30:45" ตามรูปแบบ 24 ชั่วโมง
DAX Formula:

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

Result:

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

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 ด้วย 😎

Leave a Reply

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