Thep Excel

PREVIOUSWEEK – ตารางวันที่ของสัปดาห์ก่อนหน้า

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

=PREVIOUSWEEK(<dates>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
6/10

Difficulty
4/10

Usefulness
6/10

Syntax & Arguments

=PREVIOUSWEEK(<dates>)

Argument Type Required Default Description
dates Column (Date) Yes คอลัมน์วันที่ (Date) จากตารางวันที่/ปฏิทิน ที่ต้องการเลื่อนย้อนหลังไปหนึ่งสัปดาห์

How it works

ยอดขายสัปดาห์ก่อนหน้า

ทำตัวชี้วัดเทียบสัปดาห์ต่อสัปดาห์ เช่น ยอดขายสัปดาห์ก่อนหน้า

จำนวนออเดอร์สัปดาห์ก่อน

เทียบผลงานสัปดาห์ปัจจุบันกับสัปดาห์ก่อน

Examples

ตัวอย่างที่ 1: ยอดขายสัปดาห์ก่อนหน้า
Sales สัปดาห์ก่อนหน้า = VAR CurrentWeekSales = SUM(Sales[Amount]) VAR PreviousWeekSales = CALCULATE( SUM(Sales[Amount]), PREVIOUSWEEK('Calendar'[Date]) ) RETURN…
PREVIOUSWEEK ทำให้ CALCULATE เปลี่ยน Filter Context ไปที่สัปดาห์ก่อนหน้าแทน ส่วนตัวเลขก็มาจากการ SUM ยอดขายในช่วงนั้น
DAX Formula:

Sales สัปดาห์ก่อนหน้า =
VAR CurrentWeekSales = SUM(Sales[Amount])
VAR PreviousWeekSales = 
    CALCULATE(
        SUM(Sales[Amount]),
        PREVIOUSWEEK('Calendar'[Date])
    )
RETURN
    PreviousWeekSales

Result:

คืนยอดขายรวมของสัปดาห์ก่อนหน้า เทียบจากวันที่ที่เลือกในรายงาน

ตัวอย่างที่ 2: ตัวชี้วัดเทียบ Week-over-Week
Sales WoW % Change = VAR CurrentWeekSales = SUM(Sales[Amount]) VAR PreviousWeekSales = CALCULATE( SUM(Sales[Amount]), PREVIOUSWEEK('Calendar'[Date]) ) RETURN DI…
ลบยอดขายเดือนนี้ด้วยเดือนก่อนหน้า แล้วหารด้วยเดือนก่อนหน้า – เก่ามาก แต่ใช้ได้
DAX Formula:

Sales WoW % Change =
VAR CurrentWeekSales = SUM(Sales[Amount])
VAR PreviousWeekSales = 
    CALCULATE(
        SUM(Sales[Amount]),
        PREVIOUSWEEK('Calendar'[Date])
    )
RETURN
    DIVIDE(CurrentWeekSales - PreviousWeekSales, PreviousWeekSales, 0)

Result:

คือเปอร์เซนต์การเปลี่ยนแปลง เช่น 0.15 = เพิ่มขึ้น 15% เทียบสัปดาห์ก่อนหน้า

ตัวอย่างที่ 3: ดูตารางวันที่ของสัปดาห์ก่อนหน้า (สำหรับทำความเข้าใจ)
Dates สัปดาห์ก่อนหน้า = PREVIOUSWEEK('Calendar'[Date])
ถ้าวันนี้อยู่ในสัปดาห์ 15-21 ธ.ค. ฟังก์ชันนี้จะคืนวันที่ 8-14 ธ.ค. ตารางเต็มๆ ใช้ได้ในการสร้าง Calculated Table
DAX Formula:

Dates สัปดาห์ก่อนหน้า = PREVIOUSWEEK('Calendar'[Date])

Result:

ได้ผลลัพธ์เป็นตารางวันที่ทั้งหมดของสัปดาห์ก่อนหน้า (7 แถว หรือตามลักษณะของปฏิทิน)

FAQs

PREVIOUSWEEK กับ DATEADD(-7) ต่างกันอย่างไร?

DATEADD(-7) เพียงแค่ลบ 7 วันตรงๆ ไม่สนใจว่าวันนั้นเป็นสัปดาห์ไหน แต่ PREVIOUSWEEK เข้าใจแนวคิด ‘สัปดาห์’ จากปฏิทิน – ถ้าปฏิทินของคุณใช้สัปดาห์เริ่มจากวันจันทร์ มันจะให้สัปดาห์ที่เริ่มจากจันทร์ของสัปดาห์ก่อน

ต้องมีตารางวันที่ต่อเนื่องไหม?

ใช่ แนะนำให้มีตารางวันที่ที่ต่อเนื่อง (ทั้งปี จากวันที่ 1 มกราคม ถึง 31 ธันวาคม) และกำหนดเป็น Date Table ในโมเดล มิฉะนั้นอาจให้ผลลัพธ์ที่ผิด

สัปดาห์ของ PREVIOUSWEEK อ้างอิงตามอะไร?

อ้างอิงตามปฏิทินที่ตั้งไว้ในตารางวันที่ ถ้าคุณใช้ ISO Week (เริ่มจันทร์) มันจะให้สัปดาห์แบบ ISO Week ถ้าใช้ US Week (เริ่มอาทิตย์) มันจะให้สัปดาห์แบบ US

ใช้ได้ในทั้ง Calculated Column, Measure, และ Calculated Table ไหม?

ใช้ได้ในทั้ง 3 แบบ แต่ไม่ควรใช้ใน Visual Calculations เพราะอาจให้ผลลัพธ์ที่ไม่มีความหมาย

Resources & Related

Additional Notes

PREVIOUSWEEK เป็นฟังก์ชัน Time Intelligence ของ DAX ที่ “เดินย้อนหลังหนึ่งสัปดาห์” จากวันที่ที่เลือกในบริบทปัจจุบัน คืนค่าเป็นตารางวันที่ครบถ้วนของสัปดาห์ก่อนหน้า แทนที่จะเป็นแค่วันเดียว

สิ่งที่เจ๋งคือ มันทำให้การเทียบ Week-over-Week (WoW) ง่ายขึ้นเยอะ เพราะไม่ต้องไปคำนวณช่วงวันด้วยตัวเอง – DAX ทำให้คุณเลยโดยอ้างอิงปฏิทินในโมเดล

ส่วนตัวผมคิดว่า เวลาคุณอยากเทียบตัวเลขสัปดาห์นี้กับสัปดาห์ที่แล้ว ฟังก์ชันนี้มันต่างจากการ DATEADD(-7) นะ – เพราะมันเข้าใจแนวคิด “สัปดาห์” ของปฏิทิน ไม่ใช่แค่ลบ 7 วันตรงๆ 😎

Leave a Reply

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