Thep Excel

PREVIOUSYEARตารางวันที่ของปีก่อนหน้า

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

fx
=PREVIOUSYEAR(<dates>)

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

อัปเดต 13 December 2025

Syntax & Arguments

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

PREVIOUSYEAR คืน “ตารางของวันที่” สำหรับปีก่อนหน้า โดยอ้างอิงจากบริบทวันที่ที่กำลังถูกเลือกอยู่ เหมาะกับการทำรายงานเทียบปีต่อปี (Year-over-Year) เช่น ยอดขายปีก่อนหน้า

How it works

ยอดขายปีก่อนหน้า (เทียบปีต่อปี)

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

เปรียบเทียบจำนวนลูกค้าปีก่อน

ใช้เทียบ KPI ระดับปี เช่น ลูกค้าหรือออเดอร์

Examples

ตัวอย่างที่ 1: ยอดขายปีก่อนหน้าSales ปีก่อนหน้า = CALCULATE( [Sales Amount], PREVIOUSYEAR('DimDate'[Date]) )

PREVIOUSYEAR คืนชุดวันที่ของปีก่อนหน้า แล้วนำไปเป็นตัวกรองเวลาใน CALCULATE

fx
Sales ปีก่อนหน้า =
CALCULATE(
[Sales Amount],
PREVIOUSYEAR('DimDate'[Date])
)

ผลลัพธ์คืนยอดขายของปีก่อนหน้าในบริบทปัจจุบัน
ตัวอย่างที่ 2: จำนวนออเดอร์ปีก่อนหน้าOrders ปีก่อนหน้า = CALCULATE( [Order Count], PREVIOUSYEAR('DimDate'[Date]) )

เหมาะกับการทำรายงานเทียบปีต่อปี โดยปล่อยให้ฟังก์ชันจัดการช่วงวันที่ให้

fx
Orders ปีก่อนหน้า =
CALCULATE(
[Order Count],
PREVIOUSYEAR('DimDate'[Date])
)

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

ฟังก์ชันนี้คืนค่าเป็นตาราง จึงใช้เป็นตัวกรองเวลา หรือสร้างตารางคำนวณเพื่อดูช่วงวันที่ของปีก่อนหน้า

fx
Dates ปีก่อนหน้า =
PREVIOUSYEAR('DimDate'[Date])

ผลลัพธ์ได้ผลลัพธ์เป็นตารางวันที่ของปีก่อนหน้า

FAQs

PREVIOUSYEAR ต่างจากการลบปีด้วยตัวเองอย่างไร?+

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

ต้องมีข้อมูลครบทุกวันไหม?+

ไม่จำเป็นต้องมีข้อมูลธุรกรรมทุกวัน แต่ควรมีตารางวันที่ที่ต่อเนื่องเพื่อให้การเลือกช่วงปี/ปีก่อนหน้าทำงานได้ถูกต้อง

Resources & Related

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

ฟังก์ชันนี้PREVIOUSYEARTime Intelligence
Time Intelligence (13)
CLOSINGBALANCEYEAR

ฟังก์ชันเวลา Intelligence ที่ประเมิน Expression ณ วันสิ้นปีของปีในบริบทปัจจุบัน รองรับปีบัญชี (Fiscal Year) และตัวกรองเพิ่มเติม เหมาะสำหรับมาตรวัด Semi-additive เช่น ยอดคงเหลือ ยอดเงินสด

DATEADD

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

DATESYTD

DATESYTD คืนตารางวันที่ของช่วงตั้งแต่ต้นปีถึงวันที่สุดท้ายที่มองเห็นใน Filter Context ใช้เป็นตัวกรองเวลาใน CALCULATE สำหรับการคำนวณยอดสะสมตั้งแต่ต้นปี รองรับทั้งปีปฏิทินและปีบัญชี (Fiscal Year) ด้วย YearEndDate argument

ENDOFYEAR

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

NEXTYEAR

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

OPENINGBALANCEYEAR

OPENINGBALANCEYEAR คำนวณค่า Expression ณ วันแรกของปี โดยดึงค่าจากวันสิ้นปีปีก่อนหน้า เหมาะสำหรับการหา opening balance ของคงเหลือ บัญชี สต็อก และค่าที่วัดได้แค่ที่จุดเวลาเดียว

PARALLELPERIOD

PARALLELPERIOD คืนตารางวันที่ที่ขนานกับช่วงเวลาปัจจุบัน แต่เลื่อนไปข้างหน้าหรือย้อนหลัง และขยายขอบเขตให้ครอบคลุมทั้งหน่วยเวลาที่ระบุ (MONTH/QUARTER/YEAR) เสมอ เหมาะกับการเทียบยอดรวมทั้งเดือน/ไตรมาส/ปี

PREVIOUSDAY

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

PREVIOUSMONTH

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

PREVIOUSQUARTER

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

PREVIOUSWEEK

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

SAMEPERIODLASTYEAR

SAMEPERIODLASTYEAR คืน table ของวันที่ที่เลื่อนย้อนกลับไป 1 ปีจากช่วงวันที่ใน filter context ปัจจุบัน ใช้สำหรับการเปรียบเทียบ Year-over-Year (YoY) โดยต้องการ date table ที่ครบถ้วนต่อเนื่องและควร mark เป็น date table ในโมเดล
.
มักใช้ร่วมกับ CALCULATE เพื่อคำนวณค่าของปีก่อนหน้าในช่วงเดียวกัน ทำให้ได้ผลลัพธ์แบบ apples-to-apples comparison ที่แม่นยำโดยไม่ต้อง hard-code ช่วงวันที่ เหมาะสำหรับ measures และ calculated columns แต่ไม่รองรับ DirectQuery mode และไม่แนะนำสำหรับ visual calculations

TOTALYTD

TOTALYTD คำนวณยอดสะสมตั้งแต่ต้นปี (Year-to-Date) ของ expression ใดๆ โดยอิงจาก Date table และสามารถกำหนด fiscal year end date เพื่อรองรับปีงบประมาณที่ไม่ตรงกับปีปฏิทินได้
.
ส่วนตัวผมใช้บ่อยมากตอนต้องวิเคราะห์ยอดขาย KPI และรายงานทางการเงินที่ต้องการติดตามความก้าวหน้าตลอดทั้งปีครับ

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

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