Thep Excel

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

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

fx
=Date.ToText(date, [options], [culture]) as nullable text

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

อัปเดต 3 December 2025

Syntax & Arguments

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

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

Additional Notes

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

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

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

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

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

ผลลัพธ์"12/31/2025" (ขึ้นอยู่กับ Region)
ตัวอย่างที่ 2: กำหนด Format เป็น dd-MMM-yyyylet MyDate = #date(2025, 1, 5), Result = Date.ToText(MyDate, "dd-MMM-yyyy") in Result

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

fx
let
MyDate = #date(2025, 1, 5),
Result = Date.ToText(MyDate, "dd-MMM-yyyy")
in
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) แทน ค.ศ. ดูเหมาะกับรายงานภาษาไทยมากครับ

fx
let
MyDate = #date(2025, 1, 1),
Result = Date.ToText(MyDate, [Format="d MMMM yyyy", Culture="th-TH"])
in
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 ในแต่ละแถว

fx
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")

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

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

ฟังก์ชันนี้Date.ToTextDate functions
Date functions (2)
Date.From

Date.From แปลงข้อมูลหลายรูปแบบ (ข้อความ ตัวเลข DateTime DateTimeZone) เป็นค่า date ที่สามารถใช้ในการคำนวณและจัดรูปแบบได้ รองรับการระบุ culture สำหรับการแปลงวันที่ localized

Date.FromText

Date.FromText แปลงค่าข้อความให้เป็นค่าวันที่ รองรับการระบุรูปแบบวันที่และภาษาที่แตกต่างกัน ฟังก์ชันนี้จำเป็นสำหรับการอ่านข้อมูลวันที่จากแหล่งข้อมูลภายนอก การจัดการข้อมูลที่มีรูปแบบวันที่หลากหลาย และการทำให้ข้อมูลเป็นมาตรฐาน

DateTime functions (1)
DateTime.ToText

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

Text functions (1)
Text.From

แปลงค่าใดๆ เป็นข้อความ (Text)

Comments

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