---
title: FORMAT – แปลงค่าเป็น Text ตามรูปแบบที่กำหนด
url: https://www.thepexcel.com/functions/dax/text/format-dax/
type: function-explainer
program: DAX
syntax: "FORMAT(<value>, <format_string>, [<locale_name>])"
date: 2025-12-13
updated: 2025-12-20
scores:
  popularity: 8
  difficulty: 4
  usefulness: 8
---

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

> FORMAT ใช้แปลงค่า (ตัวเลข วันที่ เวลา) เป็น Text ตามรูปแบบที่ต้องการ เช่น แปลง 0.25 เป็น "25%" หรือ

## คำอธิบาย

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

## Syntax

```excel
FORMAT(&lt;value&gt;, &lt;format_string&gt;, [&lt;locale_name&gt;])
```

**Variant**

```excel
FORMAT(&lt;value&gt;, &lt;format_string&gt;)
```

แปลงค่าเป็นข้อความตามรูปแบบที่กำหนด

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| value | Yes | Scalar (Number, Date, Time) |  | ค่าที่ต้องการแปลง อาจเป็นตัวเลข วันที่ เวลา หรือ expression ที่ return ค่าเหล่านี้ |
| format_string | Yes | Text |  | รูปแบบการแสดงผล สามารถใช้รูปแบบที่กำหนดไว้ ("Currency", "Percent", "General Date") หรือ pattern เช่น "#,0.00", "yyyy-mm-dd" |
| locale_name | No | Text | Model locale | ชื่อ locale สำหรับตั้งรูปแบบตามวัฒนธรรม เช่น "en-US", "th-TH", "en-GB" ถ้าไม่ระบุจะใช้ locale ของ model |

## เคสการใช้งาน

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

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

_เหมาะกับ:_ format-number

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

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

_เหมาะกับ:_ format-date-label

## ตัวอย่าง

### 1. แปลงตัวเลขเป็นสกุลเงิน (Currency)

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

**ผลลัพธ์:** `$12,345.67`

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

### 2. แปลงเป็นเปอร์เซ็นต์ (Percent)

```excel
Growth Rate = FORMAT(0.1234, "Percent")
```

**ผลลัพธ์:** `12.34%`

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

### 3. แปลงวันที่ด้วย Pattern Custom

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

**ผลลัพธ์:** `20/12/2025`

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

### 4. แปลงวันที่ตามรูปแบบ Locale ต่างๆ

```excel
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`

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

### 5. สร้าง Custom Pattern สำหรับตัวเลขด้วยเครื่องหมาย

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

**ผลลัพธ์:** `$2,500.50`

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

### 6. แปลงเวลาตามรูปแบบ 24-hour

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

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

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

## หมายเหตุเพิ่มเติม

- FORMAT ควรใช้เฉพาะในการแสดงผลข้อมูล ไม่ควรใช้ในการเก็บข้อมูล หรือสร้างตัวแปร ที่ต้องคำนวณต่อ

- ถ้าต้องใช้ในการนำเสนอข้อมูล ให้ใช้ในการแสดงผล (Visualization formatting) แทนการสร้าง Column หรือ Measure

- ใช้ VAR เพื่อเก็บค่าที่แปลงไปแล้ว ทำให้ readable มากขึ้น และ debug ได้ง่าย

- Locale "th-TH" ใช้กับวันที่เดือนปี พุทธศักราช ให้ระวังเวลา export ออกมา เพราะอาจต้องแปลงเป็น AD

- Pattern "0.00%" เหมือน "Percent" แต่ pattern ให้ควบคุมจำนวนทศนิยมได้มากกว่า

## คำถามที่พบบ่อย

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

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

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

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

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

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

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

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

**Q: FORMAT ใช้ได้กับ DirectQuery ไหม?**

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

## ฟังก์ชันที่เกี่ยวข้อง

- text-dax
- [FIXED – แปลงตัวเลขเป็นข้อความพร้อมกำหนดทศนิยม/คอมมา](https://www.thepexcel.com/functions/dax/text/fixed-dax/)
- [VALUE – แปลงข้อความตัวเลขให้เป็นตัวเลข](https://www.thepexcel.com/functions/dax/text/value-dax/)
- [CONCATENATE – ต่อข้อความ 2 ส่วน](https://www.thepexcel.com/functions/dax/text/concatenate-dax/)

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn: FORMAT Function (DAX)](https://learn.microsoft.com/en-us/dax/format-function-dax) _(official)_
- [DAX Guide: FORMAT](https://dax.guide/format/) _(guide)_
- [SQLBI: Understanding FORMAT in DAX](https://www.sqlbi.com/articles/) _(guide)_

---

_Source: [https://www.thepexcel.com/functions/dax/text/format-dax/](https://www.thepexcel.com/functions/dax/text/format-dax/)_
