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
=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 เป็นข้อความ) |
แปลงวันที่ 2025-01-01 ให้เป็น "01 ม.ค. 2568" สำหรับทำรายงาน
แปลงวันที่เป็น "yyyyMMdd" (เช่น "20250101") เพื่อใช้เป็น Key ในการ Merge
let MyDate = #date(2025, 12, 31), Result = Date.ToText(MyDate) in Resultlet
MyDate = #date(2025, 12, 31),
Result = Date.ToText(MyDate)
in
Result
"12/31/2025" (ขึ้นอยู่กับ Region)
let MyDate = #date(2025, 1, 5), Result = Date.ToText(MyDate, "dd-MMM-yyyy") in Resultlet
MyDate = #date(2025, 1, 5),
Result = Date.ToText(MyDate, "dd-MMM-yyyy")
in
Result
"05-Jan-2025"
let MyDate = #date(2025, 1, 1), Result = Date.ToText(MyDate, [Format="d MMMM yyyy", Culture="th-TH"]) in Resultlet
MyDate = #date(2025, 1, 1),
Result = Date.ToText(MyDate, [Format="d MMMM yyyy", Culture="th-TH"])
in
Result
"1 มกราคม 2568"
let Sales = Table.FromRows({{#date(2025, 1, 15), 5000}, {#date(2025, 2, 20), 7500}}, {"OrderDate", "Amount"}), AddTextDate = Table.AddColumn(Sales, "DateText",…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")
หลักๆ มี: “d” (วันที่ย่อ เช่น 1), “dd” (วันที่ 2 หลัก เช่น 01), “M” (เดือนตัวเลข เช่น 1), “MM” (เดือน 2 หลัก เช่น 01), “MMM” (เดือนย่อ เช่น Jan), “MMMM” (เดือนเต็ม เช่น January), “yy” (ปี 2 หลัก), “yyyy” (ปี 4 หลัก)
แตกต่างกันครับ yyyy คือปีปกติ แต่ YYYY อาจหมายถึง ISO Week Year ซึ่งในบางสถานการณ์ (เช่นช่วงเข้าปีใหม่) อาจให้ผลต่างกัน ส่วนใหญ่ใช้ yyyy จะปลอดภัยกว่า
ขึ้นอยู่กับเวอร์ชันของ Power Query และ OS ถ้าต้องการแน่นอน ให้เพิ่ม “gg” ใน Format String เช่น “d MMMM yyyy gg” แต่ถ้ากำหนดเพียง Culture ไทยเท่านั้น โดยปกติควรได้ พ.ศ.
ได้ครับ ถ้า input date เป็น null จะได้ผล null หรือถ้า Format String ผิดรูปแบบก็อาจเกิด error ควรตรวจสอบ Format String ตามเอกสาร Microsoft
ได้ครับ เปลี่ยน Culture ตามภาษาที่ต้องการ เช่น “en-US” (อังกฤษ), “de-DE” (เยอรมัน), “es-ES” (สเปน) เป็นต้น
Date.ToText(date, [options], [culture]) ใช้สำหรับแปลงค่าวันที่ (Date) ให้เป็นข้อความ (Text) กำลังจะเก็บในตารางหรือรายงาน
ฟังก์ชันนี้เจ๋งตรงที่มันยืดหยุ่นมากครับ ถ้าเพียงแค่ระบุวันที่อย่างเดียว มันจะใช้ Format ตามสถานที่ (Region) ของเครื่องคุณ แต่ถ้าต้องการแบบเฉพาะเจาะจง ก็ระบุ Format String แบบ “dd/MM/yyyy” หรือ “dd MMMM yyyy” ได้ เข้าใจไหม
ส่วนตัวผมชอบใช้ Date.ToText คู่กับ Culture=”th-TH” เพื่อแสดงเดือนและวันไทยในรายงาน แล้วข้อมูลดูสวยและเข้าใจง่ายขึ้นเยอะครับ