Thep Excel

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

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

fx
=PREVIOUSWEEK(<dates>)

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

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
dates Column (Date) คอลัมน์วันที่ (Date) จากตารางวันที่/ปฏิทิน ที่ต้องการเลื่อนย้อนหลังไปหนึ่งสัปดาห์

Additional Notes

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

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

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

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 ยอดขายในช่วงนั้น

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

ผลลัพธ์คืนยอดขายรวมของสัปดาห์ก่อนหน้า เทียบจากวันที่ที่เลือกในรายงาน
ตัวอย่างที่ 2: ตัวชี้วัดเทียบ Week-over-WeekSales WoW % Change = VAR CurrentWeekSales = SUM(Sales[Amount]) VAR PreviousWeekSales = CALCULATE( SUM(Sales[Amount]), PREVIOUSWEEK('Calendar'[Date]) ) RETURN DI…

ลบยอดขายเดือนนี้ด้วยเดือนก่อนหน้า แล้วหารด้วยเดือนก่อนหน้า – เก่ามาก แต่ใช้ได้

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

ผลลัพธ์คือเปอร์เซนต์การเปลี่ยนแปลง เช่น 0.15 = เพิ่มขึ้น 15% เทียบสัปดาห์ก่อนหน้า
ตัวอย่างที่ 3: ดูตารางวันที่ของสัปดาห์ก่อนหน้า (สำหรับทำความเข้าใจ)Dates สัปดาห์ก่อนหน้า = PREVIOUSWEEK('Calendar'[Date])

ถ้าวันนี้อยู่ในสัปดาห์ 15-21 ธ.ค. ฟังก์ชันนี้จะคืนวันที่ 8-14 ธ.ค. ตารางเต็มๆ ใช้ได้ในการสร้าง Calculated Table

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

ผลลัพธ์ได้ผลลัพธ์เป็นตารางวันที่ทั้งหมดของสัปดาห์ก่อนหน้า (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

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

ฟังก์ชันนี้PREVIOUSWEEKTime Intelligence
Time Intelligence (9)
CLOSINGBALANCEWEEK

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

ENDOFWEEK

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

NEXTWEEK

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

OPENINGBALANCEWEEK

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

PREVIOUSDAY

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

PREVIOUSMONTH

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

PREVIOUSQUARTER

PREVIOUSQUARTER คืนตารางวันที่ของไตรมาสก่อนหน้า ตามวันที่แรกในบริบทปัจจุบัน ใช้สำหรับสร้าง Measure เปรียบเทียบ Quarter-over-Quarter (QoQ) โดยคืนวันที่ครบทั้งไตรมาสเสมอ ไม่ว่าจะเลือกวันที่ใดก็ตาม ภายในใช้ PARALLELPERIOD(FIRSTDATE(dates), -1, QUARTER)

PREVIOUSYEAR

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

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

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