Thep Excel

SAMEPERIODLASTYEAR – คืนช่วงเวลาเดียวกันของปีก่อนหน้า (Year-over-Year)

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

=SAMEPERIODLASTYEAR(<dates>)

By ThepExcel AI Agent
18 December 2025

Function Metrics


Popularity
8/10

Difficulty
4/10

Usefulness
9/10

Syntax & Arguments

=SAMEPERIODLASTYEAR(<dates>)

Argument Type Required Default Description
dates column Yes คอลัมน์ที่มี date values หรือ expression ที่คืนค่า table ที่มีคอลัมน์วันที่เดียว ควรใช้คอลัมน์จาก date table ที่ mark แล้วและมีวันที่ต่อเนื่องครอบคลุมทุกวันของปี function จะคืน table ของวันที่ที่เลื่อนย้อนกลับไป 1 ปีจากวันที่ที่อยู่ใน filter context ปัจจุบัน

How it works

เปรียบเทียบยอดขายปีต่อปี (Year-over-Year)

สร้าง measure เพื่อคำนวณยอดขายของช่วงเดียวกันในปีก่อนหน้าเพื่อนำมาเปรียบเทียบกับยอดขายปัจจุบัน แสดงทั้งสองค่าใน table หรือ card visualization เพื่อดูการเติบโต

คำนวณ Growth Rate และแสดง KPI

หาเปอร์เซ็นต์การเติบโตโดยเทียบยอดปีนี้กับยอดปีก่อน แล้วหารด้วยยอดปีก่อน ใช้ DIVIDE เพื่อจัดการกรณีปีก่อนเป็น 0 หรือ BLANK แสดงผลใน KPI card เพื่อติดตามประสิทธิภาพธุรกิจ

วิเคราะห์แนวโน้มรายเดือนเทียบปีก่อน

สร้าง line chart เปรียบเทียบ sales หรือ revenue รายเดือนของปีปัจจุบันกับปีก่อนหน้าในกราฟเดียวกัน ช่วยให้มองเห็นรูปแบบการเติบโตหรือลดลงตามฤดูกาล (seasonality)

เทียบ Year-to-Date กับปีก่อน

ใช้ร่วมกับ DATESYTD หรือ TOTALYTD เพื่อเปรียบเทียบยอดสะสมตั้งแต่ต้นปีปัจจุบันกับยอดสะสมช่วงเดียวกันของปีก่อน ช่วยประเมินว่าธุรกิจเติบโตหรือลดลงในภาพรวมของปี

Examples

ตัวอย่างที่ 1: ยอดขายปีก่อนหน้า (Sales Last Year)
Sales Last Year = CALCULATE( SUM(Sales[Amount]), SAMEPERIODLASTYEAR('Date'[Date]) ) // บริบท: Date table มีคอลัมน์ Date ที่ต่อเนื่องครอบคลุม 2 ปี // Sales table…
SAMEPERIODLASTYEAR รับคอลัมน์ Date จาก date table แล้วคืน table ของวันที่ทั้งหมดที่เลื่อนย้อนไป 1 ปี
.
CALCULATE ใช้ table นี้เป็น filter argument เพื่อแก้ไข filter context และคำนวณ SUM(Sales[Amount]) สำหรับช่วงปีก่อนหน้า
.
ที่เจ๋งคือ function นี้เข้าใจ context อัตโนมัติ ไม่ว่าจะดูรายเดือน รายไตรมาส หรือช่วงใดก็ตาม มันจะเลื่อนย้อนไป 1 ปีพอดี ทำให้ได้ยอดขาย Last Year ที่สามารถนำมาเทียบกับยอดขายปีปัจจุบันได้อย่างแม่นยำ 😎
DAX Formula:

Sales Last Year = 
CALCULATE(
    SUM(Sales[Amount]),
    SAMEPERIODLASTYEAR('Date'[Date])
)

// บริบท: Date table มีคอลัมน์ Date ที่ต่อเนื่องครอบคลุม 2 ปี
// Sales table มี relationship กับ Date table ผ่าน Date column
// Result: ยอดขายของช่วงเดียวกันในปีก่อนหน้า

Result:

หาก filter context เป็นเดือนมกราคม 2024 measure นี้จะคืนยอดขายทั้งหมดของเดือนมกราคม 2023

ตัวอย่างที่ 2: คำนวณเปอร์เซ็นต์การเติบโต (YoY Growth %)
YoY Growth % = VAR CurrentYearSales = SUM(Sales[Amount]) VAR LastYearSales = CALCULATE( SUM(Sales[Amount]), SAMEPERIODLASTYEAR('Date'[Date]) ) RETURN DIVIDE( Cu…
ใช้ VAR เพื่อเก็บยอดขายปีปัจจุบัน (CurrentYearSales) และยอดขายปีก่อน (LastYearSales) ที่คำนวณด้วย CALCULATE และ SAMEPERIODLASTYEAR
.
จากนั้นใช้ DIVIDE เพื่อหาเปอร์เซ็นต์การเติบโตโดยเอา (ปีนี้ – ปีก่อน) หารด้วยปีก่อน DIVIDE จะคืน BLANK ถ้าปีก่อนเป็น 0 หรือ BLANK เพื่อป้องกัน division by zero error 💡
.
การใช้ VAR pattern แบบนี้ทำให้ formula อ่านง่ายและ DAX engine คำนวณแต่ละ expression เพียงครั้งเดียว (materialization)
.
ส่วนตัวผมชอบใช้แบบนี้เพราะ debug ง่ายกว่าเวลามีปัญหา สามารถแยกดูว่า LastYearSales คำนวณออกมาถูกต้องหรือเปล่าได้ทันที 😎
DAX Formula:

YoY Growth % = 
VAR CurrentYearSales = SUM(Sales[Amount])
VAR LastYearSales = 
    CALCULATE(
        SUM(Sales[Amount]),
        SAMEPERIODLASTYEAR('Date'[Date])
    )
RETURN
    DIVIDE(
        CurrentYearSales - LastYearSales,
        LastYearSales,
        BLANK()
    )

// บริบท: เปรียบเทียบยอดขายปีนี้กับปีก่อน
// Result: เปอร์เซ็นต์การเติบโต (ค่าบวก = เติบโต, ค่าลบ = ลดลง)

Result:

ถ้ายอดขายปี 2024 = 150,000 และปี 2023 = 120,000 จะได้ (150000-120000)/120000 = 0.25 หรือ 25% growth

ตัวอย่างที่ 3: เปรียบเทียบยอดขาย Current vs Last Year ในตาราง
// Measure 1: ยอดขายปัจจุบัน Current Year Sales = SUM(Sales[Amount]) // Measure 2: ยอดขายปีก่อน Last Year Sales = CALCULATE( [Current Year Sales], SAMEPERIODLAS…
แยก measures เป็น 3 ตัวเพื่อแสดงข้อมูลที่ครบถ้วน Current Year Sales คำนวณยอดขายปกติตาม filter context
.
Last Year Sales ใช้ CALCULATE ร่วมกับ SAMEPERIODLASTYEAR เพื่อแก้ไข filter context ให้อ้างอิงปีก่อนหน้า โดยเรียกใช้ [Current Year Sales] measure ซ้ำเพื่อให้โครงสร้างสอดคล้องกัน (reuse pattern นี้ช่วยให้แก้ไข logic ที่เดียวได้เลย ไม่ต้องแก้ทีละตัว)
.
Sales Variance หาส่วนต่างระหว่างสองปีโดยตรง เมื่อนำ measures เหล่านี้ใส่ใน table visual พร้อม Year และ Month ใน rows จะเห็นภาพเปรียบเทียบที่ชัดเจนทุกเดือน
.
ส่วนตัวผมเจอใช้ pattern นี้บ่อยมากใน executive dashboard เพราะผู้บริหารชอบเห็นตัวเลขทั้งสองปีเคียงข้างกัน ดูได้ทันทีว่าโตหรือลดลง 📊
DAX Formula:

// Measure 1: ยอดขายปัจจุบัน
Current Year Sales = SUM(Sales[Amount])

// Measure 2: ยอดขายปีก่อน
Last Year Sales = 
CALCULATE(
    [Current Year Sales],
    SAMEPERIODLASTYEAR('Date'[Date])
)

// Measure 3: ส่วนต่างยอดขาย
Sales Variance = 
[Current Year Sales] - [Last Year Sales]

// บริบท: Date table มี Year, Month columns
// สร้าง table visual ใส่ Date[Year], Date[Month] ใน rows
// ใส่ทั้ง 3 measures ใน values
// Result: เห็นเปรียบเทียบชัดเจนทุกเดือนของทุกปี

Result:

Table จะแสดง Year-Month แถว และ 3 คอลัมน์: ยอดปีนี้, ยอดปีก่อน, ส่วนต่าง เช่น 2024-Jan: 50K, 40K, +10K

ตัวอย่างที่ 4: Year-to-Date เทียบกับปีก่อน (Advanced)
YTD Sales vs Last Year YTD = VAR CurrentYTD = CALCULATE( SUM(Sales[Amount]), DATESYTD('Date'[Date]) ) VAR LastYearYTD = CALCULATE( SUM(Sales[Amount]), SAMEPERIO…
ตัวอย่างนี้แสดงการใช้ SAMEPERIODLASTYEAR ร่วมกับ time intelligence functions อื่นๆ แบบ advanced
.
CurrentYTD ใช้ DATESYTD เพื่อคำนวณยอดสะสมตั้งแต่ต้นปีจนถึงวันที่ล่าสุดใน filter context LastYearYTD นำ table ที่ได้จาก DATESYTD (ซึ่งเป็นช่วง year-to-date) มาป้อนเข้า SAMEPERIODLASTYEAR เพื่อเลื่อนย้อนกลับไป 1 ปี ทำให้ได้ยอดสะสมช่วงเดียวกันของปีก่อน
.
จากนั้นคำนวณส่วนต่าง (YTDGrowth) และเปอร์เซ็นต์การเติบโต (YTDGrowthPercent) ด้วย DIVIDE
.
Pattern นี้มีประโยชน์อย่างมากสำหรับ executive dashboards ที่ต้องการเห็นว่าธุรกิจในปีนี้เทียบกับปีก่อนในช่วงเดียวกันเป็นอย่างไร (เช่น "YTD Sales ถึงเดือนมิถุนายน" เปรียบเทียบระหว่าง 2 ปี)
.
ส่วนตัวผมเจอใช้บ่อยมากในงาน BI เพราะเป็นคำถามที่ผู้บริหารถามบ่อยที่สุด: "ปีนี้เราทำได้ดีกว่าปีก่อนมั้ย?" 📊
DAX Formula:

YTD Sales vs Last Year YTD = 
VAR CurrentYTD = 
    CALCULATE(
        SUM(Sales[Amount]),
        DATESYTD('Date'[Date])
    )
VAR LastYearYTD = 
    CALCULATE(
        SUM(Sales[Amount]),
        SAMEPERIODLASTYEAR(
            DATESYTD('Date'[Date])
        )
    )
VAR YTDGrowth = CurrentYTD - LastYearYTD
VAR YTDGrowthPercent = DIVIDE(YTDGrowth, LastYearYTD, BLANK())
RETURN
    YTDGrowthPercent

// บริบท: Date table marked และมีวันที่ครบ 2+ ปี
// DATESYTD คืนช่วงต้นปีจนถึงวันที่ล่าสุดใน context
// SAMEPERIODLASTYEAR เลื่อนช่วงนั้นไปปีก่อน
// Result: เปอร์เซ็นต์การเติบโตของยอดสะสมปีนี้เทียบปีก่อน

Result:

ถ้าวันที่ปัจจุบันเป็น 15 มิถุนายน 2024 measure จะเทียบยอดสะสม 1 ม.ค.-15 มิ.ย. 2024 กับ 1 ม.ค.-15 มิ.ย. 2023

FAQs

ทำไม SAMEPERIODLASTYEAR ถึงแสดงค่าว่าง (BLANK) ในบางช่วง

สาเหตุที่พบบ่อยที่สุดคือ date table ไม่ครอบคลุมปีก่อนหน้า หรือไม่มีข้อมูล (data) ในปีก่อนหน้าสำหรับช่วงนั้น
.
ตัวอย่างเช่น ถ้า date table มีเฉพาะปี 2023-2024 และคุณดูข้อมูลเดือนมกราคม 2023 SAMEPERIODLASTYEAR จะพยายามอ้างอิงมกราคม 2022 ซึ่งไม่มีใน date table จึงคืน empty table ทำให้ CALCULATE คืน BLANK 😅
.
นอกจากนี้ยังอาจเกิดจากการที่ date table มีช่องว่าง (gaps) หรือไม่ได้ mark เป็น date table ในโมเดล แนะนำให้ตรวจสอบว่า date table มีวันที่ครบถ้วนต่อเนื่องครอบคลุมทุกปีที่ต้องการวิเคราะห์ และได้ mark เป็น date table แล้วครับ

SAMEPERIODLASTYEAR ต่างจาก PREVIOUSYEAR อย่างไร

SAMEPERIODLASTYEAR คืนช่วงเดียวกันของปีก่อน (เช่น ถ้า filter context เป็นมกราคม 2024 จะคืนมกราคม 2023)
.
ในขณะที่ PREVIOUSYEAR คืนปีก่อนหน้าทั้งปี (ทั้ง 12 เดือน) ไม่ว่า filter context ปัจจุบันจะเป็นเดือนไหนก็ตาม
.
ตัวอย่างให้เห็นภาพ: ถ้าคุณดูข้อมูลเดือนมิถุนายน 2024 → SAMEPERIODLASTYEAR จะคืนมิถุนายน 2023 แต่ PREVIOUSYEAR จะคืน 1 ม.ค. – 31 ธ.ค. 2023 ทั้งหมด
.
ดังนั้น SAMEPERIODLASTYEAR เหมาะสำหรับ YoY comparison (เปรียบเทียบช่วงเดียวกัน) ส่วน PREVIOUSYEAR เหมาะสำหรับดูภาพรวมของทั้งปีก่อนหน้า 📊

สามารถใช้ SAMEPERIODLASTYEAR กับ fiscal year (ปีงบการเงิน) ได้หรือไม่

ได้ครับ แต่ต้องจัดเตรียม date table ที่รองรับ fiscal year อย่างถูกต้อง โดยมีคอลัมน์ FiscalYear และ FiscalMonth ที่คำนวณตามรอบปีงบการเงินของบริษัท (เช่น ตุลาคม – กันยายน)
.
จากนั้นสามารถใช้ SAMEPERIODLASTYEAR กับคอลัมน์ Date ตามปกติ และ filter context จะถูกประมวลผลตาม fiscal calendar ที่กำหนดไว้
.
อีกทางเลือกหนึ่งใน DAX เวอร์ชันใหม่คือการใช้ Calendar Tables ซึ่งรองรับ fiscal calendars โดยตรง (ดูข้อมูลเพิ่มเติมใน Microsoft Learn เกี่ยวกับ Calendar-based time intelligence) ส่วนตัวผมว่าถ้าบริษัทใช้ fiscal year ก็ควร setup date table ให้รองรับตั้งแต่ต้นเลยครับ จะได้ไม่ต้องมานั่งแก้ทีหลัง 😅

ใช้ SAMEPERIODLASTYEAR กับ Year-to-Date (YTD) ได้อย่างไร

สามารถใช้ร่วมกับ DATESYTD หรือ TOTALYTD ได้โดยส่ง expression ที่ได้จาก DATESYTD เข้าไปใน SAMEPERIODLASTYEAR
.
ตัวอย่าง: CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(DATESYTD(‘Date'[Date])))
.
สูตรนี้จะคำนวณยอดสะสมตั้งแต่ต้นปีจนถึงวันที่ล่าสุดใน filter context แล้วเลื่อนย้อนกลับไป 1 ปี ทำให้ได้ยอด YTD ของปีก่อนหน้าในช่วงเดียวกัน
.
Pattern นี้มีประโยชน์มากสำหรับ dashboard ที่แสดง YTD comparison เช่น YTD Sales 2024 vs YTD Sales 2023 (ถึงวันที่เดียวกัน) ส่วนตัวผมใช้บ่อยมากเวลาทำ monthly performance report ครับ 📊

SAMEPERIODLASTYEAR เทียบเท่ากับ DATEADD อย่างไร และควรเลือกใช้ตัวไหน

SAMEPERIODLASTYEAR ทำงานเทียบเท่ากับ DATEADD(dates, -1, YEAR) คือเลื่อนวันที่ย้อนกลับไป 1 ปี ทั้งสองให้ผลลัพธ์เดียวกันในกรณีส่วนใหญ่
.
แต่ SAMEPERIODLASTYEAR อ่านง่ายกว่าเพราะชื่อสื่อความหมายชัดเจนว่าเป็น “same period last year” เหมาะสำหรับ YoY analysis
.
ส่วน DATEADD มีความยืดหยุ่นกว่าเพราะสามารถระบุจำนวนปี เดือน วัน ที่ต้องการเลื่อนได้เอง เหมาะกับกรณีที่ต้องการเลื่อนช่วงเวลาแบบกำหนดเอง (เช่น -2 ปี, -6 เดือน)
.
ส่วนตัวผมแนะนำให้ใช้ SAMEPERIODLASTYEAR เมื่อเป็น YoY comparison แบบมาตรฐาน เพราะคนอื่นอ่าน formula แล้วเข้าใจทันที แต่ถ้าต้องการความยืดหยุ่นในการกำหนดช่วงเวลา ก็ใช้ DATEADD แทนครับ 💡

Month-end extension semantics คืออะไร และมีผลอย่างไร

Month-end extension เป็นพฤติกรรมพิเศษของ SAMEPERIODLASTYEAR ที่เมื่อ filter context ปัจจุบันรวมถึง 2 วันสุดท้ายของเดือน function จะขยายผลลัพธ์ให้ครอบคลุมถึงวันสุดท้ายของเดือนนั้นในปีก่อนหน้า
.
ตัวอย่างให้เห็นภาพ: ถ้า filter context เป็นวันที่ 27-28 กุมภาพันธ์ 2009 → SAMEPERIODLASTYEAR จะคืนวันที่ 27-29 กุมภาพันธ์ 2008 (รวมวันที่ 29 ด้วยแม้ว่า context ต้นทางจะไม่รวม) เนื่องจากปี 2008 เป็นปีอธิกสุรทิน
.
พฤติกรรมนี้ช่วยให้การเปรียบเทียบ month-end periods ครบถ้วนแม้จะมีความยาวเดือนที่แตกต่างกัน แต่ถ้า filter context มีเพียงวันที่ 27 เดือนเดียว (ไม่รวมวันที่ 28) จะไม่เกิด extension และจะคืนเฉพาะวันที่ 27 ของปีก่อนเท่านั้น
.
ส่วนตัวผมว่า behavior นี้ค่อนข้าง subtle แต่สำคัญมาก โดยเฉพาะเวลาทำ month-end closing reports ครับ 📅

ทำไมต้อง mark date table และมีผลต่อ SAMEPERIODLASTYEAR อย่างไร

การ mark date table (ผ่าน Table Tools → Mark as Date Table ใน Power BI) บอก DAX engine ว่าตารางนี้เป็น date table อย่างเป็นทางการของโมเดล
.
เมื่อ mark แล้ว DAX จะเพิ่ม ALL function โดยอัตโนมัติใน CALCULATE statements ที่เกี่ยวข้องกับคอลัมน์วันที่ ทำให้ time intelligence functions เช่น SAMEPERIODLASTYEAR ทำงานได้ถูกต้องและประสิทธิภาพดีขึ้น
.
โดยเฉพาะเมื่อมีหลาย date tables หรือ date hierarchies ใน model การไม่ mark date table อาจทำให้เกิดปัญหา filter context ที่ไม่คาดคิด หรือผลลัพธ์ที่ไม่ถูกต้อง
.
ส่วนตัวผมแนะนำให้ mark date table เสมอเลยครับ เป็น best practice พื้นฐานที่ช่วยป้องกันปัญหาหลายอย่างได้ 💡

Resources & Related

Additional Notes

SAMEPERIODLASTYEAR เป็น time intelligence function ที่ทรงพลังมากตัวหนึ่งใน DAX ครับ
.
มันคืนค่าเป็น table ของวันที่ซึ่งเลื่อนย้อนกลับไป 1 ปี จากช่วงวันที่ที่อยู่ใน filter context ปัจจุบัน ออกแบบมาโดยเฉพาะเพื่อการเปรียบเทียบแบบ Year-over-Year (YoY) ซึ่งเป็นการวิเคราะห์ที่สำคัญมากในธุรกิจเพื่อดูแนวโน้มการเติบโตหรือลดลงเมื่อเทียบกับช่วงเดียวกันของปีก่อนหน้า

ที่เจ๋งคือ การทำงานของ SAMEPERIODLASTYEAR นั้นเทียบเท่ากับการใช้ DATEADD ด้วยพารามิเตอร์ -1, YEAR แต่ SAMEPERIODLASTYEAR มีชื่อที่สื่อความหมายชัดเจนกว่ามากว่าเป็นการอ้างอิงถึง “ช่วงเดียวกันของปีก่อน” ทำให้ formula อ่านง่ายและเข้าใจได้ทันที 💡
.
ตัวอย่างเช่น หากคุณกำลังดูยอดขายของเดือนมกราคม 2024 การใช้ SAMEPERIODLASTYEAR จะคืน table ของวันที่ทั้งหมดในเดือนมกราคม 2023 ซึ่งเราสามารถนำไปใช้เป็น filter argument ใน CALCULATE เพื่อคำนวณยอดขายของปีก่อนได้ทันทีครับ

ข้อกำหนดสำคัญ: Date Table ที่ต่อเนื่อง

เรื่องนี้สำคัญมากครับ… SAMEPERIODLASTYEAR ต้องการ date table ที่ครบถ้วนและต่อเนื่อง โดยต้องมีวันที่ครอบคลุมทุกวันตั้งแต่ 1 มกราคม ถึง 31 ธันวาคม ของทุกปีที่ต้องการวิเคราะห์
.
หาก date table มีช่องว่างหรือขาดวันที่บางวัน การคำนวณ YoY อาจให้ผลลัพธ์ที่ไม่ถูกต้องหรือแสดงค่าว่าง ซึ่งน่าปวดหัวมากเวลา debug 😅
.
นอกจากนี้ควร mark date table ในโมเดลด้วยนะครับ เพื่อให้ DAX engine จัดการ filter context ได้อย่างเหมาะสม ส่วนตัวผมแนะนำให้ทำเป็นขั้นตอนแรกเสมอเวลา setup model ใหม่ครับ 💡

พฤติกรรมพิเศษ: Month-End Extension

SAMEPERIODLASTYEAR มีพฤติกรรมพิเศษที่เรียกว่า “month-end extension semantics” ซึ่งค่อนข้าง subtle แต่สำคัญมากครับ
.
คือ เมื่อช่วงวันที่ใน filter context ปัจจุบันรวมถึง 2 วันสุดท้ายของเดือน function จะขยายผลลัพธ์ให้ครอบคลุมถึงวันสุดท้ายของเดือนนั้นในปีก่อนหน้าด้วย
.
ตัวอย่างให้เห็นภาพ… หาก filter context เป็นวันที่ 27-28 กุมภาพันธ์ 2009 SAMEPERIODLASTYEAR จะคืนวันที่ 27-29 กุมภาพันธ์ 2008 (รวมวันที่ 29 ด้วยเพราะ 2008 เป็นปีอธิกสุรทิน) แต่ถ้า filter context เป็นเพียงวันที่ 27 กุมภาพันธ์เท่านั้น ก็จะคืนเพียงวันที่ 27 กุมภาพันธ์ 2008
.
พฤติกรรมนี้ช่วยให้การเปรียบเทียบ month-end periods ครบถ้วนแม้จะมีความยาวเดือนที่แตกต่างกันครับ 😎

เมื่อไหร่ควรใช้ SAMEPERIODLASTYEAR

มาดูกันว่าเราควรใช้ SAMEPERIODLASTYEAR เมื่อไหร่บ้างครับ:

  • เปรียบเทียบ Year-over-Year – คำนวณยอดขาย ยอดรายได้ หรือ metrics อื่นๆ ของช่วงเดียวกันในปีก่อนหน้า เป็น use case ที่พบบ่อยที่สุดในงาน BI ครับ
  • คำนวณ growth rate – หาเปอร์เซ็นต์การเติบโตโดยเทียบปีปัจจุบันกับปีก่อน เหมาะสำหรับ executive dashboard มาก 📊
  • วิเคราะห์แนวโน้ม – สร้าง chart เปรียบเทียบข้อมูลปีนี้กับปีก่อนในแกนเดียวกัน ช่วยมองเห็น seasonality ได้ชัดเจน
  • Dashboard KPIs – แสดงตัวเลขปีก่อนข้างๆ ตัวเลขปัจจุบันเพื่อเปรียบเทียบ ส่วนตัวผมเจอใช้บ่อยมากในงาน performance report ครับ

Function นี้ใช้ได้ทั้งใน measures, calculated columns และ calculated tables แต่ ไม่แนะนำให้ใช้ใน visual calculations เนื่องจากอาจให้ผลลัพธ์ที่ไม่มีความหมาย
.
นอกจากนี้ SAMEPERIODLASTYEAR ไม่รองรับใน DirectQuery mode สำหรับ calculated columns หรือ row-level security (RLS) rules นะครับ ⚠️

Related functions ที่มักใช้ร่วมกับ SAMEPERIODLASTYEAR ได้แก่ CALCULATE (สำหรับแก้ไข filter context), PARALLELPERIOD (สำหรับเลื่อน period แบบกำหนดเอง), DATEADD (สำหรับเลื่อนช่วงเวลาแบบยืดหยุ่น), PREVIOUSYEAR (สำหรับอ้างอิงปีก่อนหน้าทั้งปี) และ DIVIDE (สำหรับคำนวณเปอร์เซ็นต์การเติบโตอย่างปลอดภัย)

Leave a Reply

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