บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

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

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

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

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

จากนั้นเรามีตัวแบ่งส่วนข้อมูลสำหรับวันที่และชื่อลูกค้า

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

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

ในเวอร์ชันแรกของการวัดผล ฉันแสดงรายการวันที่น้อยกว่าวันที่ 29/4/2021 ซึ่งเรามีรายได้บางส่วน

และในวันที่เหล่านี้ เราต้องการระบุระดับทางการเงินที่สร้างรายได้บางส่วน ฉันจะอธิบายให้คุณทราบว่าเราคำนวณได้อย่างไร

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

สารบัญ

การสร้างแบบจำลองข้อมูล

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

โปรดทราบว่าตารางลูกค้าไม่ได้มีความสำคัญมากนัก เนื่องจากใช้ภายในตัวแบ่งส่วนข้อมูลเท่านั้น

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

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

รุ่น 1

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

การเตรียมบริบทตัวกรอง

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

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

ในการดึงค่าจากบริบทตัวกรอง เราจะใช้ในตารางประเภทงานที่มีคอลัมน์ระดับการเงิน จากนั้นเราต้องสร้างตัวแปรอื่นและตั้งชื่อว่าResult จากนั้นเขียนและปิดด้วย

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

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

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

และเนื่องจากเรามีระดับทางการเงินในเมทริกซ์ เราจึงต้องตรวจสอบให้แน่ใจว่าเรากำลังลบค่าเฉพาะนั้นออกจากบริบทตัวกรอง เราสามารถใช้บนหมวดงาน แล้วเขียน Financial Level 1

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

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

จากนั้นเราจะใช้และใช้ตาราง Data เพื่อสรุปตารางทั้งสองนี้: หมวดหมู่งานและตารางวันที่

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

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

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

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

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

เราจะใช้กับตัวแปรก่อนหน้า จากนั้นตรวจสอบให้แน่ใจว่ารายได้จะไม่เท่ากับศูนย์ อาจมากกว่าศูนย์หรือน้อยกว่าศูนย์ แต่ไม่ควรเท่ากับศูนย์อย่างเคร่งครัด

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

จากนั้นเราจะดึงวันที่จากตัวแปรRemoveZeroes ในการทำเช่น นี้เราสามารถสร้างตัวแปรอื่นและตั้งชื่อว่าKeepOnlyDates

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

ฉันสามารถใช้เพื่อกำจัดวันที่ซ้ำกันที่ส่งคืนโดยฟังก์ชัน

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

ต่อไป เราจะระบุวันที่สามอันดับแรกตามลำดับจากมากไปน้อย เราจะใช้ตัวแปรอื่นและตั้งชื่อว่าLast3Datesจากนั้นใช้ฟังก์ชัน

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

จากนั้นเราจะใช้กับสามวันที่ล่าสุดในคอลัมน์วันที่ จากนั้นใช้ตัวคั่น

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

ลองลากและวางหน่วยวัดที่สร้างขึ้นใหม่ภายในเมทริกซ์นั้น ผลลัพธ์ที่เราได้รับคือ 31/03/2021, 07/04/2021 และ 02/04/2021 นี่หมายความว่ามาตรการของเรากำลังทำงาน

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

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

และเพื่อสิ่งนั้น เราจะสร้างตัวแปรDatesInLast3Dates ขึ้นมา ใหม่และใช้ฟังก์ชัน FILTER บนRemoveZeroes นี่จะส่งกลับตารางที่ประกอบด้วยประเภทงานและวันที่

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

เราจะสรุปคอลัมน์รายได้ที่เราสร้างขึ้นภายในตารางนั้น ส่งคืน SUMX ผ่าน DatesInLast3Dates จากนั้นสรุปคอลัมน์รายได้

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

ด้วยการคำนวณนี้ เราได้รับเพียงค่าเดียวสำหรับแต่ละแถว เนื่องจากเราได้ลบหมวดหมู่งานออกจากบริบทตัวกรองแล้ว

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

เราจะใช้ตัวแปรที่เราสร้างขึ้นเมื่อเริ่มต้นเพื่อตรวจสอบว่าแต่ละแถวของ ตัวแปร DatesInLast3Datesพร้อมใช้งานในบริบทตัวกรองหรือไม่ เราสามารถเขียน ตัวแปรอื่นและตั้งชื่อว่าIsInFilterContext

สิ่งนี้จะกรองวันที่ในตัวแปรDatesInLast3Dates จากนั้นฉันจะส่งคืน SUMX ในบริบท IsInFilter และสรุปคอลัมน์รายได้

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

เมื่อเรากดEnterคุณจะเห็นว่าเราได้ผลลัพธ์เหมือนกับที่เราได้ในตอนแรก

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

การตรวจสอบผลลัพธ์ของการคำนวณ LuckyTemplates ของภาษา DAX

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

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

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

และ เราสามารถเขียน RETURN DatesInLast3Dates ถ้าฉันคลิกยืนยันเราจะได้ตาราง แต่เรารู้ว่าจริง ๆ แล้วตารางนั้นไม่ได้ส่งคืนผลลัพธ์ที่ถูกต้อง เพราะจริง ๆ แล้วเราต้องเลียนแบบพฤติกรรมของตัวแบ่งส่วนข้อมูล

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

เราสามารถใส่รหัสนั้นไว้ใน CALCULATABLE และเยื้องทุกอย่าง ในส่วนสุดท้าย ฉันจะเขียนว่าวันที่ควร มากกว่าหรือเท่ากับ 2021-03-15 และชื่อลูกค้าควรเท่ากับDHL Supply Chain

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

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

การคำนวณ LuckyTemplates ภาษา DAX อื่นๆ

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

เวอร์ชัน 2

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

และแทนที่จะส่งคืนค่าสเกลาร์ คราวนี้เราจะส่งคืนDatesInLast3Dates สิ่งนี้จะส่งคืน CALCULATABLE เดียวกันกับที่เราทำไว้ก่อนหน้านี้ เราจะใช้ฟังก์ชัน CALCULATE และในอาร์กิวเมนต์แรก เราจะคำนวณการวัดรายได้และใส่ CALCULATABLE เป็นบริบทตัวกรอง

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

เมื่อฉันนำมันมาที่เมทริกซ์ คุณจะเห็นว่าเรากำลังคืนค่าผลรวมทั้งหมดสำหรับแต่ละเซลล์ที่เท่ากัน

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

การใช้ฟังก์ชัน KEEPFILTERS

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

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

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

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

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

แล้ววิธีนี้ทำงานอย่างไร? ตาราง CALCULATE จะส่งกลับ ระดับ การบำรุงรักษาจากนั้นเช่าบริการภายนอกและอะไหล่ ฟังก์ชันจะสร้างจุดตัดระหว่างการบำรุงรักษาและตารางนั้น

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

และสุดท้าย เมื่อเราใส่ SUMMARIZE ลงในบริบทตัวกรอง ฟังก์ชัน CALCULATE จะคำนวณรายได้สำหรับการเช่าเท่านั้น กระบวนการเดียวกันนี้เกิดขึ้นในแต่ละแถว

เวอร์ชัน 3

มาดูวิธีอื่นในการคำนวณการคำนวณเดียวกันโดยใช้ภาษา DAX LuckyTemplates มาสร้างสำเนาของการวัดเวอร์ชัน 2 และสร้างการวัดอื่น เราจะตั้งชื่อเวอร์ชัน 3 นี้ว่า

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

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

เมื่อฉันคลิกยืนยัน เราต้องแน่ใจว่าโค้ดใช้งานได้ ดังนั้นมาลากการวัดภายในเมทริกซ์กัน

คุณจะเห็นว่าโค้ดส่งคืนค่าเดียวกันสำหรับแต่ละเซลล์

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

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

บทช่วยสอนภาษา DAX LuckyTemplates บน TOPN ย้อนกลับ

บทสรุป

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


ตนเองคืออะไรใน 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 คืออะไร ทั้งหมดที่คุณต้องการรู้