Thep Excel

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

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

=STARTOFWEEK(<calendar>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
6/10

Difficulty
4/10

Usefulness
6/10

Syntax & Arguments

=STARTOFWEEK(<calendar>)

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

How it works

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

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

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

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

Examples

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

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

Result:

วันที่เป็น scalar (เช่น 2024-12-23) ที่เป็นวันแรกของสัปดาห์

ตัวอย่างที่ 2: วัดยอดขายตั้งแต่ต้นสัปดาห์
Sales from Week Start = CALCULATE( SUM(Sales[Amount]), 'Date'[Date] >= MINX(STARTOFWEEK('Date'), 'Date'[Date]) )
รวม Amount ตั้งแต่วันเริ่มสัปดาห์ (ใช้ >= เพื่อเทียบวันที่)
DAX Formula:

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

Result:

ยอดขายสะสมตั้งแต่วันแรกของสัปดาห์ถึงวันปัจจุบัน

ตัวอย่างที่ 3: ใช้เป็นตัวกรอง Filter Context
Opening Balance Week = CALCULATE( [Balance], STARTOFWEEK('Date') )
STARTOFWEEK ทำการ Filter Context Transition กำหนด 'Date' ให้เป็นวันแรกของสัปดาห์
DAX Formula:

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

Result:

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

ตัวอย่างที่ 4: จับคู่กับ ENDOFWEEK สำหรับช่วงวันที่
Weekly Sales Range = CALCULATE( SUM(Sales[Amount]), 'Date'[Date] >= MINX(STARTOFWEEK('Date'), 'Date'[Date]), 'Date'[Date]
กำหนดช่วงวันที่เต็มสัปดาห์ด้วย STARTOFWEEK และ ENDOFWEEK
DAX Formula:

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

Result:

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

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

Additional Notes

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

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

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *