Thep Excel

ENDOFYEARชุดวันที่ของวันสิ้นปีในบริบทปัจจุบัน

ENDOFYEAR คืนตารางวันที่ของวันสิ้นปีตามบริบทวันที่ปัจจุบัน และรองรับการกำหนดวันสิ้นปีบัญชี เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อประเมินมาตรวัดที่วันสิ้นปี

fx
=ENDOFYEAR(<Dates>[, <YearEndDate>])

ความนิยม6/10
ความยาก3/10
ประโยชน์6/10

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
Dates column คอลัมน์วันที่จากตารางวันที่/ปฏิทิน หรือเรียกได้ว่า ‘ตารางวันที่’ ที่มีหลายแถวของวันที่ต่อเนื่อง
[YearEndDate]ไม่บังคับ text "12-31" วันสิ้นปีบัญชีในรูปแบบ “MM-DD” หรือ “M-D” โดยส่วนปีจะถูกละเลย (เช่น “03-31” สำหรับปีบัญชีที่สิ้นสุด 31 มีนาคม)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

ENDOFYEAR คืนค่าเป็น ‘ตารางของวันที่’ ที่มีวันสิ้นปีของบริบทวันที่ปัจจุบัน ใช้ประโยชน์สำหรับการคำนวณมาตรวัดแบบกึ่งบวก (semi-additive) เช่น ยอดคงเหลือธนาคาร คลังสินค้า หรือบัญชีลูกหนี้ที่ควรแสดงค่าณ จุดเวลาที่เจาะจง

ที่เจ๋งของ ENDOFYEAR คือความสามารถในการกำหนดวันสิ้นปีบัญชี ได้ ‘ยืดหยุ่น’ สำหรับองค์กรที่มีปีบัญชีแตกต่างจากปีปฏิทิน (เช่น สิ้นสุด 31 มีนาคม หรือ 30 มิถุนายน) ทำให้ไม่ต้องจำกัดอยู่แค่เดือนธันวาคมเท่านั้น

ส่วนตัวผม ENDOFYEAR เป็นหนึ่งในฟังก์ชันเวลาสำคัญที่ช่วยให้การรายงานทางการเงินแม่นยำ เพราะค่า snapshot มักจำเป็นต้องอยู่ที่จุดเวลาสุดท้ายของช่วงที่ประเมิน ไม่อย่างนั้นผลลัพธ์จะ ‘พลาด’ ค่าที่เกิดในวันสุดท้ายของปี

How it works

ประเมินมาตรวัด ณ วันสิ้นปี

เช่น ยอดคงเหลือสิ้นปีตามบริบทที่เลือก

รองรับปีบัญชี

กำหนด YearEndDate เพื่อให้วันสิ้นปีอิงปีบัญชี

Examples

ตัวอย่างที่ 1: ยอดคงเหลือสิ้นปี (ปีปฏิทิน)Balance at Year End = CALCULATE( [Balance], ENDOFYEAR('DimDate'[Date]) )

ENDOFYEAR คืนชุดวันที่ที่เป็นวันสิ้นปี จากนั้น CALCULATE ใช้ผลลัพธ์นี้เป็นตัวกรองเวลา เพื่อประเมินมาตรวัด [Balance] ที่วันเดียวนั้น

fx
Balance at Year End =
CALCULATE(
[Balance],
ENDOFYEAR('DimDate'[Date])
)

ผลลัพธ์ประเมิน [Balance] ที่วันสิ้นปี (31 ธันวาคม) ของบริบทปัจจุบัน
ตัวอย่างที่ 2: วันสิ้นปีบัญชีสิ้นสุด 31 มีนาคมBalance at Fiscal Year End = CALCULATE( [Balance], ENDOFYEAR('DimDate'[Date], "03-31") )

เมื่อระบุพารามิเตอร์ YearEndDate เป็น "03-31" ฟังก์ชันจะค้นหาวันที่ 31 มีนาคมในปีเดียวกับบริบทวันที่ปัจจุบัน แล้วคืนวันที่นั้นเป็นตารางสำหรับการกรอง

fx
Balance at Fiscal Year End =
CALCULATE(
[Balance],
ENDOFYEAR('DimDate'[Date], "03-31")
)

ผลลัพธ์ประเมินยอดคงเหลือที่วันสิ้นปีบัญชี (31 มีนาคม)
ตัวอย่างที่ 3: ดูตารางวันที่ที่ ENDOFYEAR คืนมา (Calculated Column)Year End Dates = ENDOFYEAR('DimDate'[Date])

เมื่อใช้ ENDOFYEAR ในคอลัมน์คำนวณ จะได้ตารางเป็นผลลัพธ์ โดยแต่ละแถวจะมีวันเดียว (วันสิ้นปี) ใช้ตรวจสอบการทำงานของฟังก์ชันได้

fx
Year End Dates =
ENDOFYEAR('DimDate'[Date])

ผลลัพธ์ได้ผลลัพธ์เป็นตารางวันที่ที่มีวันสิ้นปี สำหรับแต่ละแถวจะแสดงวันสิ้นปีของปีนั้น
ตัวอย่างที่ 4: เปรียบเทียบยอดสิ้นปีกับยอดเริ่มปีYear-over-Year Change = VAR EndBalance = CALCULATE([Balance], ENDOFYEAR('DimDate'[Date])) VAR StartBalance = CALCULATE([Balance], STARTOFYEAR('DimDate'[Date]))…

ใช้ VAR เก็บผลลัพธ์ของ ENDOFYEAR และ STARTOFYEAR จากนั้นคำนวณส่วนต่าง โดยวิธีนี้เข้าใจง่ายและไม่ต้องคำนวณ CALCULATE ซ้ำหลายครั้ง

fx
Year-over-Year Change =
VAR EndBalance = CALCULATE([Balance], ENDOFYEAR('DimDate'[Date]))
VAR StartBalance = CALCULATE([Balance], STARTOFYEAR('DimDate'[Date]))
RETURN
EndBalance – StartBalance

ผลลัพธ์ส่วนต่างระหว่างยอดคงเหลือสิ้นปีและต้นปี

FAQs

ENDOFYEAR ต่างจาก DATESYTD อย่างไร?+

ENDOFYEAR คืนเพียง 'วันเดียว' (วันสิ้นปี) ส่วน DATESYTD คืน 'ช่วงของวันที่' ตั้งแต่ต้นปีถึงวันปัจจุบัน จึงใช้ประโยชน์ต่างกัน: ENDOFYEAR สำหรับ snapshot ที่จุดเวลาสุดท้าย, DATESYTD สำหรับการสะสมตั้งแต่ต้นปี

ควรใช้อินพุต Dates จากตารางแบบไหน?+

ควรใช้คอลัมน์วันที่จากตารางวันที่ (date table) ที่ต่อเนื่องและถูกมาร์กเป็น 'Date Table' ในโมเดล Power BI หรือ Analysis Services เพื่อให้การคำนวณช่วงเวลาเชื่อถือได้และเร็ว

ถ้าไม่มี YearEndDate จะเป็นยังไง?+

ค่าเริ่มต้นคือ "12-31" (31 ธันวาคม) หมายความว่า ENDOFYEAR จะค้นหาวันสิ้นปีตามปีปฏิทินตามปกติ

เมื่อไหร่ควรใช้ ENDOFYEAR กับ CLOSINGBALANCEYEAR?+

ENDOFYEAR คืนตารางวันที่ที่สามารถใช้เป็นตัวกรองใน CALCULATE ส่วน CLOSINGBALANCEYEAR เป็นแบบ 'ลัดวงจร' ที่ประเมิน Expression ณ วันสิ้นปีโดยตรง หากต้องการควบคุมอย่างละเอียด ใช้ ENDOFYEAR, หากต้องการความสะดวก ใช้ CLOSINGBALANCEYEAR

ENDOFYEAR ใช้ได้กับ Calculated Column หรือไม่?+

ได้ แต่ต้องเข้าใจว่ากำลังทำงานในระบบ row context ดังนั้น ENDOFYEAR จะคืนตารางวันที่สำหรับแต่ละแถว ปกติใช้เพื่อตรวจสอบ หรือรวมกับ CONTAINS เพื่อเช็คว่าวันในแถวนั้นเป็นวันสิ้นปีหรือไม่

ถ้ากำหนด YearEndDate ที่ไม่มีข้อมูล จะเป็นอย่างไร?+

ENDOFYEAR จะค้นหาวันที่ใกล้เคียงที่สุดในตารางวันที่ของคุณ หากไม่มีข้อมูลเลยในวันที่กำหนด ผลลัพธ์อาจเป็นว่าง (BLANK) หรือคืนข้อผิดพลาด ดังนั้นตรวจสอบให้แน่ใจว่าข้อมูลครอบคลุมวันสิ้นปีที่ต้องการ

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ ENDOFYEAR จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้ENDOFYEARTime Intelligence
Time Intelligence (9)
CLOSINGBALANCEYEAR

ฟังก์ชันเวลา Intelligence ที่ประเมิน Expression ณ วันสิ้นปีของปีในบริบทปัจจุบัน รองรับปีบัญชี (Fiscal Year) และตัวกรองเพิ่มเติม เหมาะสำหรับมาตรวัด Semi-additive เช่น ยอดคงเหลือ ยอดเงินสด

DATESYTD

DATESYTD คืนตารางวันที่ของช่วงตั้งแต่ต้นปีถึงวันที่สุดท้ายที่มองเห็นใน Filter Context ใช้เป็นตัวกรองเวลาใน CALCULATE สำหรับการคำนวณยอดสะสมตั้งแต่ต้นปี รองรับทั้งปีปฏิทินและปีบัญชี (Fiscal Year) ด้วย YearEndDate argument

ENDOFMONTH

ENDOFMONTH คืนตารางวันที่ของวันสิ้นเดือนตามปฏิทิน เหมาะกับ Semi-Additive Calculations เช่น ยอดคงเหลือ, Inventory, หรือ Closing Balance ที่ต้องการ snapshot ณ สิ้นเดือน ไม่ว่าจะมีข้อมูลจริงในวันนั้นหรือไม่

ENDOFQUARTER

ENDOFQUARTER คืนตารางวันที่ของวันสิ้นไตรมาสตามบริบทวันที่ปัจจุบัน เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อประเมินมาตรวัด ณ วันสิ้นไตรมาส

ENDOFWEEK

ฟังก์ชัน ENDOFWEEK คืนตารางวันที่ที่แสดงวันสิ้นสุดของสัปดาห์ตามบริบทวันที่ปัจจุบัน ใช้สำหรับการวิเคราะห์ข้อมูลตามระดับสัปดาห์ และการเปรียบเทียบเมตริกส์ณวันปิดสัปดาห์

NEXTYEAR

NEXTYEAR คืนตารางวันที่ของปีถัดไปจากบริบทวันที่ปัจจุบัน มักใช้เป็นตารางตัวกรองใน CALCULATE เพื่อคำนวณค่าแบบ “ปีถัดไป”

PREVIOUSYEAR

PREVIOUSYEAR คืนตารางวันที่ของปีก่อนหน้า ตามบริบทวันที่ปัจจุบัน เหมาะสำหรับตัวชี้วัดแบบ Year-over-Year โดยนำตารางวันที่ไปใช้เป็นตัวกรองเวลา

STARTOFYEAR

STARTOFYEAR คืนตาราง 1 แถวที่มีวันที่วันแรกของปีในบริบทปัจจุบัน ใช้สำหรับ semi-additive measure เช่น inventory balance หรือเปรียบเทียบ year-to-date

TOTALYTD

TOTALYTD คำนวณยอดสะสมตั้งแต่ต้นปี (Year-to-Date) ของ expression ใดๆ โดยอิงจาก Date table และสามารถกำหนด fiscal year end date เพื่อรองรับปีงบประมาณที่ไม่ตรงกับปีปฏิทินได้
.
ส่วนตัวผมใช้บ่อยมากตอนต้องวิเคราะห์ยอดขาย KPI และรายงานทางการเงินที่ต้องการติดตามความก้าวหน้าตลอดทั้งปีครับ

Filter (1)
CALCULATE

CALCULATE เป็นฟังก์ชันหลักที่สำคัญที่สุดใน DAX ใช้สำหรับ evaluate expression ภายใต้ filter context ที่ถูกปรับเปลี่ยน สามารถเพิ่มตัวกรองใหม่ ลบตัวกรองเดิม หรือแทนที่ filter ที่มีอยู่ได้ รองรับทั้ง Boolean expression และ table expression เป็น filter arguments พร้อม filter modifier functions เช่น REMOVEFILTERS, ALL, ALLEXCEPT, KEEPFILTERS เพื่อควบคุมการกรองอย่างละเอียด มีพฤติกรรมพิเศษคือ context transition ที่เปลี่ยน row context เป็น filter context โดยอัตโนมัติ ทำให้เป็นเครื่องมือหลักในการสร้าง measure ที่ซับซ้อนและ calculated column ที่ต้องใช้ aggregation

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่