---
title: DATEVALUE – แปลงข้อความวันที่เป็นชนิด datetime
url: https://www.thepexcel.com/functions/dax/date-and-time/datevalue-dax/
type: function-explainer
program: DAX
syntax: "DATEVALUE(<DateText>)"
date: 2025-12-13
updated: 2025-12-24
scores:
  popularity: 6
  difficulty: 3
  usefulness: 6
---

# DATEVALUE – แปลงข้อความวันที่เป็นชนิด datetime

> DATEVALUE แปลงข้อความวันที่ (text) ให้เป็น datetime โดยอ้างอิงตามการตั้งค่า locale ของ model เหมาะกั

## คำอธิบาย

DATEVALUE แปลงข้อความวันที่ (text) ให้เป็น datetime โดยอ้างอิงตามการตั้งค่า locale ของ model เหมาะกับข้อมูลวันที่ที่เก็บเป็นข้อความและต้องแปลงเป็นวันที่จริงเพื่อการคำนวณตามเวลา

## Syntax

```excel
DATEVALUE(&lt;DateText&gt;)
```

**Variant**

```excel
DATEVALUE(&lt;DateText&gt;)
```

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

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| DateText | Yes | Text |  | ข้อความที่เป็นวันที่ เช่น "2025-12-31", "31/12/2025", "12/31/2025" ระบบจะตีความตามรูปแบบ locale ของ model |

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

### แปลงคอลัมน์วันที่ที่เป็นข้อความจากการนำเข้า

เช่น วันที่ถูกนำเข้ามาเป็น string ต้องแปลงเพื่อทำ Time Intelligence

_เหมาะกับ:_ convert-imported-date-text

### ทำความสะอาดข้อมูลก่อนคำนวณระยะเวลา

แปลงข้อความวันที่ให้เป็นวันที่จริงก่อนใช้กับสูตรวัดระยะเวลา

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

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: แปลงข้อความวันที่แบบคงที่

```excel
Parsed Date =
DATEVALUE("2025-12-31")
```

**ผลลัพธ์:** `31/12/2025 (datetime type)`

แปลงข้อความ "2025-12-31" ให้เป็น datetime type ที่สามารถใช้ในการคำนวณตามเวลาได้ เช่น การเปรียบเทียบวันที่ หรือการคำนวณจำนวนวันระหว่างวันที่

### 2. ตัวอย่างที่ 2: แปลงคอลัมน์วันที่ที่เป็นข้อความ

```excel
Order Date (Parsed) =
DATEVALUE(Orders[OrderDateText])
```

**ผลลัพธ์:** `ได้คอลัมน์ datetime ที่สามารถใช้ link กับ Date Table`

เมื่อข้อมูล import มาวันที่อยู่ในคอลัมน์ string เช่น OrderDateText ใช้ DATEVALUE ในคอลัมน์ calculated เพื่อแปลงทุกแถว แล้วตั้งเป็น Foreign Key ไปยัง Date Table

### 3. ตัวอย่างที่ 3: ใช้ร่วมกับ DATEDIFF หลังแปลงวันที่

```excel
Days Between (Parsed) =
DATEDIFF(
    DATEVALUE(Orders[StartDateText]),
    DATEVALUE(Orders[EndDateText]),
    DAY
)
```

**ผลลัพธ์:** `จำนวนวันระหว่างวันที่ที่เคยเป็นข้อความ (เช่น 10)`

แปลงวันที่จากข้อความทั้งสองคอลัมน์ก่อน แล้วค่อยใช้ DATEDIFF คำนวณระยะห่างระหว่างสองวันที่ โดยระบุหน่วยเป็น DAY เพื่อให้ได้ผลลัพธ์เป็นจำนวนวัน

### 4. ตัวอย่างที่ 4: Fallback behavior - ตีความหลายรูปแบบ

```excel
Test Dates =
DATEVALUE("5/4/2018") → ถูกตีความ May 4
DATEVALUE("20/4/2018") → ถูกตีความ April 20 (intelligent fallback)
DATEVALUE("4-5-2018") → ยอนหนี้ไปใช้รูปแบบ M-D-Y ก็ได้
```

**ผลลัพธ์:** `วันที่ datetime แต่ละอันแม้รูปแบบไม่ตรงกับ locale`

DATEVALUE มีฟังก์ชันการยอนหนี้ที่ฉลาด ถ้ารูปแบบ locale ไม่ตรง มันจะลองวิธีอื่นเอง โดยตัวอย่าง "20/4/2018" ไม่อาจเป็น May 20 (ถ้า M/D/Y locale) เพราะเดือนไม่มี 20 ดังนั้นโปรแกรมจึงตีความให้เป็น April 20 อัตโนมัติ

### 5. ตัวอย่างที่ 5: ใช้กับ CALCULATE เพื่อกำหนด filter context

```excel
Sales Until Date =
VAR TargetDate = DATEVALUE("2025-12-31")
RETURN
CALCULATE(
    SUM(Sales[Amount]),
    Sales[OrderDate] <= TargetDate
)
```

**ผลลัพธ์:** `ยอด Sales สำหรับ orders ที่วันที่ <= 2025-12-31`

แปลงข้อความเป็น datetime แล้วใช้ใน CALCULATE เพื่อ override filter context โดยเปรียบเทียบกับคอลัมน์ OrderDate ที่เป็น datetime จริงแล้ว ซึ่งทำให้สามารถกำหนด cutoff date แบบไดนามิก

### 6. ตัวอย่างที่ 6: วันที่ที่ละเว้นปี

```excel
This Year Date =
DATEVALUE("12/25") // ไม่มีปี
```

**ผลลัพธ์:** `25/12/[Current Year] (system current year)`

ถ้าข้อความไม่มีปี DATEVALUE จะใช้ปีจากนาฬิการะบบของเครื่องปัจจุบัน โดยทั่วไปไม่ต้องใช้แบบนี้เพราะสูตรอาจให้ผลไม่แน่นอนตามเวลา

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

- ถ้าข้อมูลวันที่มาจากระบบอื่น (CSV, API) โดยเก็บเป็นข้อความ ให้ทำความสะอาดข้อมูลใน Power Query ก่อน แล้วจึงใช้ DATEVALUE ในโมเดล

- ใช้รูปแบบ ISO "YYYY-MM-DD" แทนรูปแบบ M/D/Y หรือ D/M/Y ถ้าต้องการลดความสับสนเกี่ยวกับ locale

- ใช้ IFERROR(DATEVALUE(...), TODAY()) เพื่อจัดการข้อมูลที่แปลงไม่ได้ และให้ค่า default (เช่น TODAY())

- สำหรับ time information ใช้ DATETIMEVALUE หรือ TIMEVALUE แยกต่างหาก เพราะ DATEVALUE เพิกเฉยต่อเวลา

- ถ้าใช้ DATEVALUE ในคอลัมน์ calculated ให้ตั้งข้อมูลทั้งคอลัมน์เป็น Foreign Key ไปยัง Date Table เพื่อเอาประโยชน์จากโครงสร้างเวลา (time intelligence)

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

**Q: ทำไม DATEVALUE บางครั้งแปลงไม่ได้ หรือแสดง error?**

มักเกิดจากข้อความไม่ใช่รูปแบบวันที่ที่ถูกต้อง (เช่น "abc", "13/32/2025") หรือรูปแบบไม่สามารถตีความได้แม้ว่า fallback ก็ตาม ควรตรวจสอบข้อมูล input และใช้ IFERROR เพื่อจัดการ error หรือข้อมูลที่ไม่ชัดเจน

**Q: DATEVALUE ต่างจาก DATE อย่างไร?**

DATEVALUE แปลงจากข้อความ (text) ส่วน DATE สร้างวันที่จากตัวเลข Year/Month/Day ถ้าข้อมูลต้นฉบับเป็นข้อความใช้ DATEVALUE ถ้าเป็นตัวเลขแยกกันใช้ DATE

**Q: Locale เป็นอะไร และมีผลต่อ DATEVALUE อย่างไร?**

Locale คือการตั้งค่าภูมิศาสตร์/ภาษาของ model เช่น en-US (M/D/Y), en-GB (D/M/Y), th-TH เป็นต้น DATEVALUE ใช้ locale นี้เพื่อตีความรูปแบบวันที่ "1/2/2025" อาจเป็น January 2 หรือ February 1 ขึ้นอยู่ locale ดังนั้นถ้าข้อมูลมาจากนอกประเทศต้องระวัง

**Q: DATEVALUE ต่างจาก TIMEVALUE อย่างไร?**

DATEVALUE แปลงข้อความเป็นวันที่ส่วน TIMEVALUE แปลงข้อความเป็นเวลา (time only) ถ้าต้องการ timestamp เต็มควรใช้ DATEVALUE

**Q: ถ้า DateText มีเวลาด้วยเช่น "2025-12-31 14:30:00" จะเป็นอย่างไร?**

DATEVALUE จะเพิกเฉยต่อส่วนเวลา ดังนั้น "2025-12-31 14:30:00" จะแปลงเป็น 31/12/2025 (เลิกไปส่วน 14:30:00) ถ้าต้องเวลาด้วยต้องใช้ DATETIMEVALUE หรือ TIMEVALUE แยกต่างหาก

**Q: สามารถใช้ Literal date syntax แทน DATEVALUE ได้ไหม?**

ใช่ DAX รองรับ literal date syntax เช่น dt"2025-12-31" ซึ่งชัดเจนกว่าและไม่ต้องใช้ DATEVALUE สำหรับวันที่คงที่ แต่สำหรับข้อมูลจากคอลัมน์ยังต้องใช้ DATEVALUE

**Q: DATEVALUE รองรับ DirectQuery ไหม?**

ใช่ DATEVALUE รองรับ DirectQuery สำหรับ measures และ calculated columns ในทุกโหมด Power BI, Excel, SSAS Tabular, Azure Analysis Services

## ฟังก์ชันที่เกี่ยวข้อง

- [DATE – สร้างวันที่จากปี เดือน วัน](https://www.thepexcel.com/functions/dax/date-and-time/date-dax/)
- datediff
- format
- [ฟังก์ชัน YEAR ใน DAX](https://www.thepexcel.com/functions/dax/date-and-time/year-dax/)
- [MONTH (DAX) – ดึงเลขเดือนจากค่า datetime](https://www.thepexcel.com/functions/dax/date-and-time/month-dax/)
- [DAY – ดึงเลขวัน (1–31) จากวันที่](https://www.thepexcel.com/functions/dax/date-and-time/day-dax/)

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

- [Microsoft Learn: DATEVALUE Function](https://learn.microsoft.com/en-us/dax/datevalue-function-dax) _(official)_
- [DAX Guide: DATEVALUE](https://dax.guide/datevalue/) _(guide)_
- [Microsoft Learn: DATE Function (สำหรับเปรียบเทียบ)](https://learn.microsoft.com/en-us/dax/date-function-dax) _(official)_

---

_Source: [https://www.thepexcel.com/functions/dax/date-and-time/datevalue-dax/](https://www.thepexcel.com/functions/dax/date-and-time/datevalue-dax/)_
