ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

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

นี่คือความต่อเนื่องของบทช่วยสอนที่ฉันทำเมื่อเร็วๆ นี้ ซึ่งเราได้จัดการกับรูปแบบข้อมูลสแต็กที่ยากต่อการจัดการทั่วไป และใช้ Modulo, Pivot และฟังก์ชันการทำความสะอาดบางอย่างด้วย Power Query เพื่อแปลงข้อมูลนั้นเป็นรูปแบบที่เป็นระเบียบและใช้งานได้

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

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

สารบัญ

วิธีสร้างและดีบักฟังก์ชัน Query แบบกำหนดเองของ LuckyTemplates

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

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

ถ้าเราต้องการใช้ซ้ำ เราก็แค่คลิกขวาที่ Data แล้วพูดว่าCreate Function

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

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

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

ตอนนี้เราได้ Invoke นี้แล้ว เราไม่มีพารามิเตอร์ และไปที่ Advanced Editor แล้วเริ่มทำงานกับอันนี้

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

ประการแรก เราไม่ต้องการแหล่งที่มานี้ เราจะใช้พารามิเตอร์ของฟังก์ชันเพื่อกำหนดแหล่งที่มาของเรา

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

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

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

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

เราจะเรียกมันว่าConvertStack และนั่นจะใช้ฟังก์ชันที่เรียกว่าTable.FromList เช่นเดียวกับฟังก์ชัน M หลายฟังก์ชัน มันทำตามที่พูดทุกประการ เพียงแค่ใช้รายการ ในกรณีนี้ รายการจะเป็นรายการสแต็กของเรา จากนั้นเราต้องแทนที่ Source ที่นี่ด้วย ConvertStack ของเรา ดูดีทีเดียว! เราไม่มีข้อผิดพลาดทางไวยากรณ์ ดังนั้นเรามากด Done กันเถอะ

ตอนนี้มันให้สิ่งที่เราต้องการ ซึ่งก็คือความสามารถในการเลือกคอลัมน์

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

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

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

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

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

แทนที่จะเรียกใช้สิ่งนี้เป็นฟังก์ชัน เราจะเรียกใช้เป็นแบบสอบถาม เรากำลังจะเริ่มการโทร Stack ด้วยตนเอง เราต้องกำหนดว่า Stack คืออะไร เพราะเราไม่ได้วาดมันผ่านการโต้ตอบของการเลือกใน Invoke ดังนั้นเราจึงมี Stack เท่ากับ TestData และคอลัมน์ Value ของ TestData

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

สิ่งที่ทำคือแบ่งมันออกเป็นขั้นตอนที่ใช้ สิ่งนี้จะช่วยให้เราทราบว่าเหตุใดจึงไม่ทำงาน สังเกตสิ่งที่น่าสนใจอย่างหนึ่งเมื่อเราดึง Stack เข้ามา เริ่มแรกจะดึง TestData[Value] แต่เมื่อเราแปลงเป็นตาราง แทนที่จะใช้ Value เป็นส่วนหัวของคอลัมน์ ตอนนี้ส่วนหัวของคอลัมน์กลายเป็น Column1

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

จดจำข้อความแสดงข้อผิดพลาด นั่นคือไม่พบคอลัมน์ค่า สาเหตุที่ไม่พบคอลัมน์ Value ก็คือฟังก์ชัน Table.FromList จะเปลี่ยนชื่อเป็น Column1

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

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

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

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

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

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates

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

ฟังก์ชันแบบสอบถามแบบกำหนดเองของ LuckyTemplates


การสร้างฟังก์ชันการล้างข้อความแบบกำหนดเองใน
รหัส Power Query M ในคอลัมน์แบบกำหนดเองของ Power Query | แบบสอบถามฟังก์ชัน LuckyTemplates
และตัวดำเนินการในตัวแก้ไขแบบสอบถาม

บทสรุป

ในบทช่วยสอนนี้ เราได้สร้างฟังก์ชันแบบกำหนดเอง ดีบัก ทดสอบ และใช้งานได้ดี ดังนั้น เมื่อใดก็ตามที่เรามีสแต็กสามองค์ประกอบ เราก็สามารถเลือกตารางนั้น เลือกคอลัมน์นั้นภายในตาราง และเรียกใช้ฟังก์ชันแบบกำหนดเองนั้น จากนั้นใช้ Modulo, unpivot และทำความสะอาด

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

ดีที่สุด!


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