ฟังก์ชัน ENDOFWEEK คืนตารางวันที่ที่แสดงวันสิ้นสุดของสัปดาห์ตามบริบทวันที่ปัจจุบัน ใช้สำหรับการวิเคราะห์ข้อมูลตามระดับสัปดาห์ และการเปรียบเทียบเมตริกส์ณวันปิดสัปดาห์
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| Calendar | Column | คอลัมน์วันที่จาก Marked Date Table ที่ต้องมีคุณสมบัติปฏิทินมาตรฐาน (Year, Month, Week, Day เป็นต้น) |
ENDOFWEEK เป็นฟังก์ชันเวลาหลักของ DAX ที่ส่งคืนตารางวันที่ (Date Table) ของวันสิ้นสัปดาห์ในบริบทวันที่ปัจจุบัน แต่ต่างจากการเขียน Formula ทั่วไป มันทำงานด้วย “Context Transition” ซึ่งหมายความว่า มันเปลี่ยนจาก Row Context ไปเป็น Filter Context โดยอัตโนมัติ
ส่วนที่เจ๋งคือ ENDOFWEEK ใช้ประโยชน์จาก “Marked Date Table” ของคุณ ซึ่งต้องมี Column ที่ Standard หลายชั้น (Year, Month, Week, etc.) เซ็ตไว้แล้ว ตัวฟังก์ชันจึงรู้ว่า “วันสิ้นสัปดาห์” คือวันไหน
ส่วนตัวผม คิดว่า ENDOFWEEK เป็นตัวช่วยที่สำคัญสำหรับการวิเคราะห์ KPI รายสัปดาห์ เพราะว่า บ่อยครั้งเจ้าของธุรกิจอยากเห็นตัวเลข “ณ วันปิดสัปดาห์” แล้วเปรียบเทียบกับสัปดาห์ที่แล้ว นั่นคือการใช้งาน ENDOFWEEK อย่างแท้จริง
เช่น ยอด/จำนวน ณ จุดปิดสัปดาห์
สรุปผลรายสัปดาห์ที่อิงวันสิ้นสัปดาห์
ENDOFWEEK คืนตาราง Date ที่มีเพียงวันเดียว (วันสิ้นสัปดาห์) แล้ว CALCULATE ใช้เป็น Filter ทำให้สรุปข้อมูลได้ถูกต้อง
VAR ช่วยเก็บผลลัพธ์ระหว่างทาง ENDOFWEEK ทำงานร่วมกับ DATEADD เพื่อเปรียบเทียบสัปดาห์ที่ต่างกัน
ใช้เมื่อต้องการตรวจสอบว่า ENDOFWEEK คืนข้อมูลอะไรจริง ๆ
ขึ้นอยู่กับ Marked Date Table ของคุณ ส่วนมากจะเป็นวันเสาร์หรือวันอาทิตย์ คุณสามารถเปลี่ยนได้ในการตั้งค่า Date Table หรือใช้ STARTOFWEEK พร้อม return_type พารามิเตอร์
ENDOFMONTH หาวันสิ้นเดือน (ซึ่งเป็นวันสุดท้ายของเดือนเสมอ เช่น 31 มีนาคม) ส่วน ENDOFWEEK หาวันสิ้นสัปดาห์ (ซึ่งเป็นวันที่เปลี่ยนแปลงตามสัปดาห์)
ENDOFWEEK คืนเพียงวันเดียว (วันสิ้นสัปดาห์) ส่วน DATESWTD คืนช่วงวันตั้งแต่ต้นสัปดาห์ถึงวันปัจจุบัน (หลายแถว)
เพราะว่า DAX ต้องรู้ว่าตารางใดเป็นตารางวันที่ เพื่อให้สามารถใช้ฟังก์ชันเวลาต่าง ๆ ได้ ถ้าไม่มี Marked Date Table ฟังก์ชันนี้จะหาระยะเวลาไม่ได้
ฟังก์ชันที่ผู้เขียนโยงไว้กับ ENDOFWEEK จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
CLOSINGBALANCEWEEK ประเมินนิพจน์ (มาตรวัด) ที่วันสิ้นสัปดาห์ของบริบทวันที่ปัจจุบัน สำคัญสำหรับรายงานปิดสัปดาห์และ snapshot ยอดคงเหลือ
DATEADD คืนค่าตารางวันที่ ที่ถูกเลื่อนออกไปจากช่วงวันที่ใน Context ปัจจุบัน ตามจำนวน (NumberOfIntervals) และหน่วย (Interval) ที่กำหนด เช่น เลื่อนย้อนหลัง 1 เดือน หรือเลื่อนไปข้างหน้า 1 ปี
DATESWTD คืนตารางวันที่ตั้งแต่ต้นสัปดาห์จนถึงวันที่ในบริบทปัจจุบัน ใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อคำนวณยอดสะสมตั้งแต่ต้นสัปดาห์
ENDOFMONTH คืนตารางวันที่ของวันสิ้นเดือนตามปฏิทิน เหมาะกับ Semi-Additive Calculations เช่น ยอดคงเหลือ, Inventory, หรือ Closing Balance ที่ต้องการ snapshot ณ สิ้นเดือน ไม่ว่าจะมีข้อมูลจริงในวันนั้นหรือไม่
ENDOFQUARTER คืนตารางวันที่ของวันสิ้นไตรมาสตามบริบทวันที่ปัจจุบัน เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อประเมินมาตรวัด ณ วันสิ้นไตรมาส
ENDOFYEAR คืนตารางวันที่ของวันสิ้นปีตามบริบทวันที่ปัจจุบัน และรองรับการกำหนดวันสิ้นปีบัญชี เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อประเมินมาตรวัดที่วันสิ้นปี
NEXTWEEK คืนตารางวันที่ของสัปดาห์ถัดไปจากบริบทวันที่ปัจจุบัน มักใช้เป็นตารางตัวกรองใน CALCULATE เพื่อคำนวณค่าแบบ "สัปดาห์ถัดไป"
OPENINGBALANCEWEEK ประเมิน Expression ณ จุดเปิดสัปดาห์ (คือวันสิ้นสัปดาห์ก่อนหน้า) ใช้เพื่อเปรียบเทียบค่าเปลี่ยนแปลงระหว่างเปิดและปิดสัปดาห์
PREVIOUSWEEK คืนตารางวันที่ของสัปดาห์ก่อนหน้า ตามบริบทวันที่ปัจจุบัน เหมาะสำหรับตัวชี้วัดแบบ Week-over-Week โดยนำตารางวันที่ไปใช้เป็นตัวกรองเวลา
STARTOFWEEK คืนตารางที่มีวันแรกของสัปดาห์ตามปฏิทินที่กำหนด ใช้เป็นตัวกรองใน CALCULATE หรือดึงค่าสเกลาร์ด้วย MINX ฟังก์ชันนี้จำเป็นต้องมีตารางวันที่ที่ถูกกำหนดไว้เป็น Date Table
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
อีเมลของคุณจะไม่ถูกเผยแพร่