ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ในบล็อกโพสต์นี้ เราจะดูคำถามที่ถูกถามในฟอรัม LuckyTemplates และใช้เทคนิค LuckyTemplates ของภาษา DAX เพื่อแก้ปัญหา ในกรณีที่คุณต้องการติดตามและดาวน์โหลดไฟล์ เพียงไปที่ฟอรัม LuckyTemplates และไปที่ลิงก์คุณสามารถดูวิดีโอทั้งหมดของบทช่วยสอนนี้ได้ที่ด้านล่างของบล็อกนี้
เพื่ออธิบายสถานการณ์ที่เราจะพูดถึง เรามีตารางง่ายๆ เป็นตัวอย่าง ในคอลัมน์แรก เรามีระดับการเงิน 1 ในคอลัมน์ที่สอง เรามีวันที่ที่ชื่อเสร็จสมบูรณ์ ในคอลัมน์สุดท้าย เรามีการรวมกันของระดับทางการเงินและวันที่เสร็จสมบูรณ์ ซึ่งเราจะตั้งชื่อว่ารายรับ
จากนั้นเรามีตัวแบ่งส่วนข้อมูลสำหรับวันที่และชื่อลูกค้า
สิ่งที่เราต้องการทำในช่วงเวลาหนึ่งคือการระบุวันที่สามอันดับแรกที่ไม่ใช่ศูนย์ จากนั้นในวันที่สามอันดับแรกนั้น เราต้องการระบุระดับทางการเงิน
ในเวอร์ชันแรกของการวัดผล ฉันแสดงรายการวันที่น้อยกว่าวันที่ 29/4/2021 ซึ่งเรามีรายได้บางส่วน
และในวันที่เหล่านี้ เราต้องการระบุระดับทางการเงินที่สร้างรายได้บางส่วน ฉันจะอธิบายให้คุณทราบว่าเราคำนวณได้อย่างไร
สารบัญ
การสร้างแบบจำลองข้อมูล
ก่อนที่จะเขียน DAX จริง มาดูแบบจำลองข้อมูลที่มีหลายตารางกันก่อน เราสนใจเฉพาะตารางวันที่ตารางข้อมูล ตารางประเภทงานและตารางลูกค้า
โปรดทราบว่าตารางลูกค้าไม่ได้มีความสำคัญมากนัก เนื่องจากใช้ภายในตัวแบ่งส่วนข้อมูลเท่านั้น
กำลังคำนวณการวัดรายได้ในตารางข้อมูล หมวดหมู่งานประกอบด้วยระดับการเงินที่เรามีในเมทริกซ์ จากนั้นเรากำลังใช้คอลัมน์วันที่จากตารางวันที่ในตัวแบ่งส่วนข้อมูลของเรา
รุ่น 1
กำจัดทุกอย่างออกจากเมทริกซ์และเริ่มต้นจากศูนย์ ฉันจะสร้างหน่วยวัดใหม่และเรียกมันว่า V1 เพราะนี่จะเป็นเวอร์ชันหนึ่ง เราจะดูรูปแบบอื่นอีกสองแบบด้วย
การเตรียมบริบทตัวกรอง
สิ่งแรกที่เราจะทำคือการดึงค่าทั้งหมดของระดับทางการเงินจากบริบทตัวกรอง เราจะสร้างและตั้งชื่อเป็นFinancialLevelInFilterContext
ในการดึงค่าจากบริบทตัวกรอง เราจะใช้ในตารางประเภทงานที่มีคอลัมน์ระดับการเงิน จากนั้นเราต้องสร้างตัวแปรอื่นและตั้งชื่อว่าResult จากนั้นเขียนและปิดด้วย
ในอาร์กิวเมนต์แรก เรามีตัวเลือกสำหรับตัวแบ่งส่วนข้อมูลวันที่ ในวันที่เหล่านั้น เราต้องการระบุวันที่ที่ไม่มี 0 และมีรายได้บางส่วนเป็นอย่างน้อย
หากคุณต้องการเข้าถึงวันที่ทั้งหมดที่เลือกในตัวแบ่งส่วนข้อมูลนั้น เราจำเป็นต้องใช้บนตารางวันที่
และเนื่องจากเรามีระดับทางการเงินในเมทริกซ์ เราจึงต้องตรวจสอบให้แน่ใจว่าเรากำลังลบค่าเฉพาะนั้นออกจากบริบทตัวกรอง เราสามารถใช้บนหมวดงาน แล้วเขียน Financial Level 1
เมื่อบริบทตัวกรองของเราพร้อมแล้ว เราสามารถเขียนการคำนวณในส่วนลึกสุดสำหรับ CALCULATE ขั้นแรก เราจะประกาศตัวแปร ซึ่งจะเป็นชุดค่าผสมของคอลัมน์ระดับการเงินและวันที่ดังที่เราเห็นในตารางแรก
จากนั้นเราจะใช้และใช้ตาราง Data เพื่อสรุปตารางทั้งสองนี้: หมวดหมู่งานและตารางวันที่
ซึ่งจะให้การรวมกันของระดับการเงินและคอลัมน์วันที่ที่มีอยู่ภายในตารางข้อมูล จากนั้นเราจะสร้างตัวแปรอีกตัวที่เราจะเก็บค่าของแถวรายได้สำหรับตัวแปรตัวแรกที่เราสร้างขึ้น
ชื่อของตัวแปรนี้จะเป็นFinancialLevelAndDatesWithRevenue รหัสของตัวแปรนี้จะเป็นเหนือตัวแปรก่อนหน้า จากนั้นเราจะสร้างคอลัมน์เสมือนที่จะเป็น Revenue เพื่อเริ่มต้นการเปลี่ยนบริบท ดังนั้นสำหรับแต่ละแถวของตัวแปรนี้ เราได้กำหนดรายได้
ตารางนี้ประกอบด้วยรายได้ซึ่งมีศูนย์เช่นกัน เราจำเป็นต้องกรองแถวเหล่านั้นด้วยศูนย์ ในการทำเช่น นี้เราสามารถสร้างตัวแปรอื่นและตั้งชื่อเป็นRemoveZeroes
เราจะใช้กับตัวแปรก่อนหน้า จากนั้นตรวจสอบให้แน่ใจว่ารายได้จะไม่เท่ากับศูนย์ อาจมากกว่าศูนย์หรือน้อยกว่าศูนย์ แต่ไม่ควรเท่ากับศูนย์อย่างเคร่งครัด
จากนั้นเราจะดึงวันที่จากตัวแปรRemoveZeroes ในการทำเช่น นี้เราสามารถสร้างตัวแปรอื่นและตั้งชื่อว่าKeepOnlyDates
ฉันสามารถใช้เพื่อกำจัดวันที่ซ้ำกันที่ส่งคืนโดยฟังก์ชัน
ต่อไป เราจะระบุวันที่สามอันดับแรกตามลำดับจากมากไปน้อย เราจะใช้ตัวแปรอื่นและตั้งชื่อว่าLast3Datesจากนั้นใช้ฟังก์ชัน
จากนั้นเราจะใช้กับสามวันที่ล่าสุดในคอลัมน์วันที่ จากนั้นใช้ตัวคั่น
ลองลากและวางหน่วยวัดที่สร้างขึ้นใหม่ภายในเมทริกซ์นั้น ผลลัพธ์ที่เราได้รับคือ 31/03/2021, 07/04/2021 และ 02/04/2021 นี่หมายความว่ามาตรการของเรากำลังทำงาน
กลับไปที่ตัวแก้ไขและกำจัดส่วน RETURN CONCATENATEX ในการเรียกข้อมูลสามวันที่ล่าสุดนั้น สิ่งที่เราทำได้คือตรวจสอบว่าแถวใดจาก ตัวแปร RemoveZeroesเป็นส่วนหนึ่งของวันที่สามวันล่าสุดเหล่านั้น
และเพื่อสิ่งนั้น เราจะสร้างตัวแปรDatesInLast3Dates ขึ้นมา ใหม่และใช้ฟังก์ชัน FILTER บนRemoveZeroes นี่จะส่งกลับตารางที่ประกอบด้วยประเภทงานและวันที่
เราจะสรุปคอลัมน์รายได้ที่เราสร้างขึ้นภายในตารางนั้น ส่งคืน SUMX ผ่าน DatesInLast3Dates จากนั้นสรุปคอลัมน์รายได้
ด้วยการคำนวณนี้ เราได้รับเพียงค่าเดียวสำหรับแต่ละแถว เนื่องจากเราได้ลบหมวดหมู่งานออกจากบริบทตัวกรองแล้ว
เราจะใช้ตัวแปรที่เราสร้างขึ้นเมื่อเริ่มต้นเพื่อตรวจสอบว่าแต่ละแถวของ ตัวแปร DatesInLast3Datesพร้อมใช้งานในบริบทตัวกรองหรือไม่ เราสามารถเขียน ตัวแปรอื่นและตั้งชื่อว่าIsInFilterContext
สิ่งนี้จะกรองวันที่ในตัวแปรDatesInLast3Dates จากนั้นฉันจะส่งคืน SUMX ในบริบท IsInFilter และสรุปคอลัมน์รายได้
เมื่อเรากดEnterคุณจะเห็นว่าเราได้ผลลัพธ์เหมือนกับที่เราได้ในตอนแรก
การตรวจสอบผลลัพธ์ของการคำนวณ LuckyTemplates ของภาษา DAX
ในการยืนยันว่าเราได้รับผลลัพธ์ที่ถูกต้อง เราสามารถสร้างตาราง CALCULATE ใหม่ที่จะช่วยเราในการตรวจแก้จุดบกพร่อง ระบุ และตรวจสอบว่าโค้ดที่เราเขียนจนถึงขณะนี้ส่งคืนผลลัพธ์ที่ถูกต้องจริง ๆ
มาสร้างสำเนาของโค้ดที่เราเขียนไว้ ฉันจะคัดลอกส่วนที่ไฮไลต์ด้านล่าง กลับไปสร้างตารางใหม่ แล้ววางโค้ดที่ไฮไลต์ไว้ เราจะไม่รบกวนการตั้งชื่อตารางนี้เพราะเราไม่ได้สนใจ
และ เราสามารถเขียน RETURN DatesInLast3Dates ถ้าฉันคลิกยืนยันเราจะได้ตาราง แต่เรารู้ว่าจริง ๆ แล้วตารางนั้นไม่ได้ส่งคืนผลลัพธ์ที่ถูกต้อง เพราะจริง ๆ แล้วเราต้องเลียนแบบพฤติกรรมของตัวแบ่งส่วนข้อมูล
เราสามารถใส่รหัสนั้นไว้ใน CALCULATABLE และเยื้องทุกอย่าง ในส่วนสุดท้าย ฉันจะเขียนว่าวันที่ควร มากกว่าหรือเท่ากับ 2021-03-15 และชื่อลูกค้าควรเท่ากับDHL Supply Chain
ตารางที่เราสร้างขึ้นภายในหน่วยวัดนั้นแสดงผลลัพธ์ที่ถูกต้อง เราสามารถใช้ CALCULATABLE เพื่อตรวจสอบตารางเสมือนที่คุณกำลังสร้างภายในการคำนวณของคุณ
การคำนวณ LuckyTemplates ภาษา DAX อื่นๆ
ตอนนี้เรารู้แล้วว่าการคำนวณของเราใช้งานได้และเข้าใจสิ่งที่เกิดขึ้นจริงเบื้องหลัง เราสามารถดูวิธีอื่นในการคำนวณปัญหาเดียวกันได้ ก่อนอื่นมาสร้างสำเนาของการวัดที่เราสร้างไว้แล้ว
เวอร์ชัน 2
ครั้งนี้ เราจะไม่พึ่งพาฟังก์ชัน VALUES และ FILTER ดังนั้นเราจะเลิกใช้ฟังก์ชันเหล่านี้ เราจะลบผลลัพธ์ที่ส่งคืน รวมถึงตัวแปรสุดท้ายที่เราสร้างขึ้นภายใน CALCULATE จากนั้น เราจะแปลง CALCULATE เป็น CALCULATETABLE
และแทนที่จะส่งคืนค่าสเกลาร์ คราวนี้เราจะส่งคืนDatesInLast3Dates สิ่งนี้จะส่งคืน CALCULATABLE เดียวกันกับที่เราทำไว้ก่อนหน้านี้ เราจะใช้ฟังก์ชัน CALCULATE และในอาร์กิวเมนต์แรก เราจะคำนวณการวัดรายได้และใส่ CALCULATABLE เป็นบริบทตัวกรอง
เมื่อฉันนำมันมาที่เมทริกซ์ คุณจะเห็นว่าเรากำลังคืนค่าผลรวมทั้งหมดสำหรับแต่ละเซลล์ที่เท่ากัน
การใช้ฟังก์ชัน KEEPFILTERS
ในขณะนี้ เราทราบดีว่าการคำนวณเบื้องหลังนั้นทำงานได้อย่างถูกต้อง แต่เราจะทราบได้อย่างไรว่าสำหรับแต่ละเซลล์ เราจะรายงานเฉพาะมูลค่าสำหรับระดับทางการเงินนั้นเท่านั้น
ด้วยความช่วยเหลือของ CALCULATABLE เราได้สร้างตารางที่มีระดับทางการเงิน คอลัมน์วันที่ และคอลัมน์รายได้ เราสามารถใช้ฟังก์ชันตัวกรองคีย์เพื่อสร้างจุดตัดระหว่างบริบทตัวกรองที่มีอยู่นอก CALCULATABLE และบริบทที่กำลังสร้างโดย CALCULATETABLE
เมื่อเราคลิกยืนยัน เราจะเห็นว่าเรากำลังรายงานค่าที่ถูกต้องสำหรับแต่ละเซลล์ และทั้งเวอร์ชัน 1 และเวอร์ชัน 2 ส่งคืนค่าที่ถูกต้อง
แล้ววิธีนี้ทำงานอย่างไร? ตาราง CALCULATE จะส่งกลับ ระดับ การบำรุงรักษาจากนั้นเช่าบริการภายนอกและอะไหล่ ฟังก์ชันจะสร้างจุดตัดระหว่างการบำรุงรักษาและตารางนั้น
การเช่าจะสร้างบริบทตัวกรองเริ่มต้น จากนั้น CALCULATABLE จะส่งคืนค่าทั้งหมดของหมวดหมู่งาน จากนั้นจะมีจุดตัดระหว่างการเช่าและตารางที่ส่งคืนโดย CALCULATABLE เราจะส่งคืนตารางหรือแถวสำหรับส่วนเช่านั้นเท่านั้น
และสุดท้าย เมื่อเราใส่ SUMMARIZE ลงในบริบทตัวกรอง ฟังก์ชัน CALCULATE จะคำนวณรายได้สำหรับการเช่าเท่านั้น กระบวนการเดียวกันนี้เกิดขึ้นในแต่ละแถว
เวอร์ชัน 3
มาดูวิธีอื่นในการคำนวณการคำนวณเดียวกันโดยใช้ภาษา DAX LuckyTemplates มาสร้างสำเนาของการวัดเวอร์ชัน 2 และสร้างการวัดอื่น เราจะตั้งชื่อเวอร์ชัน 3 นี้ว่า
แนวคิดเบื้องหลังการคำนวณนี้คือ เนื่องจากเรากำลังคำนวณรายได้โดยใช้ฟังก์ชัน CALCULATE เราจึงไม่จำเป็นต้องใช้ส่วน ADDCOLUMNS เนื่องจากเรากำลังจำลองสิ่งเดียวกันทั้งภายในและภายนอก CALCULATE เราสามารถเขียนง่ายๆ ว่า รายรับไม่ควรเท่ากับ 0
เมื่อฉันคลิกยืนยัน เราต้องแน่ใจว่าโค้ดใช้งานได้ ดังนั้นมาลากการวัดภายในเมทริกซ์กัน
คุณจะเห็นว่าโค้ดส่งคืนค่าเดียวกันสำหรับแต่ละเซลล์
ถ้าฉันพยายามเปลี่ยนบริบทตัวกรองโดยเปลี่ยนวันที่ในตัวแบ่งส่วนข้อมูลวันที่และเลือกค่าสองสามค่าจากชื่อลูกค้า คุณจะเห็นว่าการวัดทั้งสามส่งคืนค่าเดียวกันสำหรับแต่ละแถว
บทสรุป
ในบทแนะนำสอนการใช้งานนี้ เราได้เรียนรู้วิธีใช้ตรรกะที่ซับซ้อนในการย้อนเวลาจากวันที่สิ้นสุดเพื่อระบุวันที่สามอันดับแรก ตามเทคนิค LuckyTemplates ของภาษา DAX นี้ เราสามารถคำนวณรายได้และแสดงเฉพาะค่าที่มีอยู่ในบริบทตัวกรอง นั่นคือทั้งหมดสำหรับตอนนี้ในบทช่วยสอนนี้
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates
ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก
บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ
ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น
ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร
เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates
บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์
หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ
เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้