Thep Excel

ENDOFWEEKหาวันสุดท้ายของสัปดาห์ในบริบทปัจจุบัน

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

fx
=ENDOFWEEK(<Calendar>)

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

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
Calendar Column คอลัมน์วันที่จาก Marked Date Table ที่ต้องมีคุณสมบัติปฏิทินมาตรฐาน (Year, Month, Week, Day เป็นต้น)

Additional Notes

ENDOFWEEK เป็นฟังก์ชันเวลาหลักของ DAX ที่ส่งคืนตารางวันที่ (Date Table) ของวันสิ้นสัปดาห์ในบริบทวันที่ปัจจุบัน แต่ต่างจากการเขียน Formula ทั่วไป มันทำงานด้วย “Context Transition” ซึ่งหมายความว่า มันเปลี่ยนจาก Row Context ไปเป็น Filter Context โดยอัตโนมัติ

ส่วนที่เจ๋งคือ ENDOFWEEK ใช้ประโยชน์จาก “Marked Date Table” ของคุณ ซึ่งต้องมี Column ที่ Standard หลายชั้น (Year, Month, Week, etc.) เซ็ตไว้แล้ว ตัวฟังก์ชันจึงรู้ว่า “วันสิ้นสัปดาห์” คือวันไหน

ส่วนตัวผม คิดว่า ENDOFWEEK เป็นตัวช่วยที่สำคัญสำหรับการวิเคราะห์ KPI รายสัปดาห์ เพราะว่า บ่อยครั้งเจ้าของธุรกิจอยากเห็นตัวเลข “ณ วันปิดสัปดาห์” แล้วเปรียบเทียบกับสัปดาห์ที่แล้ว นั่นคือการใช้งาน ENDOFWEEK อย่างแท้จริง

How it works

ประเมิน KPI ณ วันสิ้นสัปดาห์

เช่น ยอด/จำนวน ณ จุดปิดสัปดาห์

ทำรายงานปิดสัปดาห์

สรุปผลรายสัปดาห์ที่อิงวันสิ้นสัปดาห์

Examples

ตัวอย่าง 1: ประเมินยอดขายณ วันสิ้นสัปดาห์Sales at Week End = CALCULATE( SUM(Sales[Amount]), ENDOFWEEK('Date'[Date]) )

ENDOFWEEK คืนตาราง Date ที่มีเพียงวันเดียว (วันสิ้นสัปดาห์) แล้ว CALCULATE ใช้เป็น Filter ทำให้สรุปข้อมูลได้ถูกต้อง

fx
Sales at Week End =
CALCULATE(
SUM(Sales[Amount]),
ENDOFWEEK('Date'[Date])
)

ผลลัพธ์จำนวนยอดขายทั้งหมดในวันสิ้นสัปดาห์ของบริบท
ตัวอย่าง 2: หากต้องการเปรียบเทียบกับสัปดาห์ก่อนหน้าSales Week vs Previous = VAR CurrentWeekEnd = CALCULATE( SUM(Sales[Amount]), ENDOFWEEK('Date'[Date]) ) VAR PreviousWeekEnd = CALCULATE( SUM(Sales[Amount]), ENDO…

VAR ช่วยเก็บผลลัพธ์ระหว่างทาง ENDOFWEEK ทำงานร่วมกับ DATEADD เพื่อเปรียบเทียบสัปดาห์ที่ต่างกัน

fx
Sales Week vs Previous =
VAR CurrentWeekEnd = CALCULATE(
SUM(Sales[Amount]),
ENDOFWEEK('Date'[Date])
)
VAR PreviousWeekEnd = CALCULATE(
SUM(Sales[Amount]),
ENDOFWEEK(DATEADD('Date'[Date], -1, WEEK))
)
RETURN
DIVIDE(CurrentWeekEnd, PreviousWeekEnd, 0) – 1

ผลลัพธ์อัตราการเปลี่ยนแปลงยอดขายเทียบกับสัปดาห์ที่แล้ว
ตัวอย่าง 3: ตรวจสอบตารางที่ ENDOFWEEK คืนมาDebug_EndOfWeek_Table = ENDOFWEEK('Date'[Date])

ใช้เมื่อต้องการตรวจสอบว่า ENDOFWEEK คืนข้อมูลอะไรจริง ๆ

fx
Debug_EndOfWeek_Table =
ENDOFWEEK('Date'[Date])

ผลลัพธ์แสดงตาราง 1 แถว (แถวของวันสิ้นสัปดาห์) พร้อมคอลัมน์ปฏิทินทั้งหมด

FAQs

วันสิ้นสัปดาห์ถูกกำหนดอย่างไร?+

ขึ้นอยู่กับ Marked Date Table ของคุณ ส่วนมากจะเป็นวันเสาร์หรือวันอาทิตย์ คุณสามารถเปลี่ยนได้ในการตั้งค่า Date Table หรือใช้ STARTOFWEEK พร้อม return_type พารามิเตอร์

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

ENDOFMONTH หาวันสิ้นเดือน (ซึ่งเป็นวันสุดท้ายของเดือนเสมอ เช่น 31 มีนาคม) ส่วน ENDOFWEEK หาวันสิ้นสัปดาห์ (ซึ่งเป็นวันที่เปลี่ยนแปลงตามสัปดาห์)

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

ENDOFWEEK คืนเพียงวันเดียว (วันสิ้นสัปดาห์) ส่วน DATESWTD คืนช่วงวันตั้งแต่ต้นสัปดาห์ถึงวันปัจจุบัน (หลายแถว)

ทำไม ENDOFWEEK ต้องใช้ Marked Date Table?+

เพราะว่า DAX ต้องรู้ว่าตารางใดเป็นตารางวันที่ เพื่อให้สามารถใช้ฟังก์ชันเวลาต่าง ๆ ได้ ถ้าไม่มี Marked Date Table ฟังก์ชันนี้จะหาระยะเวลาไม่ได้

Resources & Related

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

ฟังก์ชันนี้ENDOFWEEKTime Intelligence
Time Intelligence (10)
CLOSINGBALANCEWEEK

CLOSINGBALANCEWEEK ประเมินนิพจน์ (มาตรวัด) ที่วันสิ้นสัปดาห์ของบริบทวันที่ปัจจุบัน สำคัญสำหรับรายงานปิดสัปดาห์และ snapshot ยอดคงเหลือ

DATEADD

DATEADD คืนค่าตารางวันที่ ที่ถูกเลื่อนออกไปจากช่วงวันที่ใน Context ปัจจุบัน ตามจำนวน (NumberOfIntervals) และหน่วย (Interval) ที่กำหนด เช่น เลื่อนย้อนหลัง 1 เดือน หรือเลื่อนไปข้างหน้า 1 ปี

DATESWTD

DATESWTD คืนตารางวันที่ตั้งแต่ต้นสัปดาห์จนถึงวันที่ในบริบทปัจจุบัน ใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อคำนวณยอดสะสมตั้งแต่ต้นสัปดาห์

ENDOFMONTH

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

ENDOFQUARTER

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

ENDOFYEAR

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

NEXTWEEK

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

OPENINGBALANCEWEEK

OPENINGBALANCEWEEK ประเมิน Expression ณ จุดเปิดสัปดาห์ (คือวันสิ้นสัปดาห์ก่อนหน้า) ใช้เพื่อเปรียบเทียบค่าเปลี่ยนแปลงระหว่างเปิดและปิดสัปดาห์

PREVIOUSWEEK

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

STARTOFWEEK

STARTOFWEEK คืนตารางที่มีวันแรกของสัปดาห์ตามปฏิทินที่กำหนด ใช้เป็นตัวกรองใน CALCULATE หรือดึงค่าสเกลาร์ด้วย MINX ฟังก์ชันนี้จำเป็นต้องมีตารางวันที่ที่ถูกกำหนดไว้เป็น Date Table

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

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