EOMONTH คืนค่าวันสิ้นเดือนของเดือนที่เลื่อนจาก StartDate ตามจำนวน Months (บวก/ลบได้) เหมาะกับการหาวันปิดงวด วันครบกำหนด และการจัดการช่วงเวลาแบบรายเดือน
=EOMONTH(<StartDate>, <Months>)
=EOMONTH(<StartDate>, <Months>)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| StartDate | date/datetime | Yes | วันที่อ้างอิงเริ่มต้น | |
| Months | number | Yes | จำนวนเดือนที่ต้องการเลื่อน (บวก=ไปข้างหน้า, ลบ=ย้อนหลัง) |
ใช้ EOMONTH(StartDate, 0) เพื่อได้วันสิ้นเดือนของ StartDate
เช่น สิ้นเดือนหน้า (Months=1) หรือสิ้นเดือนก่อน (Months=-1)
Month End Date = EOMONTH(Sales[OrderDate], 0)Month End Date =
EOMONTH(Sales[OrderDate], 0)
ได้วันสิ้นเดือนของ OrderDate ในแต่ละแถว
Next Month End = EOMONTH(TODAY(), 1)Next Month End =
EOMONTH(TODAY(), 1)
ได้วันสิ้นเดือนของเดือนถัดไปจากวันนี้
Three Months Ago End = EOMONTH(TODAY(), -3)Three Months Ago End =
EOMONTH(TODAY(), -3)
ได้วันสิ้นเดือนย้อนหลัง 3 เดือนจากเดือนปัจจุบัน
PrevMonth Sales Comparison = VAR CurrentMonthEnd = EOMONTH(MAX(Sales[OrderDate]), 0) VAR PrevMonthEnd = EOMONTH(MAX(Sales[OrderDate]), -1) RETURN CALCULATE( SUM…PrevMonth Sales Comparison =
VAR CurrentMonthEnd = EOMONTH(MAX(Sales[OrderDate]), 0)
VAR PrevMonthEnd = EOMONTH(MAX(Sales[OrderDate]), -1)
RETURN
CALCULATE(
SUM(Sales[Amount]),
Sales[OrderDate] <= PrevMonthEnd
)
ยอดขายรวมสำหรับเดือนก่อนหน้า
คืนค่าเป็นวันที่/เวลา (datetime) ซึ่งเป็นวันสุดท้ายของเดือนที่คำนวณได้ เช่น 31 มกราคม 2024, 29 กุมภาพันธ์ 2024 เป็นต้น
EOMONTH คืนวันสิ้นเดือนของเดือนที่เลื่อนเสมอ ส่วน EDATE เลื่อนวันที่ไปตามจำนวนเดือนโดยพยายามรักษาวันเดิมไว้ เช่น EDATE(31 Jan, 1) = 28 Feb แต่ EOMONTH(31 Jan, 1) = 29 Feb
ใช้ EOMONTH(date, -1) + 1 เพื่อหาวันต้นเดือนของเดือนปัจจุบัน เช่น EOMONTH(15 Jan, -1) + 1 = 1 Jan
ทั้งสองอย่างได้ แต่พฤติกรรมต่างกัน: ใน Calculated Column มันทำงานตามแต่ละแถว ใน Measure ต้องจัดการ Filter Context อย่างระมัดระวัง
โดยปกติเกิดจากค่า StartDate ไม่ใช่ datetime format หรือเป็น NULL ให้ใช้ IFERROR หรือ IF เพื่อตรวจสอบ เช่น IFERROR(EOMONTH(Sales[OrderDate], 1), “Invalid date”)
EOMONTH คืนค่าวัน “สิ้นเดือน” (datetime) โดยเริ่มจากวันที่ StartDate แล้วเลื่อนจำนวนเดือนตาม Months (บวก/ลบได้) ไม่ว่าวันอ้างอิงจะเป็นวันไหนในเดือนนั้น มันก็ยังคืนค่าเป็นวันสุดท้ายของเดือนเสมอ
ส่วนตัวผม EOMONTH เป็นฟังก์ชันที่มีประโยชน์สำหรับการจัดการข้อมูลตามงวดเวลา โดยเฉพาะการคำนวณวันครบกำหนดของบิล วันปิดงวดบัญชี หรือการรายงานตามปลายเดือน ต่างจาก EDATE ที่พยายามรักษาวันเดิมไว้ 😎