Thep Excel

PARALLELPERIODเลื่อนช่วงเวลาแบบเต็มเดือน/ไตรมาส/ปี (Full Period Shift)

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

fx
=PARALLELPERIOD(<Dates>, <NumberOfIntervals>, <Interval>)

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

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
Dates column คอลัมน์วันที่จากตารางวันที่
NumberOfIntervals number จำนวนหน่วยที่ต้องการเลื่อน (ติดลบ = ย้อนหลัง, บวก = ไปข้างหน้า)
Interval enum หน่วยเวลา: MONTH, QUARTER, YEAR

Additional Notes

PARALLELPERIOD เป็นฟังก์ชัน Time Intelligence สำหรับ “เลื่อนช่วงเวลา” ไปข้างหน้าหรือย้อนหลัง และมีจุดเด่นคือ จะขยายผลลัพธ์ให้ครอบคลุมทั้งหน่วยเวลา เสมอ (MONTH/QUARTER/YEAR) เช่น ถ้าบริบทปัจจุบันเป็นช่วง 1–15 ม.ค. แล้วเลื่อนย้อนหลัง 1 เดือน ผลลัพธ์จะเป็น “ทั้งเดือนธ.ค.” ไม่ใช่แค่ 1–15 ธ.ค.

พฤติกรรมนี้ต่างจาก DATEADD ที่มัก “รักษาความยาวของช่วงเดิม” (เลื่อน 15 วันก็ได้ 15 วัน) ทำให้ PARALLELPERIOD เหมาะกับงาน benchmark แบบ “เทียบทั้งเดือน/ทั้งไตรมาส/ทั้งปี”

How it works

เทียบยอดรวมทั้งเดือนก่อนหน้า

แม้ผู้ใช้เลือกช่วงสั้น ๆ ในเดือนนี้ ก็ยังเทียบกับทั้งเดือนก่อนหน้าได้

เทียบยอดรวมทั้งไตรมาสก่อนหน้า

ได้ยอดรวมทั้งไตรมาสก่อนหน้าเสมอ

เทียบยอดรวมทั้งปีก่อนหน้า

เหมาะกับการทำ benchmark รายปี

Examples

ตัวอย่างที่ 1: ยอดขายทั้งเดือนก่อนหน้า (เต็มเดือน)ยอดขายเดือนก่อน (เต็มเดือน) = CALCULATE( [Total Sales], PARALLELPERIOD('Date'[Date], -1, MONTH) )

แม้บริบทปัจจุบันเลือกแค่บางวัน PARALLELPERIOD จะขยายผลลัพธ์ให้เป็นทั้งเดือนของช่วงที่เลื่อน

fx
=ยอดขายเดือนก่อน (เต็มเดือน) =
CALCULATE(
[Total Sales],
PARALLELPERIOD('Date'[Date], -1, MONTH)
)

ผลลัพธ์ได้ยอดขายรวมของเดือนก่อนหน้าทั้งเดือน
ตัวอย่างที่ 2: ยอดขายทั้งไตรมาสก่อนหน้า (เต็มไตรมาส)ยอดขายไตรมาสก่อน (เต็มไตรมาส) = CALCULATE( [Total Sales], PARALLELPERIOD('Date'[Date], -1, QUARTER) )

เหมาะกับการทำ KPI รายไตรมาสที่ต้องการเทียบยอดรวมทั้งคาบ

fx
=ยอดขายไตรมาสก่อน (เต็มไตรมาส) =
CALCULATE(
[Total Sales],
PARALLELPERIOD('Date'[Date], -1, QUARTER)
)

ผลลัพธ์ได้ยอดขายรวมทั้งไตรมาสก่อนหน้า
ตัวอย่างที่ 3: เปรียบเทียบกับ DATEADD (แนวคิด)แนวคิด: DATEADD มักรักษาความยาวช่วงเดิม แต่ PARALLELPERIOD จะขยายให้เต็มคาบ

ถ้าคุณอยากได้ช่วงที่เลื่อน “ยาวเท่าเดิม” ให้ดู DATEADD แต่ถ้าอยากได้ “เต็มเดือน/ไตรมาส/ปี” ให้ดู PARALLELPERIOD

fx
=แนวคิด: DATEADD มักรักษาความยาวช่วงเดิม แต่ PARALLELPERIOD จะขยายให้เต็มคาบ

ผลลัพธ์เลือกใช้ให้ตรงพฤติกรรมที่ต้องการ

FAQs

PARALLELPERIOD ต่างจาก DATEADD อย่างไร?+

DATEADD มักรักษาความยาวช่วงเดิม ส่วน PARALLELPERIOD ขยายให้เต็มหน่วยเวลาที่ระบุ (MONTH/QUARTER/YEAR) เสมอ

ทำไมไม่มีหน่วย DAY?+

เพราะ PARALLELPERIOD ถูกออกแบบมาสำหรับการเลื่อนแบบ “คาบใหญ่” (เดือน/ไตรมาส/ปี) มากกว่าแบบรายวัน

Resources & Related

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

ฟังก์ชันนี้PARALLELPERIODTime Intelligence
Time Intelligence (10)
DATEADD

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

DATESBETWEEN

DATESBETWEEN คืนตารางวันที่ที่อยู่ระหว่าง StartDate และ EndDate (รวมวันเริ่ม/วันจบ) เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อคำนวณตามช่วงวันที่ที่กำหนดเอง

DATESINPERIOD

DATESINPERIOD คืนตารางวันที่แบบเคลื่อนที่ โดยเริ่มจาก StartDate และขยายไปตามจำนวนช่วงและหน่วยที่กำหนด เหมาะกับการทำคำนวณแบบ rolling YTD, rolling average, ย้อนหลัง หรือล่วงหน้าแบบยืดหยุ่น

DATESMTD

DATESMTD คืนตารางวันที่ของช่วงตั้งแต่ต้นเดือนถึงวันที่ล่าสุดใน filter context เหมาะกับการทำยอดสะสมตั้งแต่ต้นเดือน (MTD) โดยใช้ร่วมกับ CALCULATE และควรใช้คู่กับ ShowValueForDates pattern เพื่อไม่ให้แสดงค่าในวันที่ยังไม่มีข้อมูล

DATESYTD

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

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 โดยนำตารางวันที่ไปใช้เป็นตัวกรองเวลา

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

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