Thep Excel

DATE – สร้างวันที่จากปี เดือน วัน

DATE สร้างค่าวันที่จากตัวเลข Year/Month/Day แล้วคืนค่าเป็นชนิด datetime เหมาะกับการประกอบวันที่จากคอลัมน์แยกส่วนหรือสร้างวันที่อ้างอิง เช่น วันแรกของเดือน วันตัดยอด

=DATE(<Year>, <Month>, <Day>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
8/10

Difficulty
2/10

Usefulness
8/10

Syntax & Arguments

=DATE(<Year>, <Month>, <Day>)

Argument Type Required Default Description
Year Integer Yes ปี เช่น 2025 หรือ 25 (ค่า 0-49 ถูกตีความว่า 2000-2049, 50-99 ถูกตีความว่า 1900-1999)
Month Integer Yes เดือน (1-12) ค่าเกิน 12 จะเลื่อนไปปีถัดไป เช่น เดือน 14 = เดือนที่ 2 ของปีถัดไป
Day Integer Yes วัน (1-31) ค่าเกินจำนวนวันในเดือน จะเลื่อนไปเดือนถัดไป เช่น 35 มกราคม = 4 กุมภาพันธ์

How it works

สร้างวันเริ่มต้นของเดือน

เช่น สร้างวันที่ของวันแรกในเดือนที่ระบุ

ประกอบวันที่จากคอลัมน์ปีและเดือน

เช่น มี Year/Month แยกคอลัมน์ ต้องการสร้างวันที่เพื่อเชื่อมกับตารางวันที่

Examples

ตัวอย่างที่ 1: สร้างวันที่แบบคงที่ (Reference Date)
Cutoff Date = DATE(2025, 12, 31)
ใช้สร้างวันอ้างอิงคงที่ เช่น วันตัดยอดปี วันเปิดต้นปี เหมาะสำหรับเปรียบเทียบการณ์ "ก่อน/หลัง" วันที่ระบุ
DAX Formula:

Cutoff Date =
DATE(2025, 12, 31)

Result:

31/12/2025

ตัวอย่างที่ 2: ประกอบวันที่จากคอลัมน์ Year/Month/Day
Start Date = DATE(Orders[Year], Orders[Month], 1)
เมื่อข้อมูลมี Year, Month แยกกัน ใช้ DATE สร้างวันที่จริงเพื่อวิเคราะห์ตามเวลา (time-based analysis) หรือสร้าง Date Dimension
DAX Formula:

Start Date = 
DATE(Orders[Year], Orders[Month], 1)

Result:

วันแรกของเดือนตามข้อมูลในแต่ละแถว

ตัวอย่างที่ 3: สร้าง Date Table ด้วย CALENDAR
DateTable = CALENDAR( DATE(2024, 1, 1), DATE(2024, 12, 31) )
DATE ช่วยกำหนดช่วงวันเริ่มต้นและสิ้นสุดให้ชัดเจน ส่วน CALENDAR จะสร้างแถวสำหรับทุกวันในช่วง
DAX Formula:

DateTable = 
CALENDAR(
    DATE(2024, 1, 1),
    DATE(2024, 12, 31)
)

Result:

ตารางวันที่ทั้งปี 2024 (365 แถว)

ตัวอย่างที่ 4: การจัดการ Overflow (เดือนเกิน)
Next Month Date = DATE(Sales[Year], Sales[Month] + 1, 1)
DATE โดยอัตโนมัติหมุนปีเมื่อเดือนเกิน 12 ไม่ต้องใช้ IF เพื่อจัดการพิเศษ
DAX Formula:

Next Month Date = 
DATE(Sales[Year], Sales[Month] + 1, 1)

Result:

วันแรกของเดือนถัดไป (หากเดือน = 12 ก็จะเป็น 1/1 ปีถัดไป)

ตัวอย่างที่ 5: การจัดการ Day Overflow (วันเกิน)
Last Day = DATE(2025, 2, 35)
ขอวันที่ 35 กุมภาพันธ์ → DAX เลื่อนไปมีนาคม (Feb มี 28 วัน + 7 = March 7) เหมาะสำหรับคำนวณ "วันต่อจากนี้ไป N วัน"
DAX Formula:

Last Day = 
DATE(2025, 2, 35)

Result:

7/3/2025

FAQs

ถ้า Month หรือ Day เกินช่วง DAX จะประมวลผลอย่างไร?

DAX จัดการ overflow โดยหมุนไปหน่วยที่สูงกว่า เช่น เดือน 13 → เดือน 1 ปีถัดไป, วันที่ 32 มกราคม → 1 กุมภาพันธ์ ซึ่งมีประโยชน์ในการคำนวณตัวอักษรแบบไดนามิก

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

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

DATE รองรับ DirectQuery ไหม?

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

หากใส่ค่าทศนิยม เช่น DATE(2025, 12, 25.7) จะเป็นอย่างไร?

DAX จะปัดเศษให้เป็นจำนวนเต็มก่อน ดังนั้น 25.7 ≈ 26 ถ้าหากต้องการความแม่นยำ ควรปัดเศษล่วงหน้าด้วย INT() หรือ ROUND()

ปีเดือนวัน 0 หรือค่าลบจะเป็นอย่างไร?

ค่า 0 หรือลบจะทำให้เกิด error ในบางกรณี ควรตรวจสอบข้อมูล input ให้ถูกต้องโดยใช้ IF หรือ IFERROR

Resources & Related

Additional Notes

DATE ใช้สร้างค่าวันที่จากตัวเลข ปี (Year) เดือน (Month) และวัน (Day) แล้วคืนค่าเป็นชนิดวันที่/เวลา (datetime).

ที่เจ๋งของ DATE คือมันสามารถจัดการ overflow อัตโนมัติ เช่น ถ้าบอกให้สร้างวันที่ “เดือนที่ 14” มันจะหมุนไปปีถัดไปเองโดยไม่ error ซึ่งทำให้สร้างการคำนวณโดยไม่ต้องกังวลเรื่อง edge case

ส่วนตัวผมคิดว่า DATE ถูกใช้บ่อยที่สุดเมื่อมีข้อมูล Year/Month/Day แยกกันในตาราง หรือต้องการสร้างวันที่คงที่สำหรับการเปรียบเทียบ เช่น วันสิ้นปี วันตัดยอด แล้วใช้ร่วมกับ CALENDAR เพื่อสร้าง Date Table 😎

Leave a Reply

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