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

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

ลองมาดูปัญหาที่กล่าวถึงในบทช่วยสอนนี้ อีกครั้ง ซึ่งเปรียบเทียบแบบไดนามิกกับ N วันทำการแรกของแต่ละเดือน ปัญหานี้เกิดจากการสอบถามสมาชิก LuckyTemplates ในฟอรัมของเรา ซึ่งเขาต้องการค้นหาแบบไดนามิกและเปรียบเทียบวันที่เรียกเก็บเงินได้ 5, 10, 15 และ 20 วันแรก (ที่ไม่ใช่วันหยุดสุดสัปดาห์และไม่ใช่วันหยุด) ในเดือนหนึ่งๆ กับวันที่เรียกเก็บเงิน เดือนก่อนหน้า

แทนที่จะใช้ Power Query เราจะนำเสนอโซลูชันภาษาการเข้ารหัส DAX คุณสามารถดูวิดีโอทั้งหมดของบทช่วยสอนนี้ได้ที่ด้านล่างของบล็อกนี้

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

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

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

มาดู Power Query และดูว่า Antriksh ทำอะไรที่นี่ เรามีเดือนและปียอดขายรวมและสุดท้ายยอดขายรวมสำหรับ N วันทำการ ที่เราเลือกโดยใช้แบบสอบถามพลังงาน ตามพารามิเตอร์ what-if ที่เราพัฒนาขึ้น

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

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

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

นี่คือฟังก์ชัน DAX ที่ฉันใช้ไม่บ่อยนัก แต่เหมาะสมอย่างยิ่งสำหรับปัญหาประเภทนี้ หากเราดูที่คู่มือ SQL BI DAX จะมีข้อความว่าฟังก์ชัน GENERATE เป็นฟังก์ชันตารางที่ใช้เป็นอินพุตสองตารางที่แตกต่างกัน จากนั้นทำเทียบเท่ากับคำสั่ง SQL CROSS APPLY

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

ดังนั้นจึงใช้ตารางฐาน (Table1) และวนซ้ำจากนั้นใช้นิพจน์ตารางที่สองและประเมินค่านั้นสำหรับแต่ละแถวในตารางแรก จากนั้นจึงกลับไปที่ตารางเป็นเอาต์พุต

ลองใช้มาตรการของ Antriksh แล้ววางลงในตาราง เราจะเห็นว่ามันสร้างผลลัพธ์เดียวกันกับโซลูชัน Power Query ที่เราทำในครั้งล่าสุด นั่นเป็นสิ่งที่ดีและตรวจสอบทั้งสองมาตรการได้ค่อนข้างดี

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

เอามาตรการนี้ละกัน ตัวกรองแรกที่ใช้ที่นี่คือ Dates[IsBusinessDay] = TRUE ซึ่งจะนำวันที่ที่ไม่ใช่วันหยุดสุดสัปดาห์และวันที่ไม่ใช่วันหยุดออกทั้งหมดตามฟิลด์ IsBusinessDay ของตารางวันที่ขยาย

เราพูดถึงเรื่องนี้มากขึ้นในบทช่วยสอนแรกซึ่งเราได้อธิบายถึงวิธีการผูกเข้ากับตารางวันหยุดของเราด้วย

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

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

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

แต่อินพุตตารางที่สองคือที่ซึ่งสิ่งที่น่าสนใจเกิดขึ้น Antriksh ใช้แล้วใช้พารามิเตอร์ไดนามิกเป็นจำนวนแถวใน TOPN

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

การ วัด ยอดขายรวมจะแนบกับตารางที่สอง จากนั้นนำไปใช้กับตารางแรก

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

สารบัญ

ทำความเข้าใจการวัดที่ซับซ้อนโดยใช้ภาษาการเข้ารหัส DAX

วิธีที่ง่ายที่สุดวิธีหนึ่งในการหาว่าหน่วยวัดที่ซับซ้อนเช่นนี้กำลังทำอะไรอยู่คือการเข้าไปที่Tabular Editor เราสามารถดูนิพจน์นี้และหาว่านิพจน์ TOPN นี้ทำอะไรก่อน

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

ลองคัดลอกส่วน TOPN และสร้างแบบสอบถาม DAXใหม่ โปรดจำไว้ว่าข้อความค้นหา DAX ขึ้นต้นด้วย EVALUATE

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

เมื่อเราวางส่วน TOPN เราจะเห็นว่านี่เป็นการดึงวันที่ 5 วันแรกจากตารางใบสั่งขาย มีตารางใน TOPN ที่ประกอบด้วยค่าของวันที่สั่งซื้อทั้งหมดภายในตารางการขาย

ฟังก์ชัน TOPN นี้รับค่าของพารามิเตอร์ what-if (ซึ่งในกรณีนี้คือ 5) และนำไปใช้กับฟิลด์วันที่ของใบสั่งขาย จากนั้นจะดึงวันที่ 5 แรกภายในบริบทตัวกรองตามลำดับจากน้อยไปมากตามฟิลด์นั้น

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

เนื่องจากไม่มีบริบทตัวกรองเพิ่มเติม จึงเป็นเพียงการดึงวันที่ 5 วันแรกจากตารางทั้งหมด

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

คอลัมน์ @Sales เป็นเพียงการเพิ่มยอดขายทั้งหมดภายในบริบทตัวกรองที่เหมาะสมไปยังตาราง TOPN

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

จนถึงตอนนี้ เรามีตารางแรกของเดือนและปี ตารางที่สองของ TOPN ของวันที่ N แรกจากตารางการขาย และยอดขายรวมที่เกี่ยวข้อง

การใช้ตาราง GENERATE ในภาษาการเข้ารหัส DAX

มาดูกันว่าตาราง GENERATE นี้ใช้ทำอะไร เราจะกลับไปที่ตัวแก้ไขตารางและสร้างแบบสอบถาม DAX ใหม่

เราจะเริ่มเหมือนที่ทำกับการประเมินเสมอ วางในส่วน GENERATE ของโค้ด แล้วคลิก 5

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

เราจะเห็นว่าสำหรับแต่ละแถวของตารางแรก มีการวนซ้ำและเข้าร่วมกับ 5 แถวจากตาราง TOPN ที่ประเมินในบริบทด้วยฟังก์ชัน @Sales

ใช้เวลา 5 วันทำการแรกของเดือนเมษายน 5 วันทำการแรกของเดือนพฤษภาคม 5 วันทำการแรกของเดือนมิถุนายน ไปเรื่อยๆ จนกว่าจะถึงจุดสิ้นสุดของตารางแรก

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

นี่คือสิ่งที่เราต้องการ และตอนนี้การเพิ่มค่าเหล่านั้นก็กลายเป็นเรื่องง่าย เรามีผลลัพธ์ (ซึ่งเป็นตัวแปรตารางของผลลัพธ์ GENERATE) จากนั้นเราจำเป็นต้องสรุปฟังก์ชัน @Sales

ภายในบริบท ขณะนี้เรากำลังสรุป 5 วันทำการแรกของเดือนเมษายน 5 วันทำการแรกของเดือนพฤษภาคม และอื่นๆ จนกว่าเราจะลดยอดรวมเป็น 23,737,430 ดอลลาร์ ซึ่งในกรณีนี้จะไม่มีบริบทของเดือนและปีที่จะดำเนินการ .

ซึ่งสรุปคอลัมน์ @Sales ทั้งหมดและทำให้เราได้ยอดรวมเดียวกันกับที่เรามีในโซลูชัน Power Query ของเรา

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

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

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

เรายังมีแผนภูมิแท่งที่ด้านล่างซึ่งปรับเปลี่ยนแบบไดนามิกเพื่อสะท้อนถึงการเปลี่ยนแปลงที่เราได้ทำไป

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

ปรับหัวข้อการวัดแบบไดนามิก

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

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

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

มีวิธีง่ายๆ ในการดำเนินการนี้ใน DAX โดยใช้ การจัดรูป แบบตามเงื่อนไข โดยทั่วไปเราใช้เพียงสามสาย อย่างแรกคือTotal Sales for Firstจากนั้นเชื่อมค่านั้นกับค่าที่เราเก็บเกี่ยวจากพารามิเตอร์ what-if แล้วผูกค่านั้นกับส่วนที่เหลือของชื่อ

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

จากนั้นเราไปที่ภาพ ไปที่การจัดรูปแบบตามเงื่อนไขของชื่อเรื่อง แล้วคลิกที่fx .

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

เราจะจัดรูปแบบตามค่าฟิลด์และเลือกการวัดชื่อไดนามิกนั้น สิ่งนี้จะเปลี่ยนการเลือกพารามิเตอร์ what-if

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

บทสรุป

สิ่งที่เรามีในตอนนี้คือโซลูชันที่สมบูรณ์โดยใช้ภาษาการเข้ารหัส DAX เราได้พูดถึงวิธีที่สร้างสรรค์และมีประสิทธิภาพในการใช้ฟังก์ชัน GENERATE ฉันอยากจะขอบคุณ Antriksh ที่แบ่งปันความรู้ DAX อันยอดเยี่ยมของเขากับเรา ฉันได้เรียนรู้มากมายในขณะที่ใช้โซลูชัน 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 คืออะไร ทั้งหมดที่คุณต้องการรู้