---
title: Date.FromText – แปลงข้อความเป็นวันที่
url: https://www.thepexcel.com/functions/power-query/date-functions/date-fromtext/
type: function-explainer
program: Power Query
syntax: "Date.FromText(text as nullable text, optional options as any) as nullable date"
date: 2025-12-12
updated: 2025-12-23
scores:
  popularity: 7
  difficulty: 3
  usefulness: 7
---

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

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

## คำอธิบาย

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

## Syntax

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

**Variant**

```excel
Date.FromText("2010-12-31")
```

แปลงข้อความ ISO format ให้เป็นวันที่

**Variant**

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

แปลงข้อความที่มีรูปแบบและวัฒนธรรมที่กำหนดเอง

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| text | Yes | nullable text |  | ค่าข้อความที่ต้องการแปลงเป็นวันที่ |
| options | No | any | null | ระเบียนที่ระบุ Format และ Culture หรือเพียงข้อความ Culture ตัวอย่าง: [Format="dd MMM yyyy", Culture="en-US"] |

## เคสการใช้งาน

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

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

_เหมาะกับ:_ text-to-date-conversion

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

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

_เหมาะกับ:_ format-standardization

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

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

_เหมาะกับ:_ multilingual-date-handling

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: แปลง ISO format (แบบอัตโนมัติ)

```excel
Date.FromText("2010-12-31")
```

**ผลลัพธ์:** `#date(2010, 12, 31)`

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

### 2. ตัวอย่างที่ 2: แปลงด้วยรูปแบบเยอรมัน

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

**ผลลัพธ์:** `#date(2010, 12, 30)`

ระบุ Format="dd MMM yyyy" (วัน เดือนสั้น ปี) และ Culture="de-DE" (เยอรมัน) เพื่อให้ Date.FromText รู้ว่า "Dez" = ธันวาคม ใช้เมื่อข้อมูลมาจากระบบเยอรมัน

### 3. ตัวอย่างที่ 3: ใช้ Table.TransformColumns แปลงทั้งคอลัมน์

```excel
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   |`

ใช้ Table.TransformColumns กับ Date.FromText เพื่อแปลงทั้งคอลัมน์วันที่พร้อมกัน แต่ละแถวจะแปลงผ่าน each _ โดยใช้ Culture="it-IT" ให้รู้ว่าเดือน "gen" = มกราคม และ "lug" = กรกฎาคม

## หมายเหตุเพิ่มเติม

- ใช้ try...otherwise เพื่อจัดการกรณีที่แปลงไม่ได้ เช่น: try Date.FromText(TextValue) otherwise null

- ระบุ Culture อย่างชัดเจนเสมอ อย่าเชื่อ Culture.Current เพราะผู้ใช้อาจตั้งค่า culture ต่างกัน

- สำหรับ Format string ให้ใช้ .NET format (MMM ไม่ใช่ mmm, dd ไม่ใช่ d) เพื่อให้แม่นยำ

- ถ้าข้อมูลมีช่องว่างหรือตัวอักษรพิเศษ ใช้ Text.Trim ล้างข้อมูลก่อน Date.FromText

- สำหรับข้อมูลจากต่างประเทศ ให้เก็บรูปแบบวันที่ ISO (yyyy-MM-dd) ในระบบ จะง่ายต่อการทำงาน

## คำถามที่พบบ่อย

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

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

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

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

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

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

**Q: Culture=null ใช้ได้ไหม?**

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

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn: Date.FromText](https://learn.microsoft.com/en-us/powerquery-m/date-fromtext) _(official)_
- [.NET Custom Date and Time Format Strings](https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings) _(official)_

---

_Source: [https://www.thepexcel.com/functions/power-query/date-functions/date-fromtext/](https://www.thepexcel.com/functions/power-query/date-functions/date-fromtext/)_
