ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

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

เรามีสถานการณ์ที่น่าสนใจสำหรับคุณในวันนี้ สิ่งนี้เกิดขึ้นสองสามครั้งเมื่อเร็วๆ นี้ในฟอรัม LuckyTemplates สิ่งที่ผู้คนต้องการทำคือการแสดงภาพ (ซึ่งอาจเป็นกราฟเส้นหรือแผนภูมิแท่ง) และเปลี่ยนแปลงแบบไดนามิกในวันที่เริ่มต้น คุณสามารถดูวิดีโอทั้งหมดของบทช่วยสอนนี้ได้ที่ด้านล่างของบล็อกนี้

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

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

สารบัญ

ตัวอย่างสถานการณ์ของ Time Intelligence ใน DAX

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

อีกเหตุผลหนึ่งในการใช้สิ่งนี้คือหากคุณต้องการแสดงภาพสิ่งนี้ในแบบเคลื่อนไหว โดยทั่วไปจะใช้ข้อมูลของคุณและแสดงแบบไดนามิกเมื่อคุณคลิกที่การเข้าถึงการเล่น

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

ในภาพนี้ เราสามารถเปลี่ยนวันที่เริ่มต้นแบบเดือนต่อเดือนเพื่อแสดงการเปลี่ยนแปลงในช่วงเวลา 12 เดือนเมื่อเวลาผ่านไป ภาพนี้เป็นภาพที่น่าสนใจและมีประโยชน์สำหรับกรณีธุรกิจต่างๆ แต่ในทางทฤษฎี มันยังแสดงถึงประเด็นสำคัญที่เกี่ยวข้องกับ DAX และการสร้างแบบจำลองข้อมูลอีกด้วย

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

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

การใช้ Offsets สำหรับ Time Intelligence ใน DAX

สิ่งหนึ่งที่เราจะทำคือการชดเชย ค่าชดเชยในตารางวันที่ขยายจะคำนวณแบบไดนามิก ทุกครั้งที่รีเฟรชหรือเปิดรายงาน รายงานจะต้องผ่านรหัส M ตัวอย่างเช่น ในการชดเชยรายเดือน จะกำหนดเดือนปัจจุบันด้วย 0 เดือนก่อนหน้าด้วย -1 และสองเดือนย้อนหลังด้วย -2 มองไปข้างหน้าในอนาคต จะกำหนด +1 ในเดือนถัดไป และอีกสองเดือนในอนาคต +2

นี่เป็นแนวคิดง่ายๆ แต่มีประสิทธิภาพอย่างไม่น่าเชื่อเมื่อคุณจัดการกับตัวแสดงเวลาใน DAX และทำงานกับเดือนไตรมาสและสัปดาห์ หากคุณไม่ได้ใช้ออฟเซ็ต บางครั้งมันจะสร้างความซับซ้อนพอสมควรในการคำนวณของคุณ

การใช้การชดเชยหมายถึงการใช้ชุดตัวเลขต่อเนื่อง โดยย้อนกลับไปหนึ่งเดือนจะเป็น -1 เสมอ และไปข้างหน้าหนึ่งเดือนจะเป็น +1 เสมอ โดยไม่คำนึงว่าคุณจะอยู่ที่ใดในปีนั้น

การใช้กลยุทธ์ Rubber Duck สำหรับ Time Intelligence ใน DAX

ก่อนหน้านี้ ฉันได้พูดถึงการเป็ดยางซึ่งเป็นการพูดกลยุทธ์ของคุณออกมาดังๆ ก่อนที่คุณจะเริ่มเขียน DAX ของคุณ

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

ฉันคิดออกมาดังๆ ว่าฉันจะจัดการเรื่องนี้อย่างไรจากบริบทรายเดือนโดยใช้ตัวแสดงเวลาใน DAX ฉันจะเริ่มต้นบางอย่างตามปีและเดือนที่เลือก และเลือกโดยใช้ตารางที่ไม่ได้เชื่อมต่อ เพราะถ้าคุณลองคิดดู การเลือกอื่นๆ ทุกครั้งจะเกี่ยวข้องกับการข้ามปี (ยกเว้นเดือนมกราคม)

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

การเก็บเกี่ยวค่าชดเชยจากวันที่เริ่มต้น

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

จากนั้นเราต้องการย้ายการชดเชยนั้นไปข้างหน้า 12 เดือน จากนั้นดูเฉพาะวันที่ที่อยู่ภายในชุดการชดเชยนั้น ให้ฉันแสดงให้คุณเห็นว่าใน DAX เป็นอย่างไร

การคำนวณช่วงรายเดือน

นี่คือการวัดของเราสำหรับภายในช่วง รายเดือนซึ่งเราเลือกปีของเรา (ซึ่งเราเก็บเกี่ยวจากตารางปีที่ขาดการเชื่อมต่อ) และเดือนของเรา (ซึ่งเราเก็บเกี่ยวจากตารางเดือนที่ขาดการเชื่อมต่อ)

นอกจากนี้ เรายังมีพารามิเตอร์อื่นซึ่งหากไม่มีการเลือก ค่าเริ่มต้นจะเป็นเดือนมกราคม พารามิเตอร์นี้มีไว้สำหรับการดีบักเท่านั้น

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

การคำนวณออฟเซ็ตเริ่มต้นและสิ้นสุดเดือน

มาดูการชดเชยเดือนเริ่มต้นโดยการคำนวณการชดเชย MAX เราลบตัวกรองทั้งหมดในตารางวันที่ และกรองลงไปตามเดือนที่เลือกและปีที่เลือก สำหรับแต่ละเดือน ควรมีเพียงหนึ่งออฟเซ็ตที่สอดคล้องกับเดือนและปีนั้น

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

จากจุดนั้น เราสามารถหักล้างเดือนที่สิ้นสุดซึ่งเป็นเพียงการหักล้างเดือนเริ่มต้น + 11 เดือน

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

จากนั้นเราจะดูแต่ละวันที่ที่เลือกและพิจารณาว่าอยู่ในช่วงชดเชยเดือนเริ่มต้นและชดเชยเดือนสิ้นสุดหรือไม่ ถ้าอยู่ในช่วงนั้น เราจะให้ 1 และถ้าไม่ใช่ เราจะให้ 0

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

ถ้าเรากลับไปที่มุมมองรายเดือนในวิชวลของเรา เราจะเห็น วิชวล ภายในช่วงที่เราตั้งค่าไว้เท่ากับหนึ่ง ดังนั้นจึงแสดงเฉพาะเดือนเหล่านั้นภายในช่วงเริ่มต้นถึงสิ้นสุดการชดเชย ตัวอย่างเช่น ถ้าเราคลิกที่กุมภาพันธ์ เราจะเห็นกุมภาพันธ์ถึงมกราคม

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

การคำนวณช่วงรายสัปดาห์

เรามาดูกันว่าสิ่งนี้เป็นอย่างไรจากมุมมองรายสัปดาห์ ภาพเริ่มโอเคและเปลี่ยนจากสัปดาห์ที่ 1 เป็นสัปดาห์ที่ 52 จนถึงตอนนี้ดีมาก

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

แต่ถ้าเราคลิกที่ปีอื่นๆ ในตัวแบ่งส่วนข้อมูลปี เราจะเห็นสัปดาห์ที่ 52 ในขณะที่บางสัปดาห์มีสัปดาห์ที่ 53 ซึ่งนำเสนอปัญหามากมาย คุณสามารถเห็นได้จากตัวอย่างนี้ว่าปัญหาเริ่มแสดงออกมา

เรามีระยะเวลาเริ่มต้นที่ปี 2020 และสัปดาห์ที่ 15แต่ระยะเวลาสิ้นสุดคือปี 2021 และสัปดาห์ที่ 13แทนที่จะเป็นปี 2021 และสัปดาห์ที่ 14

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

หากเราย้อนกลับไปที่สัปดาห์ที่ 1 เราจะเห็นว่าเริ่มต้นได้ปกติ แต่สิ้นสุดที่สัปดาห์ที่ 52 หากเราดูการคำนวณสัปดาห์ที่ 53 ที่นี่ จำนวนสัปดาห์สูงสุดสำหรับปี 2020 และ 2021 คือ 53 สัปดาห์ สิ่งนี้จะไม่ทำงานสำหรับรายละเอียดรายสัปดาห์

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

มาดูกันว่าเราจะทำอะไรได้บ้างเพื่อให้งานนี้สำเร็จ เราจำเป็นต้องแก้ไขการคำนวณ DAX ที่นี่ในส่วนนี้:

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

เนื่องจากในบางกรณี 51 ถูกต้องเมื่อมีเพียง 52 สัปดาห์ในหนึ่งปี แต่สำหรับปีที่มี 53 สัปดาห์ จะเป็นการทิ้งช่วงเวลาสุดท้ายนั้นไว้ นี่คือสิ่งที่เราเห็นในภาพไดนามิกเป็นเวลาหลายสัปดาห์ โดยที่การคำนวณได้ลบช่วงเวลาสุดท้ายในปี 2020 และ 2021 ออกไป

เพื่อแก้ไขปัญหานี้ เราไปที่ การวัด ภายในช่วงรายสัปดาห์ ที่ไม่ถูกต้องซึ่งจริง ๆ แล้วดูง่ายกว่าการวัดก่อนหน้านี้ เรามีการวัดค่าชดเชยเริ่มต้นและคำนวณค่าชดเชยสูงสุด จากนั้นเราถอดตัวกรองออกจากวันที่ จากนั้นกำหนดตัวกรองในสัปดาห์ที่เลือกและปีที่เลือกโดยมีข้อสันนิษฐานว่าจะนำไปสู่การชดเชยที่ถูกต้อง

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

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

แต่ถ้าเราย้อนกลับไปที่นี่ที่ISO WeekNumberเราจะเห็นว่าตัวเลขปีและหนึ่งสัปดาห์ไม่ได้กำหนดการชดเชยรายสัปดาห์ในช่วงเวลาแรกนั้นซ้ำกัน

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

ฉันคิดวิธีกันกระสุนในการทำเช่นนี้ คุณสามารถใช้ MIN ได้ แต่การสร้าง มาตรการชดเชย Week1นี้เหมาะสมกว่า เพื่อที่จะชดเชยสัปดาห์ที่ 1 เรากำลังจัดการกับสัปดาห์ที่ 2 เพราะมันไม่เคยถูกแบ่ง ไม่ว่าปีจะมี 52 หรือ 53 สัปดาห์ สัปดาห์ที่ 2 ก็ยังคงเหมือนเดิม

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

ในการคำนวณนี้ เรากำลังกรองลงไปจนถึงสัปดาห์ที่ 2 เพื่อรับค่าชดเชย แล้วพอเราได้ออฟเซ็ตของสัปดาห์ที่ 2 เราก็ลบออกหนึ่งอัน สิ่งนี้จะให้การชดเชยสัปดาห์ที่ 1 แก่เราอย่างชัดเจน สิ่งนี้จะจบลงด้วยการแก้ปัญหาของเรา

การคำนวณช่วงภายในรายสัปดาห์

จากนั้นเรากลับไปที่ การวัด ภายในช่วงรายสัปดาห์ ของเรา และเขียนคำสั่ง IF ซึ่งถ้าหมายเลขการเก็บเกี่ยวสำหรับสัปดาห์ที่ 1 เราจะคำนวณการชดเชยสัปดาห์ที่หนึ่ง หากไม่ใช่สัปดาห์ที่ 1 เราจะคำนวณการชดเชยสัปดาห์เริ่มต้นเหมือนที่เราคำนวณในรายเดือนก่อนหน้า

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

จากนั้นการชดเชยสัปดาห์ที่สิ้นสุดจะเป็นการชดเชยสัปดาห์เริ่มต้น + จำนวนสัปดาห์สูงสุดซึ่งอาจเป็น 52 หรือ 53 จากนั้นเราก็ลบ 1 เพื่อไม่ให้นับการชดเชยการเริ่มต้นซ้ำ

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

เราสามารถสร้างโครงสร้างแบบเดียวกันกับที่เราใช้สำหรับช่วงรายเดือนเพื่อกรองสัปดาห์ โดยสิ่งใดที่อยู่ระหว่างจุดเริ่มต้นและจุดสิ้นสุดออฟเซ็ตจะได้รับ 1 และสิ่งใดก็ตามที่ไม่มี 0

จากนั้นเราจะวางการวัดภายในช่วงรายสัปดาห์ลงในบานหน้าต่างตัวกรอง ตรวจสอบทุกอย่างและดูถูกต้อง

ตัวแสดงเวลาใน DAX: วิธีเลือกระยะเวลาเริ่มต้นแบบไดนามิก

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

บทสรุป

นี่เป็นการเจาะลึกเกี่ยวกับตัวแสดงเวลาใน DAX ซึ่งเราได้กล่าวถึงวิธีที่เราสามารถแก้ไขปัญหาบางอย่างเกี่ยวกับจำนวนสัปดาห์ ฉันหวังว่าคุณจะพบว่าบทช่วยสอนนี้มีประโยชน์และมอบเครื่องมือเพิ่มเติมบางอย่างในกล่องเครื่องมือของคุณเมื่อคุณต้องรับมือกับสถานการณ์ที่มีปัญหาตลอดสัปดาห์

หากคุณชอบเนื้อหาที่ครอบคลุมในบทช่วยสอนนี้ โปรดอย่าลืมสมัครรับข้อมูลจากช่อง LuckyTemplates TV เรามีเนื้อหาจำนวนมากออกมาตลอดเวลาจากตัวฉันเองและผู้สร้างเนื้อหาจำนวนมาก ทั้งหมดนี้ทุ่มเทให้กับการปรับปรุงวิธีที่คุณใช้ LuckyTemplates และ Power Platform


ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

วิธีบันทึกและโหลดไฟล์ RDS ใน R

วิธีบันทึกและโหลดไฟล์ RDS ใน R

คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates

เยี่ยมชม N วันทำการแรก – โซลูชันภาษาการเข้ารหัส DAX

เยี่ยมชม N วันทำการแรก – โซลูชันภาษาการเข้ารหัส DAX

ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก

แสดงข้อมูลเชิงลึกโดยใช้เทคนิคการแสดงภาพแบบไดนามิกแบบหลายเธรดใน LuckyTemplates

แสดงข้อมูลเชิงลึกโดยใช้เทคนิคการแสดงภาพแบบไดนามิกแบบหลายเธรดใน LuckyTemplates

บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ

บทนำในการกรองบริบทใน LuckyTemplates

บทนำในการกรองบริบทใน LuckyTemplates

ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น

เคล็ดลับที่ดีที่สุดในการใช้แอปใน LuckyTemplates Online Service

เคล็ดลับที่ดีที่สุดในการใช้แอปใน LuckyTemplates Online Service

ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร

วิเคราะห์การเปลี่ยนแปลงอัตรากำไรล่วงเวลา – การวิเคราะห์ด้วย LuckyTemplates และ DAX

วิเคราะห์การเปลี่ยนแปลงอัตรากำไรล่วงเวลา – การวิเคราะห์ด้วย LuckyTemplates และ DAX

เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates

แนวคิด Materialization สำหรับแคชข้อมูลใน DAX Studio

แนวคิด Materialization สำหรับแคชข้อมูลใน DAX Studio

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

การรายงานทางธุรกิจโดยใช้ LuckyTemplates

การรายงานทางธุรกิจโดยใช้ LuckyTemplates

หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้