PREVIOUSWEEK คืนตารางวันที่ของสัปดาห์ก่อนหน้า ตามบริบทวันที่ปัจจุบัน เหมาะสำหรับตัวชี้วัดแบบ Week-over-Week โดยนำตารางวันที่ไปใช้เป็นตัวกรองเวลา
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| dates | Column (Date) | คอลัมน์วันที่ (Date) จากตารางวันที่/ปฏิทิน ที่ต้องการเลื่อนย้อนหลังไปหนึ่งสัปดาห์ |
PREVIOUSWEEK เป็นฟังก์ชัน Time Intelligence ของ DAX ที่ “เดินย้อนหลังหนึ่งสัปดาห์” จากวันที่ที่เลือกในบริบทปัจจุบัน คืนค่าเป็นตารางวันที่ครบถ้วนของสัปดาห์ก่อนหน้า แทนที่จะเป็นแค่วันเดียว
สิ่งที่เจ๋งคือ มันทำให้การเทียบ Week-over-Week (WoW) ง่ายขึ้นเยอะ เพราะไม่ต้องไปคำนวณช่วงวันด้วยตัวเอง – DAX ทำให้คุณเลยโดยอ้างอิงปฏิทินในโมเดล
ส่วนตัวผมคิดว่า เวลาคุณอยากเทียบตัวเลขสัปดาห์นี้กับสัปดาห์ที่แล้ว ฟังก์ชันนี้มันต่างจากการ DATEADD(-7) นะ – เพราะมันเข้าใจแนวคิด “สัปดาห์” ของปฏิทิน ไม่ใช่แค่ลบ 7 วันตรงๆ 😎
ทำตัวชี้วัดเทียบสัปดาห์ต่อสัปดาห์ เช่น ยอดขายสัปดาห์ก่อนหน้า
เทียบผลงานสัปดาห์ปัจจุบันกับสัปดาห์ก่อน
PREVIOUSWEEK ทำให้ CALCULATE เปลี่ยน Filter Context ไปที่สัปดาห์ก่อนหน้าแทน ส่วนตัวเลขก็มาจากการ SUM ยอดขายในช่วงนั้น
ลบยอดขายเดือนนี้ด้วยเดือนก่อนหน้า แล้วหารด้วยเดือนก่อนหน้า – เก่ามาก แต่ใช้ได้
ถ้าวันนี้อยู่ในสัปดาห์ 15-21 ธ.ค. ฟังก์ชันนี้จะคืนวันที่ 8-14 ธ.ค. ตารางเต็มๆ ใช้ได้ในการสร้าง Calculated Table
DATEADD(-7) เพียงแค่ลบ 7 วันตรงๆ ไม่สนใจว่าวันนั้นเป็นสัปดาห์ไหน แต่ PREVIOUSWEEK เข้าใจแนวคิด 'สัปดาห์' จากปฏิทิน – ถ้าปฏิทินของคุณใช้สัปดาห์เริ่มจากวันจันทร์ มันจะให้สัปดาห์ที่เริ่มจากจันทร์ของสัปดาห์ก่อน
ใช่ แนะนำให้มีตารางวันที่ที่ต่อเนื่อง (ทั้งปี จากวันที่ 1 มกราคม ถึง 31 ธันวาคม) และกำหนดเป็น Date Table ในโมเดล มิฉะนั้นอาจให้ผลลัพธ์ที่ผิด
อ้างอิงตามปฏิทินที่ตั้งไว้ในตารางวันที่ ถ้าคุณใช้ ISO Week (เริ่มจันทร์) มันจะให้สัปดาห์แบบ ISO Week ถ้าใช้ US Week (เริ่มอาทิตย์) มันจะให้สัปดาห์แบบ US
ใช้ได้ในทั้ง 3 แบบ แต่ไม่ควรใช้ใน Visual Calculations เพราะอาจให้ผลลัพธ์ที่ไม่มีความหมาย
ฟังก์ชันที่ผู้เขียนโยงไว้กับ PREVIOUSWEEK จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
CLOSINGBALANCEWEEK ประเมินนิพจน์ (มาตรวัด) ที่วันสิ้นสัปดาห์ของบริบทวันที่ปัจจุบัน สำคัญสำหรับรายงานปิดสัปดาห์และ snapshot ยอดคงเหลือ
ฟังก์ชัน ENDOFWEEK คืนตารางวันที่ที่แสดงวันสิ้นสุดของสัปดาห์ตามบริบทวันที่ปัจจุบัน ใช้สำหรับการวิเคราะห์ข้อมูลตามระดับสัปดาห์ และการเปรียบเทียบเมตริกส์ณวันปิดสัปดาห์
NEXTWEEK คืนตารางวันที่ของสัปดาห์ถัดไปจากบริบทวันที่ปัจจุบัน มักใช้เป็นตารางตัวกรองใน CALCULATE เพื่อคำนวณค่าแบบ "สัปดาห์ถัดไป"
OPENINGBALANCEWEEK ประเมิน Expression ณ จุดเปิดสัปดาห์ (คือวันสิ้นสัปดาห์ก่อนหน้า) ใช้เพื่อเปรียบเทียบค่าเปลี่ยนแปลงระหว่างเปิดและปิดสัปดาห์
PREVIOUSDAY คืนตารางวันที่ของวันก่อนหน้า ตามบริบทวันที่ปัจจุบัน เหมาะสำหรับทำตัวชี้วัดแบบเทียบวันต่อวัน โดยนำตารางวันที่ไปใช้เป็นตัวกรองเวลา
PREVIOUSMONTH คืนตารางวันที่ทั้งหมดของเดือนก่อนหน้า โดยอ้างอิงจากวันแรกของบริบทปัจจุบัน เหมาะกับการทำ Measure เปรียบเทียบ Month-over-Month เช่น ยอดขายเดือนก่อนหน้า ข้อแตกต่างสำคัญกับ DATEADD คือ PREVIOUSMONTH คืนทั้งเดือนเสมอ ไม่ว่าจะเลือกวันไหนก็ตาม
PREVIOUSQUARTER คืนตารางวันที่ของไตรมาสก่อนหน้า ตามวันที่แรกในบริบทปัจจุบัน ใช้สำหรับสร้าง Measure เปรียบเทียบ Quarter-over-Quarter (QoQ) โดยคืนวันที่ครบทั้งไตรมาสเสมอ ไม่ว่าจะเลือกวันที่ใดก็ตาม ภายในใช้ PARALLELPERIOD(FIRSTDATE(dates), -1, QUARTER)
PREVIOUSYEAR คืนตารางวันที่ของปีก่อนหน้า ตามบริบทวันที่ปัจจุบัน เหมาะสำหรับตัวชี้วัดแบบ Year-over-Year โดยนำตารางวันที่ไปใช้เป็นตัวกรองเวลา
STARTOFWEEK คืนตารางที่มีวันแรกของสัปดาห์ตามปฏิทินที่กำหนด ใช้เป็นตัวกรองใน CALCULATE หรือดึงค่าสเกลาร์ด้วย MINX ฟังก์ชันนี้จำเป็นต้องมีตารางวันที่ที่ถูกกำหนดไว้เป็น Date Table
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
อีเมลของคุณจะไม่ถูกเผยแพร่