ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ในบล็อกโพสต์นี้ เราจะจัดการกับปัญหาที่ยุ่งยากในข่าวกรองเวลา โดยเฉพาะอย่างยิ่งปัญหาที่เกิดจากความละเอียดของสัปดาห์และปัญหาที่อาจเกิดจากจำนวนสัปดาห์ที่ไม่สม่ำเสมอในหนึ่งปี เราจะใช้การชดเชยเพื่อสร้างตัวแสดงเวลาที่แม่นยำใน DAX
เรามีสถานการณ์ที่น่าสนใจสำหรับคุณในวันนี้ สิ่งนี้เกิดขึ้นสองสามครั้งเมื่อเร็วๆ นี้ในฟอรัม LuckyTemplates สิ่งที่ผู้คนต้องการทำคือการแสดงภาพ (ซึ่งอาจเป็นกราฟเส้นหรือแผนภูมิแท่ง) และเปลี่ยนแปลงแบบไดนามิกในวันที่เริ่มต้น คุณสามารถดูวิดีโอทั้งหมดของบทช่วยสอนนี้ได้ที่ด้านล่างของบล็อกนี้
ในกรณีนี้ เราใช้ชุดข้อมูลเดียวกับที่เราทำงานสำหรับ ราคาสปอต เฉลี่ยต่อบาร์เรลของน้ำมัน แทนที่จะเริ่มต้นตั้งแต่ต้นเดือนมกราคมเสมอ เราต้องการให้คลิกภาพ เปลี่ยนเป็นวันที่เริ่มต้นอื่น แต่แสดงข้อมูลหนึ่งปีเสมอ
สารบัญ
ตัวอย่างสถานการณ์ของ Time Intelligence ใน DAX
มีเหตุผลหลายประการที่คุณอาจต้องการทำเทคนิคนี้ คุณสามารถใช้วิธีนี้ได้หากคุณมีเมตริกที่ได้รับการปรับปรุงใหม่อยู่เสมอในแง่ของวิธีการคำนวณ คุณอาจต้องการแสดงข้อมูลจากช่วงเวลาของการปรับใหม่ไปข้างหน้าเท่านั้น
อีกเหตุผลหนึ่งในการใช้สิ่งนี้คือหากคุณต้องการแสดงภาพสิ่งนี้ในแบบเคลื่อนไหว โดยทั่วไปจะใช้ข้อมูลของคุณและแสดงแบบไดนามิกเมื่อคุณคลิกที่การเข้าถึงการเล่น
ในภาพนี้ เราสามารถเปลี่ยนวันที่เริ่มต้นแบบเดือนต่อเดือนเพื่อแสดงการเปลี่ยนแปลงในช่วงเวลา 12 เดือนเมื่อเวลาผ่านไป ภาพนี้เป็นภาพที่น่าสนใจและมีประโยชน์สำหรับกรณีธุรกิจต่างๆ แต่ในทางทฤษฎี มันยังแสดงถึงประเด็นสำคัญที่เกี่ยวข้องกับ DAX และการสร้างแบบจำลองข้อมูลอีกด้วย
ไปที่ LuckyTemplates และดูแบบจำลองข้อมูลของเราก่อน นี่คือโมเดลข้อมูลที่เรียบง่ายจริงๆ พร้อมตารางวันที่ขยายและตารางราคาสปอตที่เชื่อมต่อกับวันที่
การใช้ Offsets สำหรับ Time Intelligence ใน DAX
สิ่งหนึ่งที่เราจะทำคือการชดเชย ค่าชดเชยในตารางวันที่ขยายจะคำนวณแบบไดนามิก ทุกครั้งที่รีเฟรชหรือเปิดรายงาน รายงานจะต้องผ่านรหัส M ตัวอย่างเช่น ในการชดเชยรายเดือน จะกำหนดเดือนปัจจุบันด้วย 0 เดือนก่อนหน้าด้วย -1 และสองเดือนย้อนหลังด้วย -2 มองไปข้างหน้าในอนาคต จะกำหนด +1 ในเดือนถัดไป และอีกสองเดือนในอนาคต +2
นี่เป็นแนวคิดง่ายๆ แต่มีประสิทธิภาพอย่างไม่น่าเชื่อเมื่อคุณจัดการกับตัวแสดงเวลาใน DAX และทำงานกับเดือนไตรมาสและสัปดาห์ หากคุณไม่ได้ใช้ออฟเซ็ต บางครั้งมันจะสร้างความซับซ้อนพอสมควรในการคำนวณของคุณ
การใช้การชดเชยหมายถึงการใช้ชุดตัวเลขต่อเนื่อง โดยย้อนกลับไปหนึ่งเดือนจะเป็น -1 เสมอ และไปข้างหน้าหนึ่งเดือนจะเป็น +1 เสมอ โดยไม่คำนึงว่าคุณจะอยู่ที่ใดในปีนั้น
การใช้กลยุทธ์ Rubber Duck สำหรับ Time Intelligence ใน DAX
ก่อนหน้านี้ ฉันได้พูดถึงการเป็ดยางซึ่งเป็นการพูดกลยุทธ์ของคุณออกมาดังๆ ก่อนที่คุณจะเริ่มเขียน DAX ของคุณ
ฉันคิดออกมาดังๆ ว่าฉันจะจัดการเรื่องนี้อย่างไรจากบริบทรายเดือนโดยใช้ตัวแสดงเวลาใน DAX ฉันจะเริ่มต้นบางอย่างตามปีและเดือนที่เลือก และเลือกโดยใช้ตารางที่ไม่ได้เชื่อมต่อ เพราะถ้าคุณลองคิดดู การเลือกอื่นๆ ทุกครั้งจะเกี่ยวข้องกับการข้ามปี (ยกเว้นเดือนมกราคม)
สมมติว่าเราต้องการ 12 เดือนโดยเริ่มตั้งแต่เดือนมีนาคม เราจะเหลือเวลาอย่างน้อยสองเดือนในปีถัดไป หากเราใช้ตัวแบ่งส่วนข้อมูลที่เชื่อมต่อ เราจะกรองได้เฉพาะในปีนั้นและจะไม่สามารถกรองในปีถัดไปได้
การเก็บเกี่ยวค่าชดเชยจากวันที่เริ่มต้น
ลองทำสิ่งนี้กับตารางที่เชื่อมต่อกันสำหรับทั้งเดือนและปี ขั้นแรก เราต้องเก็บเกี่ยวค่าชดเชยแรกที่เกี่ยวข้องกับวันที่เริ่มต้น
จากนั้นเราต้องการย้ายการชดเชยนั้นไปข้างหน้า 12 เดือน จากนั้นดูเฉพาะวันที่ที่อยู่ภายในชุดการชดเชยนั้น ให้ฉันแสดงให้คุณเห็นว่าใน DAX เป็นอย่างไร
การคำนวณช่วงรายเดือน
นี่คือการวัดของเราสำหรับภายในช่วง รายเดือนซึ่งเราเลือกปีของเรา (ซึ่งเราเก็บเกี่ยวจากตารางปีที่ขาดการเชื่อมต่อ) และเดือนของเรา (ซึ่งเราเก็บเกี่ยวจากตารางเดือนที่ขาดการเชื่อมต่อ)
นอกจากนี้ เรายังมีพารามิเตอร์อื่นซึ่งหากไม่มีการเลือก ค่าเริ่มต้นจะเป็นเดือนมกราคม พารามิเตอร์นี้มีไว้สำหรับการดีบักเท่านั้น
การคำนวณออฟเซ็ตเริ่มต้นและสิ้นสุดเดือน
มาดูการชดเชยเดือนเริ่มต้นโดยการคำนวณการชดเชย MAX เราลบตัวกรองทั้งหมดในตารางวันที่ และกรองลงไปตามเดือนที่เลือกและปีที่เลือก สำหรับแต่ละเดือน ควรมีเพียงหนึ่งออฟเซ็ตที่สอดคล้องกับเดือนและปีนั้น
จากจุดนั้น เราสามารถหักล้างเดือนที่สิ้นสุดซึ่งเป็นเพียงการหักล้างเดือนเริ่มต้น + 11 เดือน
จากนั้นเราจะดูแต่ละวันที่ที่เลือกและพิจารณาว่าอยู่ในช่วงชดเชยเดือนเริ่มต้นและชดเชยเดือนสิ้นสุดหรือไม่ ถ้าอยู่ในช่วงนั้น เราจะให้ 1 และถ้าไม่ใช่ เราจะให้ 0
ถ้าเรากลับไปที่มุมมองรายเดือนในวิชวลของเรา เราจะเห็น วิชวล ภายในช่วงที่เราตั้งค่าไว้เท่ากับหนึ่ง ดังนั้นจึงแสดงเฉพาะเดือนเหล่านั้นภายในช่วงเริ่มต้นถึงสิ้นสุดการชดเชย ตัวอย่างเช่น ถ้าเราคลิกที่กุมภาพันธ์ เราจะเห็นกุมภาพันธ์ถึงมกราคม
การคำนวณช่วงรายสัปดาห์
เรามาดูกันว่าสิ่งนี้เป็นอย่างไรจากมุมมองรายสัปดาห์ ภาพเริ่มโอเคและเปลี่ยนจากสัปดาห์ที่ 1 เป็นสัปดาห์ที่ 52 จนถึงตอนนี้ดีมาก
แต่ถ้าเราคลิกที่ปีอื่นๆ ในตัวแบ่งส่วนข้อมูลปี เราจะเห็นสัปดาห์ที่ 52 ในขณะที่บางสัปดาห์มีสัปดาห์ที่ 53 ซึ่งนำเสนอปัญหามากมาย คุณสามารถเห็นได้จากตัวอย่างนี้ว่าปัญหาเริ่มแสดงออกมา
เรามีระยะเวลาเริ่มต้นที่ปี 2020 และสัปดาห์ที่ 15แต่ระยะเวลาสิ้นสุดคือปี 2021 และสัปดาห์ที่ 13แทนที่จะเป็นปี 2021 และสัปดาห์ที่ 14
หากเราย้อนกลับไปที่สัปดาห์ที่ 1 เราจะเห็นว่าเริ่มต้นได้ปกติ แต่สิ้นสุดที่สัปดาห์ที่ 52 หากเราดูการคำนวณสัปดาห์ที่ 53 ที่นี่ จำนวนสัปดาห์สูงสุดสำหรับปี 2020 และ 2021 คือ 53 สัปดาห์ สิ่งนี้จะไม่ทำงานสำหรับรายละเอียดรายสัปดาห์
มาดูกันว่าเราจะทำอะไรได้บ้างเพื่อให้งานนี้สำเร็จ เราจำเป็นต้องแก้ไขการคำนวณ DAX ที่นี่ในส่วนนี้:
เนื่องจากในบางกรณี 51 ถูกต้องเมื่อมีเพียง 52 สัปดาห์ในหนึ่งปี แต่สำหรับปีที่มี 53 สัปดาห์ จะเป็นการทิ้งช่วงเวลาสุดท้ายนั้นไว้ นี่คือสิ่งที่เราเห็นในภาพไดนามิกเป็นเวลาหลายสัปดาห์ โดยที่การคำนวณได้ลบช่วงเวลาสุดท้ายในปี 2020 และ 2021 ออกไป
เพื่อแก้ไขปัญหานี้ เราไปที่ การวัด ภายในช่วงรายสัปดาห์ ที่ไม่ถูกต้องซึ่งจริง ๆ แล้วดูง่ายกว่าการวัดก่อนหน้านี้ เรามีการวัดค่าชดเชยเริ่มต้นและคำนวณค่าชดเชยสูงสุด จากนั้นเราถอดตัวกรองออกจากวันที่ จากนั้นกำหนดตัวกรองในสัปดาห์ที่เลือกและปีที่เลือกโดยมีข้อสันนิษฐานว่าจะนำไปสู่การชดเชยที่ถูกต้อง
แต่ไม่ได้ผลเพราะไม่สำคัญว่าคุณกำลังใช้ออฟเซ็ตสูงสุดหรือออฟเซ็ตขั้นต่ำ สิ่งที่เรากำลังทำคือล้อมตัวรวบรวมไว้รอบ ๆ เพื่อที่เราจะไม่ใส่คอลัมน์เปล่าในคำสั่ง CALCULATE
แต่ถ้าเราย้อนกลับไปที่นี่ที่ISO WeekNumberเราจะเห็นว่าตัวเลขปีและหนึ่งสัปดาห์ไม่ได้กำหนดการชดเชยรายสัปดาห์ในช่วงเวลาแรกนั้นซ้ำกัน
ฉันคิดวิธีกันกระสุนในการทำเช่นนี้ คุณสามารถใช้ MIN ได้ แต่การสร้าง มาตรการชดเชย Week1นี้เหมาะสมกว่า เพื่อที่จะชดเชยสัปดาห์ที่ 1 เรากำลังจัดการกับสัปดาห์ที่ 2 เพราะมันไม่เคยถูกแบ่ง ไม่ว่าปีจะมี 52 หรือ 53 สัปดาห์ สัปดาห์ที่ 2 ก็ยังคงเหมือนเดิม
ในการคำนวณนี้ เรากำลังกรองลงไปจนถึงสัปดาห์ที่ 2 เพื่อรับค่าชดเชย แล้วพอเราได้ออฟเซ็ตของสัปดาห์ที่ 2 เราก็ลบออกหนึ่งอัน สิ่งนี้จะให้การชดเชยสัปดาห์ที่ 1 แก่เราอย่างชัดเจน สิ่งนี้จะจบลงด้วยการแก้ปัญหาของเรา
การคำนวณช่วงภายในรายสัปดาห์
จากนั้นเรากลับไปที่ การวัด ภายในช่วงรายสัปดาห์ ของเรา และเขียนคำสั่ง IF ซึ่งถ้าหมายเลขการเก็บเกี่ยวสำหรับสัปดาห์ที่ 1 เราจะคำนวณการชดเชยสัปดาห์ที่หนึ่ง หากไม่ใช่สัปดาห์ที่ 1 เราจะคำนวณการชดเชยสัปดาห์เริ่มต้นเหมือนที่เราคำนวณในรายเดือนก่อนหน้า
จากนั้นการชดเชยสัปดาห์ที่สิ้นสุดจะเป็นการชดเชยสัปดาห์เริ่มต้น + จำนวนสัปดาห์สูงสุดซึ่งอาจเป็น 52 หรือ 53 จากนั้นเราก็ลบ 1 เพื่อไม่ให้นับการชดเชยการเริ่มต้นซ้ำ
เราสามารถสร้างโครงสร้างแบบเดียวกันกับที่เราใช้สำหรับช่วงรายเดือนเพื่อกรองสัปดาห์ โดยสิ่งใดที่อยู่ระหว่างจุดเริ่มต้นและจุดสิ้นสุดออฟเซ็ตจะได้รับ 1 และสิ่งใดก็ตามที่ไม่มี 0
จากนั้นเราจะวางการวัดภายในช่วงรายสัปดาห์ลงในบานหน้าต่างตัวกรอง ตรวจสอบทุกอย่างและดูถูกต้อง
เราสามารถคลิกที่แกนการเล่นและเรียกใช้รายละเอียดของสัปดาห์ เราจะเห็นว่ามันทำงานอย่างถูกต้องเช่นเดียวกับในบริบทของเดือน
บทสรุป
นี่เป็นการเจาะลึกเกี่ยวกับตัวแสดงเวลาใน DAX ซึ่งเราได้กล่าวถึงวิธีที่เราสามารถแก้ไขปัญหาบางอย่างเกี่ยวกับจำนวนสัปดาห์ ฉันหวังว่าคุณจะพบว่าบทช่วยสอนนี้มีประโยชน์และมอบเครื่องมือเพิ่มเติมบางอย่างในกล่องเครื่องมือของคุณเมื่อคุณต้องรับมือกับสถานการณ์ที่มีปัญหาตลอดสัปดาห์
หากคุณชอบเนื้อหาที่ครอบคลุมในบทช่วยสอนนี้ โปรดอย่าลืมสมัครรับข้อมูลจากช่อง LuckyTemplates TV เรามีเนื้อหาจำนวนมากออกมาตลอดเวลาจากตัวฉันเองและผู้สร้างเนื้อหาจำนวนมาก ทั้งหมดนี้ทุ่มเทให้กับการปรับปรุงวิธีที่คุณใช้ LuckyTemplates และ Power Platform
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates
ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก
บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ
ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น
ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร
เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates
บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์
หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ
เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้