Thep Excel

EDATE – คำนวณวันที่ห่างจากวันเริ่มต้นตามจำนวนเดือน

EDATE คืนค่าวันที่ที่ห่างจากวันเริ่มต้นตามจำนวนเดือนที่ระบุ ใช้สำหรับคำนวณวันครบกำหนด หรือวันกำหนดส่งแบบเดือนปกติ

=EDATE(<start_date>, <months>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
6/10

Difficulty
3/10

Usefulness
6/10

Syntax & Arguments

=EDATE(<start_date>, <months>)

Argument Type Required Default Description
start_date DateTime Yes วันที่เริ่มต้น สามารถใช้การอ้างอิง column หรือค่าวันที่เป็นข้อความ
months Integer Yes จำนวนเดือนที่ต้องการเพิ่มหรือลด ใช้ตัวเลขบวกสำหรับลงในอนาคต ตัวเลขลบสำหรับย้อนกลับไปในอดีต

How it works

หาวันครบกำหนดในอีก N เดือน

เช่น วันครบกำหนดชำระในอีก 2 เดือนจากวันเริ่ม

เลื่อนวันที่ไปเดือนก่อน/เดือนถัดไป

เช่น เทียบกับเดือนก่อนหน้าโดยเลื่อน -1 เดือน

Examples

คำนวณวันครบกำหนดสินเชื่อ 3 เดือน
EDATE([TransactionDate], 3)
ใช้ EDATE เพื่อหาวันที่ห่างจากวันลงนาม 3 เดือนพอดี หากลงนาม 15 มกราคม ก็ได้ 15 เมษายน
DAX Formula:

=EDATE([TransactionDate], 3)

Result:

วันที่ครบกำหนดสินเชื่อหลังจากลงนามสัญญา 3 เดือน

คำนวณวันส่งสินค้า (ย้อนหลัง 2 เดือน)
EDATE([OrderDate], -2)
ใช้ตัวเลขลบเพื่อหาวันที่ย้อนกลับ เหมาะสำหรับติดตามวงจรการผลิต
DAX Formula:

=EDATE([OrderDate], -2)

Result:

วันที่ก่อนสั่งซื้อ 2 เดือน

สร้าง Measure สำหรับหารวมรายได้ที่ครบกำหนด
Revenue Next Month = CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[DueDate] = EDATE(TODAY(), 1)))
ใช้ EDATE ร่วมกับ CALCULATE และ FILTER เพื่อหารายได้ที่ต้องส่งในเดือนหน้า
DAX Formula:

Revenue Next Month = CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[DueDate] = EDATE(TODAY(), 1)))

Result:

รวมรายได้ที่กำหนดส่งในเดือนถัดไป

ตัวอย่างกับค่าวันที่เป็นข้อความ
EDATE("2024-01-31", 1)
เมื่อเดือนหน้าน้อยกว่า 31 วัน EDATE จะปัดเศษให้เป็นวันสุดท้ายของเดือน
DAX Formula:

=EDATE("2024-01-31", 1)

Result:

2024-02-29 (ในปีอุ่นลุง)

FAQs

EDATE ต่างกับ EOMONTH อย่างไร?

EDATE เก็บวันที่เดิมไว้ (31 มกราคม + 1 เดือน = 28 กุมภาพันธ์) แต่ EOMONTH จะปัดเศษเป็นวันสุดท้ายของเดือนเสมอ ใช้ EDATE เมื่อต้องการรักษาวันที่ของเดือน

ใช้กับ Power BI ได้ไหม?

ได้ EDATE ใช้งานได้ในทุก DAX environment เช่น Power BI Desktop, Power BI Service (Calculated columns เท่านั้น), SQL Server Analysis Services, และ Azure Analysis Services

ถ้า months ไม่ใช่จำนวนเต็มจะเป็นยังไง?

DAX จะตัดส่วนทศนิยมทิ้ง ตัวอย่างเช่น months = 1.9 จะถือว่า 1 เดือน

ใช้ได้กับ DirectQuery ไหม?

ไม่ได้ EDATE ไม่รองรับ DirectQuery mode สำหรับ calculated columns หรือ RLS rules

หากวันที่เริ่มต้นเป็นวันสุดท้ายของเดือน เช่น 31 มกราคม จะเป็นยังไง?

ถ้าเดือนถัดไปมีวันน้อยกว่า 31 วัน EDATE จะให้วันสุดท้ายของเดือนนั้น (เช่น 28 หรือ 29 กุมภาพันธ์)

Resources & Related

Additional Notes

EDATE เป็นฟังก์ชันวันที่ที่ถูกออกแบบมาเพื่อหาวันที่ห่างออกไปตามจำนวนเดือนที่ระบุ เหมาะสำหรับการคำนวณวันครบกำหนดสินเชื่อ วันส่งมอบสินค้า หรือวันหมดอายุสัญญา

สิ่งที่เจ๋งของ EDATE คือมันเก็บวันที่เดิมไว้ เช่น ถ้าคุณมี 31 มกราคม และเพิ่ม 1 เดือน EDATE จะให้ 28 กุมภาพันธ์ (หรือ 29 ในปีอุ่นลุง) ซึ่งต่างจาก EOMONTH ที่จะปัดเศษเป็นวันสุดท้ายของเดือนเสมอ

ส่วนตัวผม EDATE มีประโยชน์มากเมื่อต้องการวันที่ที่ตรงตามกำหนดเดือน เช่นสัญญาจ่ายรายเดือน หากปล่อยสินเชื่อวันที่ 15 ของเดือน ใช้ EDATE ก็จะได้วันที่ 15 ของเดือนถัดไป ไม่ต้องกังวลว่าเดือนไหนจะมีวันน้อยกว่า

Leave a Reply

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