---
title: Date.ToText – แปลงวันที่เป็นข้อความ
url: https://www.thepexcel.com/functions/power-query/date-functions/date-totext/
type: function-explainer
program: Power Query
syntax: "Date.ToText(date as nullable date, optional options as any, optional culture as nullable text) as nullable text"
date: 2025-12-03
updated: 2025-12-23
scores:
  popularity: 7
  difficulty: 3
  usefulness: 7
---

# Date.ToText – แปลงวันที่เป็นข้อความ

> Date.ToText แปลงค่า Date ให้เป็น Text String โดยสามารถกำหนด Format และ Culture ได้ตามต้องการ เหมาะสำ

## คำอธิบาย

Date.ToText แปลงค่า Date ให้เป็น Text String โดยสามารถกำหนด Format และ Culture ได้ตามต้องการ เหมาะสำหรับแสดงผลวันที่ในรูปแบบที่สวยงาม

## Syntax

```excel
Date.ToText(date as nullable date, optional options as any, optional culture as nullable text) as nullable text
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| date | Yes | date |  | ค่าวันที่ที่ต้องการแปลง เช่น #date(2025, 12, 31) |
| options | No | text or record | null (ใช้ Format ตามระบบ) | กำหนด Format String เช่น "dd/MM/yyyy" หรือ Record [Format="...", Culture="..."] เพื่อควบคุมรูปแบบและภาษา |
| culture | No | text | null (ใช้ Culture.Current) | รหัสวัฒนธรรม เช่น "th-TH", "en-US", "de-DE" (ใช้เมื่อ options เป็นข้อความ) |

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

### จัดรูปแบบวันที่เพื่อแสดงผล

แปลงวันที่ 2025-01-01 ให้เป็น "01 ม.ค. 2568" สำหรับทำรายงาน

### สร้าง Key สำหรับเชื่อมข้อมูล

แปลงวันที่เป็น "yyyyMMdd" (เช่น "20250101") เพื่อใช้เป็น Key ในการ Merge

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: แปลงพื้นฐาน (ตามค่าเริ่มต้นของระบบ)

```excel
let
    MyDate = #date(2025, 12, 31),
    Result = Date.ToText(MyDate)
in
    Result
```

**ผลลัพธ์:** `"12/31/2025" (ขึ้นอยู่กับ Region)`

แปลงวันที่เป็นข้อความโดยใช้รูปแบบเริ่มต้นที่ตั้งค่าไว้บนเครื่องของคุณ หากเครื่องตั้งค่า Region เป็น "en-US" จะได้ MM/DD/YYYY หากเป็น "th-TH" จะได้ DD/MM/YYYY

### 2. ตัวอย่างที่ 2: กำหนด Format เป็น dd-MMM-yyyy

```excel
let
    MyDate = #date(2025, 1, 5),
    Result = Date.ToText(MyDate, "dd-MMM-yyyy")
in
    Result
```

**ผลลัพธ์:** `"05-Jan-2025"`

ใช้ Format String ที่ระบุชัดเจน โดย dd=วัน 2 หลัก, MMM=เดือนย่อ 3 ตัวอักษร, yyyy=ปี 4 หลัก รูปแบบนี้อ่านง่ายและเข้าใจแม่นยำ

### 3. ตัวอย่างที่ 3: ใช้ Culture ไทยเพื่อแสดงชื่อเดือนภาษาไทย

```excel
let
    MyDate = #date(2025, 1, 1),
    Result = Date.ToText(MyDate, [Format="d MMMM yyyy", Culture="th-TH"])
in
    Result
```

**ผลลัพธ์:** `"1 มกราคม 2568"`

เมื่อใช้ Culture="th-TH" จะแสดงชื่อเดือนเป็นภาษาไทยและปีจะเป็น พ.ศ. (Buddhist Era) แทน ค.ศ. ดูเหมาะกับรายงานภาษาไทยมากครับ

### 4. ตัวอย่างที่ 4: ใช้กับตารางจริง (Table Transform)

```excel
let
    Sales = Table.FromRows({{#date(2025, 1, 15), 5000}, {#date(2025, 2, 20), 7500}}, {"OrderDate", "Amount"}),
    AddTextDate = Table.AddColumn(Sales, "DateText", each Date.ToText([OrderDate], "dd/MM/yyyy"), type text)
in
    AddTextDate
```

**ผลลัพธ์:** `ตารางมี 3 คอลัมน์: OrderDate (วันที่), Amount (จำนวน), DateText ("15/01/2025", "20/02/2025")`

ตัวอย่างจริง ใช้ Table.AddColumn เพื่อเพิ่มคอลัมน์ข้อความวันที่ขึ้น โดยใช้ each [OrderDate] เพื่ออ้างอิงคอลัมน์ OrderDate ในแต่ละแถว

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

- ถ้ามี Column วันที่ในตาราง ใช้ Table.AddColumn + each [DateColumn] เพื่อเพิ่มคอลัมน์ข้อความวันที่ขึ้นมา ทำให้อ่านง่ายขึ้น

- ลองจดรูปแบบ Format String ที่ใช้บ่อยๆ ลงโน้ต เช่น "dd/MM/yyyy", "d MMMM yyyy", "dddd, d MMMM yyyy" เมื่อต้องใช้ก็ copy ได้เลย

- ถ้ารายงานเป็นภาษาไทยอย่าลืมตั้ง Culture="th-TH" จะทำให้วันที่อ่านเป็นภาษาไทยครับ

- "dddd" ใน Format String จะแสดงชื่อวัน (วันจันทร์, วันอังคาร ฯลฯ) ดูเหมาะกับรายงานที่ต้องการรายละเอียด

- ใช้ Date.ToText ก่อนจัดเก็บข้อมูลไว้เป็น Text จะทำให้ฟิลเตอร์หรือค้นหาข้อความง่ายขึ้น

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

**Q: รูปแบบ Format String หลักๆ มีอะไรบ้าง?**

หลักๆ มี: "d" (วันที่ย่อ เช่น 1), "dd" (วันที่ 2 หลัก เช่น 01), "M" (เดือนตัวเลข เช่น 1), "MM" (เดือน 2 หลัก เช่น 01), "MMM" (เดือนย่อ เช่น Jan), "MMMM" (เดือนเต็ม เช่น January), "yy" (ปี 2 หลัก), "yyyy" (ปี 4 หลัก)

**Q: YYYY กับ yyyy ต่างกันไหม?**

แตกต่างกันครับ yyyy คือปีปกติ แต่ YYYY อาจหมายถึง ISO Week Year ซึ่งในบางสถานการณ์ (เช่นช่วงเข้าปีใหม่) อาจให้ผลต่างกัน ส่วนใหญ่ใช้ yyyy จะปลอดภัยกว่า

**Q: ทำไมใช้ "th-TH" แล้วปียังเป็น ค.ศ. ไม่ใช่ พ.ศ.?**

ขึ้นอยู่กับเวอร์ชันของ Power Query และ OS ถ้าต้องการแน่นอน ให้เพิ่ม "gg" ใน Format String เช่น "d MMMM yyyy gg" แต่ถ้ากำหนดเพียง Culture ไทยเท่านั้น โดยปกติควรได้ พ.ศ.

**Q: ผลลัพธ์เป็น null หรือ error ได้ไหม?**

ได้ครับ ถ้า input date เป็น null จะได้ผล null หรือถ้า Format String ผิดรูปแบบก็อาจเกิด error ควรตรวจสอบ Format String ตามเอกสาร Microsoft

**Q: วิธีแสดงวันในภาษาอื่น เช่น ได้ไหม?**

ได้ครับ เปลี่ยน Culture ตามภาษาที่ต้องการ เช่น "en-US" (อังกฤษ), "de-DE" (เยอรมัน), "es-ES" (สเปน) เป็นต้น

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

- [Microsoft Learn: Date.ToText](https://learn.microsoft.com/en-us/powerquery-m/date-totext) _(official)_
- [PowerQuery.how: Date.ToText](https://powerquery.how/date-totext/) _(article)_
- [Microsoft Docs: Custom Date and Time Format Strings](https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings) _(official)_

---

_Source: [https://www.thepexcel.com/functions/power-query/date-functions/date-totext/](https://www.thepexcel.com/functions/power-query/date-functions/date-totext/)_
