Thep Excel

STARTOFWEEKวันเริ่มต้นของสัปดาห์

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

fx
=STARTOFWEEK(<calendar>)

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

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
calendar Calendar Reference ปฏิทิน/ตารางวันที่ที่ใช้กำหนดขอบเขตสัปดาห์ (ต้องเป็น Date Table ที่กำหนดไว้ในโมเดล)

Additional Notes

STARTOFWEEK เป็นฟังก์ชัน Time Intelligence ที่คืนตารางวันที่มีขนาด 1 แถว แสดงวันแรกของสัปดาห์ในบริบทปัจจุบัน โดยคืนค่าจากปฏิทินที่คุณระบุ

ส่วนที่ยุ่งคือ STARTOFWEEK คืนตาราง ไม่ใช่ค่าเดี่ยว! ถ้าต้องการค่า Scalar Date ต้องใช้ MINX หรือ MIN บนคอลัมน์วันที่

คำสำคัญ: ฟังก์ชันนี้ขึ้นอยู่กับคำนิยามสัปดาห์ในตารางวันที่ของคุณ ถ้าตารางวันที่กำหนดว่าสัปดาห์เริ่มวันจันทร์ ผลลัพธ์ก็จะเป็นวันจันทร์ ถ้าเริ่มวันอาทิตย์ ผลลัพธ์ก็จะเป็นวันอาทิตย์

ส่วนตัวผม ถ้าต้องทำตัวชี้วัดรายสัปดาห์ STARTOFWEEK + ENDOFWEEK + CALCULATE เป็นสามตัวอักษรสั้นๆ ที่ช่วยชีวิตได้มาก 😎

How it works

หาวันเริ่มสัปดาห์เพื่อทำขอบเขตสัปดาห์

แปลงเป็นค่าเดี่ยวแล้วใช้ทำตรรกะช่วงสัปดาห์

คำนวณค่า ณ วันเริ่มสัปดาห์

ใช้เป็นตัวกรองเพื่อประเมิน measure ณ จุดเริ่มสัปดาห์

Examples

ตัวอย่างที่ 1: ดึงวันแรกของสัปดาห์เป็นค่าเดี่ยวWeek Start Date = MINX( STARTOFWEEK('Date'), 'Date'[Date] )

STARTOFWEEK คืนตาราง 1 แถว MINX ดึงคอลัมน์วันที่ออกมาเป็นค่าเดี่ยว

fx
Week Start Date =
MINX(
STARTOFWEEK('Date'),
'Date'[Date]
)

ผลลัพธ์วันที่เป็น scalar (เช่น 2024-12-23) ที่เป็นวันแรกของสัปดาห์
ตัวอย่างที่ 2: วัดยอดขายตั้งแต่ต้นสัปดาห์Sales from Week Start = CALCULATE( SUM(Sales[Amount]), 'Date'[Date] >= MINX(STARTOFWEEK('Date'), 'Date'[Date]) )

รวม Amount ตั้งแต่วันเริ่มสัปดาห์ (ใช้ >= เพื่อเทียบวันที่)

fx
Sales from Week Start =
CALCULATE(
SUM(Sales[Amount]),
'Date'[Date] >= MINX(STARTOFWEEK('Date'), 'Date'[Date])
)

ผลลัพธ์ยอดขายสะสมตั้งแต่วันแรกของสัปดาห์ถึงวันปัจจุบัน
ตัวอย่างที่ 3: ใช้เป็นตัวกรอง Filter ContextOpening Balance Week = CALCULATE( [Balance], STARTOFWEEK('Date') )

STARTOFWEEK ทำการ Filter Context Transition กำหนด 'Date' ให้เป็นวันแรกของสัปดาห์

fx
Opening Balance Week =
CALCULATE(
[Balance],
STARTOFWEEK('Date')
)

ผลลัพธ์ค่า Balance ณ วันเริ่มสัปดาห์
ตัวอย่างที่ 4: จับคู่กับ ENDOFWEEK สำหรับช่วงวันที่Weekly Sales Range = CALCULATE( SUM(Sales[Amount]), 'Date'[Date] >= MINX(STARTOFWEEK('Date'), 'Date'[Date]), 'Date'[Date]

กำหนดช่วงวันที่เต็มสัปดาห์ด้วย STARTOFWEEK และ ENDOFWEEK

fx
Weekly Sales Range =
CALCULATE(
SUM(Sales[Amount]),
'Date'[Date] >= MINX(STARTOFWEEK('Date'), 'Date'[Date]),
'Date'[Date] <= MINX(ENDOFWEEK('Date'), 'Date'[Date])
)

ผลลัพธ์ยอดขายสำหรับสัปดาห์ปัจจุบัน (ตั้งแต่วันแรกถึงวันสุดท้าย)

FAQs

ทำไม STARTOFWEEK ต้อง MINX ด้วย?+

เพราะ STARTOFWEEK คืนตาราง ไม่ใช่ค่าเดี่ยว MINX (หรือ MIN) ดึงคอลัมน์วันที่ออกมาเป็นค่า scalar ที่สามารถใช้ในการเปรียบเทียบได้

สัปดาห์เริ่มวันไหน?+

ขึ้นอยู่กับตารางวันที่ของคุณ ตรวจสอบคอลัมน์ Week Start หรือคำนิยามสัปดาห์ใน Date Table ถ้าธุรกิจคุณเริ่มสัปดาห์จันทร์ ตารางวันที่ควรจะเสร็จแล้ว

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

STARTOFWEEK หาวันแรกของสัปดาห์ STARTOFMONTH หาวันแรกของเดือน STARTOFQUARTER หาวันแรกของไตรมาส STARTOFYEAR หาวันแรกของปี

ใช้ได้ในตัวชี้วัด (Measure) หรือ Calculated Column?+

ทั้งสองได้ แต่ Calculated Column จะต้องไม่ใช้ Filter Context ที่ขึ้นอยู่กับ Slicer เพราะ Calculated Column ประเมินครั้งเดียวตอนโหลดข้อมูล

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

DATEADD ย้ายวันที่ไปข้างหน้า/ข้างหลัง STARTOFWEEK หาขอบเขตวันแรก DATEADD เป็น offset STARTOFWEEK เป็น boundary

Resources & Related

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

ฟังก์ชันนี้STARTOFWEEKTime Intelligence
Time Intelligence (10)
DATESBETWEEN

DATESBETWEEN คืนตารางวันที่ที่อยู่ระหว่าง StartDate และ EndDate (รวมวันเริ่ม/วันจบ) เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อคำนวณตามช่วงวันที่ที่กำหนดเอง

DATESWTD

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

ENDOFWEEK

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

NEXTWEEK

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

OPENINGBALANCEWEEK

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

PREVIOUSWEEK

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

STARTOFMONTH

STARTOFMONTH คืนวันแรกของเดือนเป็นตาราง 1 แถว ใช้กับการวัดที่ขึ้นต่อจุดเวลา เช่น ยอดคงเหลือ บัญชี หรือสินค้าคงคลัง

STARTOFQUARTER

STARTOFQUARTER คืนตารางวันที่ที่มีวันแรกของไตรมาสในบริบทตัวกรองปัจจุบัน (single-row table) ใช้เป็นตารางตัวกรองใน CALCULATE หรือใช้ MINX เพื่อแปลงเป็น scalar date

STARTOFYEAR

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

TOTALWTD

คำนวณยอดสะสมตั้งแต่ต้นสัปดาห์ (Week-to-Date) ของ Expression ตามคอลัมน์วันที่ที่กำหนด โดยรวมข้อมูลจากวันแรกของสัปดาห์จนถึงวันปัจจุบันในบริบท

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

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