ENDOFYEAR คืนตารางวันที่ของวันสิ้นปีตามบริบทวันที่ปัจจุบัน และรองรับการกำหนดวันสิ้นปีบัญชี เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อประเมินมาตรวัดที่วันสิ้นปี
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| Dates | column | คอลัมน์วันที่จากตารางวันที่/ปฏิทิน หรือเรียกได้ว่า ‘ตารางวันที่’ ที่มีหลายแถวของวันที่ต่อเนื่อง | |
| [YearEndDate]ไม่บังคับ | text | "12-31" | วันสิ้นปีบัญชีในรูปแบบ “MM-DD” หรือ “M-D” โดยส่วนปีจะถูกละเลย (เช่น “03-31” สำหรับปีบัญชีที่สิ้นสุด 31 มีนาคม) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ENDOFYEAR คืนค่าเป็น ‘ตารางของวันที่’ ที่มีวันสิ้นปีของบริบทวันที่ปัจจุบัน ใช้ประโยชน์สำหรับการคำนวณมาตรวัดแบบกึ่งบวก (semi-additive) เช่น ยอดคงเหลือธนาคาร คลังสินค้า หรือบัญชีลูกหนี้ที่ควรแสดงค่าณ จุดเวลาที่เจาะจง
ที่เจ๋งของ ENDOFYEAR คือความสามารถในการกำหนดวันสิ้นปีบัญชี ได้ ‘ยืดหยุ่น’ สำหรับองค์กรที่มีปีบัญชีแตกต่างจากปีปฏิทิน (เช่น สิ้นสุด 31 มีนาคม หรือ 30 มิถุนายน) ทำให้ไม่ต้องจำกัดอยู่แค่เดือนธันวาคมเท่านั้น
ส่วนตัวผม ENDOFYEAR เป็นหนึ่งในฟังก์ชันเวลาสำคัญที่ช่วยให้การรายงานทางการเงินแม่นยำ เพราะค่า snapshot มักจำเป็นต้องอยู่ที่จุดเวลาสุดท้ายของช่วงที่ประเมิน ไม่อย่างนั้นผลลัพธ์จะ ‘พลาด’ ค่าที่เกิดในวันสุดท้ายของปี
เช่น ยอดคงเหลือสิ้นปีตามบริบทที่เลือก
กำหนด YearEndDate เพื่อให้วันสิ้นปีอิงปีบัญชี
ENDOFYEAR คืนชุดวันที่ที่เป็นวันสิ้นปี จากนั้น CALCULATE ใช้ผลลัพธ์นี้เป็นตัวกรองเวลา เพื่อประเมินมาตรวัด [Balance] ที่วันเดียวนั้น
เมื่อระบุพารามิเตอร์ YearEndDate เป็น "03-31" ฟังก์ชันจะค้นหาวันที่ 31 มีนาคมในปีเดียวกับบริบทวันที่ปัจจุบัน แล้วคืนวันที่นั้นเป็นตารางสำหรับการกรอง
เมื่อใช้ ENDOFYEAR ในคอลัมน์คำนวณ จะได้ตารางเป็นผลลัพธ์ โดยแต่ละแถวจะมีวันเดียว (วันสิ้นปี) ใช้ตรวจสอบการทำงานของฟังก์ชันได้
ใช้ VAR เก็บผลลัพธ์ของ ENDOFYEAR และ STARTOFYEAR จากนั้นคำนวณส่วนต่าง โดยวิธีนี้เข้าใจง่ายและไม่ต้องคำนวณ CALCULATE ซ้ำหลายครั้ง
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 จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
ฟังก์ชันเวลา Intelligence ที่ประเมิน Expression ณ วันสิ้นปีของปีในบริบทปัจจุบัน รองรับปีบัญชี (Fiscal Year) และตัวกรองเพิ่มเติม เหมาะสำหรับมาตรวัด Semi-additive เช่น ยอดคงเหลือ ยอดเงินสด
DATESYTD คืนตารางวันที่ของช่วงตั้งแต่ต้นปีถึงวันที่สุดท้ายที่มองเห็นใน Filter Context ใช้เป็นตัวกรองเวลาใน CALCULATE สำหรับการคำนวณยอดสะสมตั้งแต่ต้นปี รองรับทั้งปีปฏิทินและปีบัญชี (Fiscal Year) ด้วย YearEndDate argument
ENDOFMONTH คืนตารางวันที่ของวันสิ้นเดือนตามปฏิทิน เหมาะกับ Semi-Additive Calculations เช่น ยอดคงเหลือ, Inventory, หรือ Closing Balance ที่ต้องการ snapshot ณ สิ้นเดือน ไม่ว่าจะมีข้อมูลจริงในวันนั้นหรือไม่
ENDOFQUARTER คืนตารางวันที่ของวันสิ้นไตรมาสตามบริบทวันที่ปัจจุบัน เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อประเมินมาตรวัด ณ วันสิ้นไตรมาส
ฟังก์ชัน ENDOFWEEK คืนตารางวันที่ที่แสดงวันสิ้นสุดของสัปดาห์ตามบริบทวันที่ปัจจุบัน ใช้สำหรับการวิเคราะห์ข้อมูลตามระดับสัปดาห์ และการเปรียบเทียบเมตริกส์ณวันปิดสัปดาห์
NEXTYEAR คืนตารางวันที่ของปีถัดไปจากบริบทวันที่ปัจจุบัน มักใช้เป็นตารางตัวกรองใน CALCULATE เพื่อคำนวณค่าแบบ “ปีถัดไป”
PREVIOUSYEAR คืนตารางวันที่ของปีก่อนหน้า ตามบริบทวันที่ปัจจุบัน เหมาะสำหรับตัวชี้วัดแบบ Year-over-Year โดยนำตารางวันที่ไปใช้เป็นตัวกรองเวลา
STARTOFYEAR คืนตาราง 1 แถวที่มีวันที่วันแรกของปีในบริบทปัจจุบัน ใช้สำหรับ semi-additive measure เช่น inventory balance หรือเปรียบเทียบ year-to-date
TOTALYTD คำนวณยอดสะสมตั้งแต่ต้นปี (Year-to-Date) ของ expression ใดๆ โดยอิงจาก Date table และสามารถกำหนด fiscal year end date เพื่อรองรับปีงบประมาณที่ไม่ตรงกับปีปฏิทินได้
.
ส่วนตัวผมใช้บ่อยมากตอนต้องวิเคราะห์ยอดขาย KPI และรายงานทางการเงินที่ต้องการติดตามความก้าวหน้าตลอดทั้งปีครับ
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
อีเมลของคุณจะไม่ถูกเผยแพร่