Date.FromText แปลงค่าข้อความให้เป็นค่าวันที่ รองรับการระบุรูปแบบวันที่และภาษาที่แตกต่างกัน ฟังก์ชันนี้จำเป็นสำหรับการอ่านข้อมูลวันที่จากแหล่งข้อมูลภายนอก การจัดการข้อมูลที่มีรูปแบบวันที่หลากหลาย และการทำให้ข้อมูลเป็นมาตรฐาน
=Date.FromText(text as nullable text, optional options as any) as nullable date
=Date.FromText(text as nullable text, optional options as any) as nullable date
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| text | nullable text | Yes | ค่าข้อความที่ต้องการแปลงเป็นวันที่ | |
| options | any | Optional | null | ระเบียนที่ระบุ Format และ Culture หรือเพียงข้อความ Culture ตัวอย่าง: [Format=”dd MMM yyyy”, Culture=”en-US”] |
แปลงข้อมูลวันที่ที่อยู่ในรูปแบบข้อความจากไฟล์ CSV หรือข้อความธรรมดา
รวมข้อมูลจากหลายแหล่งที่มีรูปแบบวันที่ต่างกัน แล้วแปลงทั้งหมดเป็นมาตรฐานเดียว
แปลงข้อมูลวันที่ที่เขียนเป็นภาษาต่างประเทศ (เช่น ภาษาเยอรมัน ภาษาอิตาลี)
Date.FromText("2010-12-31")=Date.FromText("2010-12-31")
#date(2010, 12, 31)
Date.FromText("30 Dez 2010", [Format="dd MMM yyyy", Culture="de-DE"])=Date.FromText("30 Dez 2010", [Format="dd MMM yyyy", Culture="de-DE"])
#date(2010, 12, 30)
let Sales = #table( type table [Date = text, Amount = number], {{"20 gen. 2023", 1500}, {"18 lug. 2024", 2000}} ), ConvertedDates = Table.TransformColumns( Sale…let
Sales = #table(
type table [Date = text, Amount = number],
{{"20 gen. 2023", 1500}, {"18 lug. 2024", 2000}}
),
ConvertedDates = Table.TransformColumns(
Sales,
{"Date", each Date.FromText(_, [Culture="it-IT"]), type date}
)
in
ConvertedDates
ตารางที่วันที่เป็น date type แล้ว:
| Date | Amount |
|------------|--------|
| 20 Jan 23 | 1500 |
| 18 Jul 24 | 2000 |
ดูจากข้อมูลจริง เช่น “31-12-2010″ แล้วเขียน Format=”dd-MM-yyyy” ให้ตรงกัน ห้ามจำ! เปิด docs .NET Custom Date and Time Format Strings ดูเพิ่มเติม
Date.FromText ใช้กับข้อความเท่านั้น รองรับ Format และ Culture ส่วน Date.From เป็น generic function ที่ลองแปลงจากประเภทใดๆ ที่ Power Query รู้จัก
ใช้ DateTime.FromText แทน Date.FromText ถ้าข้อความมีส่วนเวลา เช่น “2010-12-31T14:30:00” Date.FromText ใช้ได้กับข้อความวันที่เท่านั้น
ได้ แต่จะใช้ Culture.Current ของ Power Query เสี่ยงที่ฟังก์ชันจะแปลงผิดถ้า PC ของผู้ใช้ตั้ง culture ต่างกัน แนะนำระบุอย่างชัดเจน เช่น Culture=”en-US”
Date.FromText(text, [options]) ใช้แปลงค่าข้อความให้เป็นค่าวันที่ (date) โดยมีความยืดหยุ่นในการระบุรูปแบบและภาษา ส่วนที่สำคัญคือมันช่วยแปลงข้อมูลวันที่จากแหล่งข้อมูลภายนอก (CSV, Excel, API) ที่มีรูปแบบต่างๆ ให้เป็นวันที่มาตรฐาน
ที่เจ๋งคือ Date.FromText มีความชาญฉลาดพอที่จะแปลงวันที่ในภาษาต่างๆ เช่น “30 Dez 2010” (เยอรมัน) หรือ “20 gen. 2023” (อิตาลี) ได้อย่างถูกต้อง เพียงแค่บอกว่ารูปแบบคืออะไรและใช้ภาษาไหน
ส่วนตัวผมใช้ Date.FromText มากเมื่อทำงานกับข้อมูลจากต่างประเทศ หรือเวลาที่ข้อมูลเก่าๆ อยู่ในรูปแบบ “31 Dec 2010” แล้วต้องแปลงให้เป็นวันที่ที่ Power Query จะจำ ประสิทธิภาพ 10 out of 10 ครับ 😎