แนวทางปฏิบัติที่ดีที่สุดเมื่อการPower Query

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

เลือกตัวเชื่อมต่อที่ถูกต้อง

Power Queryมีตัวเชื่อมต่อข้อมูลจํานวนมาก ตัวเชื่อมต่อเหล่านี้มีตั้งแต่แหล่งข้อมูล เช่น TXT, CSV และไฟล์ Excel ไปยังฐานข้อมูล เช่น Microsoft SQL Server และบริการ SaaS ยอดนิยม เช่น Microsoft Dynamics 365 และ Salesforce ถ้าคุณไม่เห็นแหล่งข้อมูลของคุณแสดงอยู่ในหน้าต่าง รับข้อมูล คุณสามารถใช้ตัวเชื่อมต่อ ODBC หรือ OLEDB เพื่อเชื่อมต่อกับแหล่งข้อมูลของคุณเสมอได้

การใช้ตัวเชื่อมต่อที่ดีที่สุดกับงานจะมอบประสบการณ์และประสิทธิภาพที่ดีที่สุดให้คุณ ตัวอย่างเช่น การใช้ตัวเชื่อมต่อ SQL Server แทนตัวเชื่อมต่อ ODBC เมื่อเชื่อมต่อกับฐานข้อมูล SQL Server ไม่เพียงแต่ช่วยให้คุณมีประสบการณ์รับข้อมูลได้ดียิ่งขึ้นเท่านั้น แต่ตัวเชื่อมต่อ SQL Server ยังเสนอคุณลักษณะที่สามารถปรับปรุงประสบการณ์และประสิทธิภาพการคิวรีของคุณเช่น การพับคิวรี หากต้องการอ่านเพิ่มเติมเกี่ยวกับการพับคิวรี โปรดดูPower Query Query Folding

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

หน้าต่างตัวนําทางตัวอย่าง

หมายเหตุ

เมื่อต้องการดูรายการทั้งหมดของตัวเชื่อมต่อที่พร้อมใช้งานPower Query ให้ดูตัวเชื่อมต่อPower Query

ตัวกรองก่อนเวลา

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

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

เมนูตัวกรองอัตโนมัติPower Queryตัวกรอง

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

พิมพ์ตัวกรองเฉพาะของคอลัมน์วันที่

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

อยู่ในตัวกรองเฉพาะวันที่ก่อนหน้า

หมายเหตุ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการกรองข้อมูลของคุณตามค่าจากคอลัมน์ โปรดดู กรองตามค่า

ใช้ชนิดข้อมูลที่ถูกต้อง

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

พิมพ์ตัวเลือกที่เฉพาะเจาะจงในเมนูเพิ่มคอลัมน์

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

พิมพ์ตัวกรองเฉพาะของคอลัมน์วันที่

สิ่งสําคัญคือคุณจะต้องใช้ชนิดข้อมูลที่ถูกต้องในคอลัมน์ของคุณ เมื่อใช้งานกับแหล่งข้อมูลที่มีโครงสร้าง เช่น ฐานข้อมูล ข้อมูลชนิดข้อมูลจะถูกดึงมาจาก schema ของตารางที่พบในฐานข้อมูล แต่แหล่งข้อมูลที่ไม่มีโครงสร้าง เช่น ไฟล์ TXT และ CSV สิ่งสําคัญคือคุณตั้งค่าชนิดข้อมูลที่ถูกต้องของคอลัมน์ที่มาจากแหล่งข้อมูลนั้น ตามค่าเริ่มต้น รายงานPower Queryการตรวจจับชนิดข้อมูลอัตโนมัติ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับคุณลักษณะนี้และวิธีที่สามารถช่วยคุณใน ชนิดข้อมูล

หมายเหตุ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับความเกี่ยวข้องของชนิดข้อมูลและวิธีการใช้งาน โปรดดูชนิดข้อมูล

ส7วลข้อมูลของคุณ

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

เครื่องมือแสดงตัวอย่างข้อมูลหรือการสร้างโปรไฟล์ข้อมูลPower Queryชุดข้อมูล

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

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

คุณยังสามารถโต้ตอบกับคุณลักษณะเหล่านี้ ซึ่งจะช่วยให้คุณเตรียมข้อมูลของคุณ

ตัวเลือกการวางเมาส์ระดับคุณภาพข้อมูล

หมายเหตุ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเครื่องมือสร้างโปรไฟล์ข้อมูล โปรดดู เครื่องมือการสร้างโปรไฟล์ข้อมูล

บันทึกงานของคุณ

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

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

บานหน้าต่างขั้นตอนที่ใช้งานกับขั้นตอนที่จัดเป็นเอกสารและรายละเอียดที่เพิ่มเข้ามา

หมายเหตุ

เมื่อต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคุณลักษณะและคอมโพเนนต์ที่พร้อมใช้งานทั้งหมดที่พบภายในบานหน้าต่างขั้นตอนที่ใช้ ดูการใช้รายการขั้นตอนที่ใช้

ใช้วิธีแบบโมดูลาร์

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

ตัวอย่างเช่น สมมติว่าคุณมีคิวรีที่มีเก้าขั้นตอนที่แสดงในรูปภาพต่อไปนี้

บานหน้าต่างขั้นตอนที่ใช้งานกับขั้นตอนที่จัดเป็นเอกสารและรายละเอียดที่เพิ่มเข้ามา

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

แยกขั้นตอนก่อนหน้า

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

คิวรีเดิมหลังจากแยกแอคชันขั้นตอนก่อนหน้า

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

หมายเหตุ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการอ้างอิงคิวรี โปรดดู การ เข้าใจบานหน้าต่างคิวรี

สร้างกลุ่ม

วิธีที่ยอดเยี่ยมในการจัดระเบียบงานของคุณคือการใช้ประโยชน์จากการใช้กลุ่มในบานหน้าต่างคิวรี

การPower Queryกลุ่ม

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

ลองตั้งชื่อที่สื่อความหมายให้กับกลุ่มของคุณที่สมเหตุสมผลและกรณีของคุณ

หมายเหตุ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคุณลักษณะและคอมโพเนนต์ที่พร้อมใช้งานทั้งหมดที่พบภายในบานหน้าต่างคิวรี โปรดดู การเข้าใจบานหน้าต่างคิวรี

คิวรีการพิสูจน์ในอนาคต

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

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

ตัวอย่างบางส่วนของการแปลงที่สามารถช่วยให้คุณยืดหยุ่นคิวรีของคุณต่อการเปลี่ยนแปลงได้:

  • ถ้าคิวรีของคุณมีจํานวนแถวแบบไดนามิกที่มีข้อมูล แต่จํานวนแถวแบบคงที่ที่ใช้เป็นส่วนท้ายที่ควรลบออก คุณสามารถใช้คุณลักษณะ ลบ แถว ล่างสุด

    หมายเหตุ

    หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการกรองข้อมูลของคุณตามตําแหน่งแถว โปรดดู กรองตารางตามตําแหน่งแถว

  • ถ้าคิวรีของคุณมีจํานวนคอลัมน์แบบไดนามิก แต่คุณเพียงแค่เลือกคอลัมน์เฉพาะจากชุดข้อมูลของคุณ คุณสามารถใช้คุณลักษณะ เลือก คอลัมน์ได้

    หมายเหตุ

    เมื่อต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเลือกหรือเอาคอลัมน์ออก ดู เลือกหรือลบคอลัมน์ออก

  • ถ้าคิวรีของคุณมีจํานวนคอลัมน์แบบไดนามิก และคุณต้องยกเลิกเฉพาะชุดย่อยของคอลัมน์คุณ คุณสามารถใช้คุณลักษณะคอลัมน์ที่เลือกอย่างไม่เป็น pivot เท่านั้น

    หมายเหตุ

    เมื่อต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวเลือกในการเลิกเลือกคอลัมน์ของคุณแบบpipivot ดูยกเลิกการตั้งค่าคอลัมน์

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

    หมายเหตุ

    หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการงานและจัดการกับข้อผิดพลาด โปรดดู การจัดการกับข้อผิดพลาด

ใช้พารามิเตอร์

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

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

    เลือกพารามิเตอร์ของอาร์กิวเมนต์การแปลงข้อมูล

  • อาร์กิวเมนต์ฟังก์ชันแบบปรับแต่งเอง — คุณสามารถสร้างฟังก์ชันใหม่จากคิวรี และพารามิเตอร์การอ้างอิงเป็นอาร์กิวเมนต์ของฟังก์ชันแบบปรับแต่งเองของคุณ

    สร้างฟังก์ชัน

ประโยชน์หลักของการสร้างและการใช้พารามิเตอร์คือ:

  • มุมมองรวมศูนย์ของพารามิเตอร์ของคุณทั้งหมด ผ่านหน้าต่างจัดการ พารามิเตอร์

    หน้าต่างจัดการพารามิเตอร์

  • การสามารถใช้พารามิเตอร์ในหลายขั้นตอนหรือหลายคิวรี

  • สร้างฟังก์ชันแบบเองได้ง่ายดายและตรงไปตรงมา

คุณยังสามารถใช้พารามิเตอร์ในอาร์กิวเมนต์บางอย่างของตัวเชื่อมต่อข้อมูลได้ ตัวอย่างเช่น คุณสามารถสร้างพารามิเตอร์ให้กับชื่อเซิร์ฟเวอร์ของคุณเมื่อเชื่อมต่อกับฐานข้อมูล SQL Serverของคุณ จากนั้นคุณสามารถใช้พารามิเตอร์นั้นภายในSQL Serverกล่องโต้ตอบฐานข้อมูล

SQL Serverกล่องโต้ตอบฐานข้อมูลที่มีพารามิเตอร์ชื่อเซิร์ฟเวอร์

ถ้าคุณเปลี่ยนที่ตั้งเซิร์ฟเวอร์ของคุณ สิ่งที่คุณต้องมี คืออัปเดตพารามิเตอร์ชื่อเซิร์ฟเวอร์ของคุณ และคิวรีของคุณจะได้รับการอัปเดต

หมายเหตุ

เมื่อต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการสร้างและการใช้พารามิเตอร์ ให้ดู การใช้พารามิเตอร์

สร้างฟังก์ชันที่สามารถกลับมาใช้ใหม่ได้

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

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

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

รายการรหัส

คุณเริ่มต้นด้วยการมีพารามิเตอร์ที่มีค่าที่ใช้เป็นตัวอย่าง

ค่าโค้ดพารามิเตอร์ตัวอย่าง

จากพารามิเตอร์นั้น คุณสามารถสร้างคิวรีใหม่ที่คุณปรับใช้การแปลงข้อมูลที่คุณต้องการ ในกรณีนี้ คุณต้องการแยกโค้ด PTY-CM1090-LAX ลงในหลาย คอมโพเนนต์:

  • จุดเริ่มต้น = PTY
  • ปลายทาง = LAX
  • เที่ยวบิน = CM
  • FlightID = 1090

ตัวอย่างการแปลงคิวรี

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

เรียกฟังก์ชันแบบปรับแต่งเอง

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

คิวรีผลลัพธ์สุดท้ายหลังจากเรียกใช้ฟังก์ชันแบบปรับแต่งเอง

หมายเหตุ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการสร้างและใช้ฟังก์ชันแบบPower Queryจากบทความ ฟังก์ชันแบบปรับแต่ง