ENDOFYEAR คืนตารางวันที่ของวันสิ้นปีตามบริบทวันที่ปัจจุบัน และรองรับการกำหนดวันสิ้นปีบัญชี เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อประเมินมาตรวัดที่วันสิ้นปี
=ENDOFYEAR(<Dates>[, <YearEndDate>])
=ENDOFYEAR(<Dates>[, <YearEndDate>])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Dates | column | Yes | คอลัมน์วันที่จากตารางวันที่/ปฏิทิน หรือเรียกได้ว่า ‘ตารางวันที่’ ที่มีหลายแถวของวันที่ต่อเนื่อง | |
| YearEndDate | text | Optional | "12-31" | วันสิ้นปีบัญชีในรูปแบบ “MM-DD” หรือ “M-D” โดยส่วนปีจะถูกละเลย (เช่น “03-31” สำหรับปีบัญชีที่สิ้นสุด 31 มีนาคม) |
เช่น ยอดคงเหลือสิ้นปีตามบริบทที่เลือก
กำหนด YearEndDate เพื่อให้วันสิ้นปีอิงปีบัญชี
Balance at Year End = CALCULATE( [Balance], ENDOFYEAR('DimDate'[Date]) )Balance at Year End =
CALCULATE(
[Balance],
ENDOFYEAR('DimDate'[Date])
)
ประเมิน [Balance] ที่วันสิ้นปี (31 ธันวาคม) ของบริบทปัจจุบัน
Balance at Fiscal Year End = CALCULATE( [Balance], ENDOFYEAR('DimDate'[Date], "03-31") )Balance at Fiscal Year End =
CALCULATE(
[Balance],
ENDOFYEAR('DimDate'[Date], "03-31")
)
ประเมินยอดคงเหลือที่วันสิ้นปีบัญชี (31 มีนาคม)
Year End Dates = ENDOFYEAR('DimDate'[Date])Year End Dates =
ENDOFYEAR('DimDate'[Date])
ได้ผลลัพธ์เป็นตารางวันที่ที่มีวันสิ้นปี สำหรับแต่ละแถวจะแสดงวันสิ้นปีของปีนั้น
Year-over-Year Change = VAR EndBalance = CALCULATE([Balance], ENDOFYEAR('DimDate'[Date])) VAR StartBalance = CALCULATE([Balance], STARTOFYEAR('DimDate'[Date]))…Year-over-Year Change =
VAR EndBalance = CALCULATE([Balance], ENDOFYEAR('DimDate'[Date]))
VAR StartBalance = CALCULATE([Balance], STARTOFYEAR('DimDate'[Date]))
RETURN
EndBalance - StartBalance
ส่วนต่างระหว่างยอดคงเหลือสิ้นปีและต้นปี
ENDOFYEAR คืนเพียง ‘วันเดียว’ (วันสิ้นปี) ส่วน DATESYTD คืน ‘ช่วงของวันที่’ ตั้งแต่ต้นปีถึงวันปัจจุบัน จึงใช้ประโยชน์ต่างกัน: ENDOFYEAR สำหรับ snapshot ที่จุดเวลาสุดท้าย, DATESYTD สำหรับการสะสมตั้งแต่ต้นปี
ควรใช้คอลัมน์วันที่จากตารางวันที่ (date table) ที่ต่อเนื่องและถูกมาร์กเป็น ‘Date Table’ ในโมเดล Power BI หรือ Analysis Services เพื่อให้การคำนวณช่วงเวลาเชื่อถือได้และเร็ว
ค่าเริ่มต้นคือ “12-31” (31 ธันวาคม) หมายความว่า ENDOFYEAR จะค้นหาวันสิ้นปีตามปีปฏิทินตามปกติ
ENDOFYEAR คืนตารางวันที่ที่สามารถใช้เป็นตัวกรองใน CALCULATE ส่วน CLOSINGBALANCEYEAR เป็นแบบ ‘ลัดวงจร’ ที่ประเมิน Expression ณ วันสิ้นปีโดยตรง หากต้องการควบคุมอย่างละเอียด ใช้ ENDOFYEAR, หากต้องการความสะดวก ใช้ CLOSINGBALANCEYEAR
ได้ แต่ต้องเข้าใจว่ากำลังทำงานในระบบ row context ดังนั้น ENDOFYEAR จะคืนตารางวันที่สำหรับแต่ละแถว ปกติใช้เพื่อตรวจสอบ หรือรวมกับ CONTAINS เพื่อเช็คว่าวันในแถวนั้นเป็นวันสิ้นปีหรือไม่
ENDOFYEAR จะค้นหาวันที่ใกล้เคียงที่สุดในตารางวันที่ของคุณ หากไม่มีข้อมูลเลยในวันที่กำหนด ผลลัพธ์อาจเป็นว่าง (BLANK) หรือคืนข้อผิดพลาด ดังนั้นตรวจสอบให้แน่ใจว่าข้อมูลครอบคลุมวันสิ้นปีที่ต้องการ
ENDOFYEAR คืนค่าเป็น ‘ตารางของวันที่’ ที่มีวันสิ้นปีของบริบทวันที่ปัจจุบัน ใช้ประโยชน์สำหรับการคำนวณมาตรวัดแบบกึ่งบวก (semi-additive) เช่น ยอดคงเหลือธนาคาร คลังสินค้า หรือบัญชีลูกหนี้ที่ควรแสดงค่าณ จุดเวลาที่เจาะจง
ที่เจ๋งของ ENDOFYEAR คือความสามารถในการกำหนดวันสิ้นปีบัญชี ได้ ‘ยืดหยุ่น’ สำหรับองค์กรที่มีปีบัญชีแตกต่างจากปีปฏิทิน (เช่น สิ้นสุด 31 มีนาคม หรือ 30 มิถุนายน) ทำให้ไม่ต้องจำกัดอยู่แค่เดือนธันวาคมเท่านั้น
ส่วนตัวผม ENDOFYEAR เป็นหนึ่งในฟังก์ชันเวลาสำคัญที่ช่วยให้การรายงานทางการเงินแม่นยำ เพราะค่า snapshot มักจำเป็นต้องอยู่ที่จุดเวลาสุดท้ายของช่วงที่ประเมิน ไม่อย่างนั้นผลลัพธ์จะ ‘พลาด’ ค่าที่เกิดในวันสุดท้ายของปี