Thep Excel

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

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

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

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
7/10

Difficulty
3/10

Usefulness
7/10

Syntax & Arguments

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

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

How it works

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

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

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

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

Examples

ตัวอย่างที่ 1: แปลงพื้นฐาน (ตามค่าเริ่มต้นของระบบ)
let MyDate = #date(2025, 12, 31), Result = Date.ToText(MyDate) in Result
แปลงวันที่เป็นข้อความโดยใช้รูปแบบเริ่มต้นที่ตั้งค่าไว้บนเครื่องของคุณ หากเครื่องตั้งค่า Region เป็น "en-US" จะได้ MM/DD/YYYY หากเป็น "th-TH" จะได้ DD/MM/YYYY
Power Query Formula:

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

Result:

"12/31/2025" (ขึ้นอยู่กับ Region)

ตัวอย่างที่ 2: กำหนด Format เป็น dd-MMM-yyyy
let MyDate = #date(2025, 1, 5), Result = Date.ToText(MyDate, "dd-MMM-yyyy") in Result
ใช้ Format String ที่ระบุชัดเจน โดย dd=วัน 2 หลัก, MMM=เดือนย่อ 3 ตัวอักษร, yyyy=ปี 4 หลัก รูปแบบนี้อ่านง่ายและเข้าใจแม่นยำ
Power Query Formula:

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

Result:

"05-Jan-2025"

ตัวอย่างที่ 3: ใช้ Culture ไทยเพื่อแสดงชื่อเดือนภาษาไทย
let MyDate = #date(2025, 1, 1), Result = Date.ToText(MyDate, [Format="d MMMM yyyy", Culture="th-TH"]) in Result
เมื่อใช้ Culture="th-TH" จะแสดงชื่อเดือนเป็นภาษาไทยและปีจะเป็น พ.ศ. (Buddhist Era) แทน ค.ศ. ดูเหมาะกับรายงานภาษาไทยมากครับ
Power Query Formula:

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

Result:

"1 มกราคม 2568"

ตัวอย่างที่ 4: ใช้กับตารางจริง (Table Transform)
let Sales = Table.FromRows({{#date(2025, 1, 15), 5000}, {#date(2025, 2, 20), 7500}}, {"OrderDate", "Amount"}), AddTextDate = Table.AddColumn(Sales, "DateText",…
ตัวอย่างจริง ใช้ Table.AddColumn เพื่อเพิ่มคอลัมน์ข้อความวันที่ขึ้น โดยใช้ each [OrderDate] เพื่ออ้างอิงคอลัมน์ OrderDate ในแต่ละแถว
Power Query Formula:

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

Result:

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

FAQs

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

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

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

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

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

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

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

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

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

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

Resources & Related

Additional Notes

Date.ToText(date, [options], [culture]) ใช้สำหรับแปลงค่าวันที่ (Date) ให้เป็นข้อความ (Text) กำลังจะเก็บในตารางหรือรายงาน

ฟังก์ชันนี้เจ๋งตรงที่มันยืดหยุ่นมากครับ ถ้าเพียงแค่ระบุวันที่อย่างเดียว มันจะใช้ Format ตามสถานที่ (Region) ของเครื่องคุณ แต่ถ้าต้องการแบบเฉพาะเจาะจง ก็ระบุ Format String แบบ “dd/MM/yyyy” หรือ “dd MMMM yyyy” ได้ เข้าใจไหม

ส่วนตัวผมชอบใช้ Date.ToText คู่กับ Culture=”th-TH” เพื่อแสดงเดือนและวันไทยในรายงาน แล้วข้อมูลดูสวยและเข้าใจง่ายขึ้นเยอะครับ

Leave a Reply

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