Thep Excel

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

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

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

By ThepExcel AI Agent
12 December 2025

Function Metrics


Popularity
7/10

Difficulty
3/10

Usefulness
7/10

Syntax & Arguments

=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”]

How it works

อ่านข้อมูลวันที่จากไฟล์ข้อความ

แปลงข้อมูลวันที่ที่อยู่ในรูปแบบข้อความจากไฟล์ CSV หรือข้อความธรรมดา

จัดการวันที่หลายรูปแบบ

รวมข้อมูลจากหลายแหล่งที่มีรูปแบบวันที่ต่างกัน แล้วแปลงทั้งหมดเป็นมาตรฐานเดียว

แปลงข้อมูลตามภาษาเฉพาะ

แปลงข้อมูลวันที่ที่เขียนเป็นภาษาต่างประเทศ (เช่น ภาษาเยอรมัน ภาษาอิตาลี)

Examples

ตัวอย่างที่ 1: แปลง ISO format (แบบอัตโนมัติ)
Date.FromText("2010-12-31")
รูปแบบ ISO (yyyy-MM-dd) เป็นค่าเริ่มต้น Date.FromText จะแปลงได้ทันทีโดยไม่ต้องระบุ Format หรือ Culture ใช้ได้ทั่วโลก
Power Query Formula:

=Date.FromText("2010-12-31")

Result:

#date(2010, 12, 31)

ตัวอย่างที่ 2: แปลงด้วยรูปแบบเยอรมัน
Date.FromText("30 Dez 2010", [Format="dd MMM yyyy", Culture="de-DE"])
ระบุ Format="dd MMM yyyy" (วัน เดือนสั้น ปี) และ Culture="de-DE" (เยอรมัน) เพื่อให้ Date.FromText รู้ว่า "Dez" = ธันวาคม ใช้เมื่อข้อมูลมาจากระบบเยอรมัน
Power Query Formula:

=Date.FromText("30 Dez 2010", [Format="dd MMM yyyy", Culture="de-DE"])

Result:

#date(2010, 12, 30)

ตัวอย่างที่ 3: ใช้ Table.TransformColumns แปลงทั้งคอลัมน์
let Sales = #table( type table [Date = text, Amount = number], {{"20 gen. 2023", 1500}, {"18 lug. 2024", 2000}} ), ConvertedDates = Table.TransformColumns( Sale…
ใช้ Table.TransformColumns กับ Date.FromText เพื่อแปลงทั้งคอลัมน์วันที่พร้อมกัน แต่ละแถวจะแปลงผ่าน each _ โดยใช้ Culture="it-IT" ให้รู้ว่าเดือน "gen" = มกราคม และ "lug" = กรกฎาคม
Power Query Formula:

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

Result:

ตารางที่วันที่เป็น date type แล้ว:
| Date | Amount |
|------------|--------|
| 20 Jan 23 | 1500 |
| 18 Jul 24 | 2000 |

FAQs

ฉันจะรู้ได้ไหนว่า Format string ต้องเป็นอะไร?

ดูจากข้อมูลจริง เช่น “31-12-2010″ แล้วเขียน Format=”dd-MM-yyyy” ให้ตรงกัน ห้ามจำ! เปิด docs .NET Custom Date and Time Format Strings ดูเพิ่มเติม

Date.FromText กับ Date.From ต่างกันอย่างไร?

Date.FromText ใช้กับข้อความเท่านั้น รองรับ Format และ Culture ส่วน Date.From เป็น generic function ที่ลองแปลงจากประเภทใดๆ ที่ Power Query รู้จัก

แล้วถ้าข้อความมีรูปแบบ timezone หรือเวลาด้วยล่ะ?

ใช้ DateTime.FromText แทน Date.FromText ถ้าข้อความมีส่วนเวลา เช่น “2010-12-31T14:30:00” Date.FromText ใช้ได้กับข้อความวันที่เท่านั้น

Culture=null ใช้ได้ไหม?

ได้ แต่จะใช้ Culture.Current ของ Power Query เสี่ยงที่ฟังก์ชันจะแปลงผิดถ้า PC ของผู้ใช้ตั้ง culture ต่างกัน แนะนำระบุอย่างชัดเจน เช่น Culture=”en-US”

Resources & Related

Additional Notes

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 ครับ 😎

Leave a Reply

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