แชร์ผ่าน


คําแนะนําความสัมพันธ์แบบสองทิศทาง

บทความนี้มุ่งเป้าหมายไปยังคุณในฐานะผู้สร้างแบบจําลองข้อมูลที่ทํางานกับ Power BI Desktop ซึ่งจะให้คําแนะนําคุณเกี่ยวกับเวลาในการสร้างความสัมพันธ์ของแบบจําลองแบบสองทิศทาง ความสัมพันธ์แบบสองทิศทางคือตัวกรองในทั้งสองทิศทาง

หมายเหตุ

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

นอกจากนี้ยังเป็นสิ่งสําคัญที่คุณต้องทําความเข้าใจเกี่ยวกับการออกแบบแบบจําลองข้อมูลรูปดาว สําหรับข้อมูลเพิ่มเติม โปรดดูทําความเข้าใจ Schema รูปดาวและความสําคัญของ Power BI

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

อย่างไรก็ตาม มีสามสถานการณ์เมื่อการกรองแบบสองทิศทางสามารถแก้ไขข้อกําหนดเฉพาะได้:

ความสัมพันธ์ของแบบจําลองพิเศษ

ความสัมพันธ์แบบสองทิศทางมีบทบาทสําคัญในการสร้างความสัมพันธ์แบบจําลองพิเศษสองชนิดต่อไปนี้:

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

ตัวเลือกตัวแบ่งส่วนข้อมูล "ด้วยข้อมูล"

ความสัมพันธ์แบบสองทิศทางสามารถส่งตัวแบ่งส่วนข้อมูลที่จํากัดตัวเลือกไปยังตําแหน่งที่มีข้อมูลอยู่ได้ (ถ้าคุณคุ้นเคยกับ Excel PivotTables และตัวแบ่งส่วนข้อมูล นี่คือลักษณะการทํางานเริ่มต้นเมื่อทําการจัดหาข้อมูลจากแบบจําลองความหมายของ Power BI หรือแบบจําลอง Analysis Services) เพื่อช่วยอธิบายให้เข้าใจความหมาย ก่อนอื่นให้พิจารณาไดอะแกรมแบบจําลองต่อไปนี้

แผนภาพที่แสดงแบบจําลองที่มีสามตาราง การออกแบบได้รับการอธิบายในย่อหน้าต่อไปนี้

ตารางแรกที่มีชื่อว่า Customerซึ่งมีสามคอลัมน์ดังต่อไปนี้: Country-RegionCustomerและ CustomerCode ตารางที่สองชื่อว่า Productซึ่งมีสามคอลัมน์ดังต่อไปนี้: Color, Product, และ SKU ตารางที่สามชื่อว่า Salesซึ่งมีสี่คอลัมน์ ดังต่อไปนี้: CustomerCode, OrderDate, Quantity, และ SKU ตาราง Customer และ Product เป็นตารางมิติ และแต่ละรายการมีความสัมพันธ์แบบหนึ่งต่อกลุ่มกับตาราง Sales แต่ละความสัมพันธ์จะกรองในทิศทางเดียว

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

แผนภาพที่แสดงว่าแบบจําลองแสดงแถวของตารางอยู่ในขณะนี้ การอธิบายรายละเอียดเกี่ยวกับแถวในย่อหน้าต่อไปนี้

รายละเอียดแถวสําหรับสามตารางอธิบายไว้ในหัวข้อย่อยต่อไปนี้:

  • ตาราง Customer มีสองแถว:
    • CustomerCode CUST-01CustomerCustomer-1Country-Regionสหรัฐอเมริกา
    • CustomerCode CUST-02CustomerCustomer-2Country-Regionออสเตรเลีย
  • ตาราง Product มีสามแถว:
    • CL-01เสื้อยืด Green
    • CL-02กางเกงยีนส์ Blue
    • AC-01หมวก สีน้ําเงิน
  • ตาราง Sales มีสามแถว:
    • OrderDate 1 มกราคม 2019, CustomerCodeCUST-01, SKUCL-01, Quantity10
    • OrderDate กุมภาพันธ์ 2562, CustomerCodeCUST-01, SKUCL-02, Quantity20
    • OrderDate 3 มีนาคม 2562, CustomerCodeCUST-02, SKUCL-01, Quantity30

ในตอนนี้ ให้พิจารณาหน้ารายงานต่อไปนี้

แผนภาพที่แสดงหน้ารายงานที่มีสามวิชวล การอธิบายรายละเอียดเกี่ยวกับย่อหน้าต่อไปนี้

หน้านี้ประกอบด้วยตัวแบ่งส่วนข้อมูลสองตัวและการ์ดแสดงผลด้วยภาพ ตัวแบ่งส่วนข้อมูลแรกจะยึดตามเขตข้อมูล Country-Region และมีสองตัวเลือก: ออสเตรเลียและสหรัฐอเมริกา ขณะนี้แบ่งตามออสเตรเลีย ตัวแบ่งส่วนข้อมูลที่สองจะยึดตามเขตข้อมูล Product และมีสามตัวเลือก: หมวก กางเกงยีนส์ และเสื้อยืด ไม่มีรายการที่ถูกเลือก (หมายความว่า ไม่มีการกรองผลิตภัณฑ์ ) วิชวลการ์ดแสดงปริมาณ 30

เมื่อรายงานผู้ใช้แบ่งส่วนโดยออสเตรเลีย คุณอาจต้องการจํากัดตัวแบ่งส่วนข้อมูลผลิตภัณฑ์เพื่อแสดงตัวเลือกที่ข้อมูล เกี่ยวข้องกับ การขายของออสเตรเลีย นั่นคือความหมายโดยการแสดงตัวเลือกตัวแบ่งส่วนข้อมูล "ด้วยข้อมูล" คุณสามารถบรรลุลักษณะการทํางานนี้ได้โดยการตั้งค่าความสัมพันธ์ระหว่างตาราง Product และตาราง Sales เพื่อกรอง ทั้งสองทิศทาง

แผนภาพที่แสดงแบบจําลองที่มีความสัมพันธ์ระหว่างผลิตภัณฑ์และตารางยอดขายอยู่ในขณะนี้เป็นแบบสองทิศทาง

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

แผนภาพที่แสดงหน้ารายงานที่มีวิชวลสามภาพพร้อมด้วย ผลิตภัณฑ์ ที่เรียกออกมา การอธิบายรายละเอียดเกี่ยวกับย่อหน้าต่อไปนี้

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

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

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

ตอนนี้เรามาพิจารณาว่าความสัมพันธ์ระหว่าง Product และตาราง Sales ไม่มีตัวกรองในทั้งสองทิศทางอีกต่อไป และมีการเพิ่มข้อกําหนดหน่วยวัดต่อไปนี้ลงในตาราง Sales

Total Quantity = SUM(Sales[Quantity])

ในการแสดงตัวเลือกตัวแบ่งส่วนข้อมูลผลิตภัณฑ์ "ด้วยข้อมูล" จะต้องมีการกรองโดยหน่วยวัด Total Quantity โดยใช้เงื่อนไข "ไม่ใช่ค่าว่าง"

แผนภาพที่แสดงว่าบานหน้าต่างตัวกรองสําหรับตัวแบ่งส่วนข้อมูลผลิตภัณฑ์กรองตามปริมาณรวมอยู่ในขณะนี้ไม่ว่างเปล่า

การวิเคราะห์มิติต่อมิติ

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

ใช้แบบจําลองตัวอย่างในบทความนี้ ให้พิจารณาว่าสามารถตอบคําถามต่อไปนี้ได้อย่างไร:

  • มีสีกี่สีที่ถูกขายให้กับลูกค้าชาวออสเตรเลีย
  • มีประเทศ/ภูมิภาคกี่ประเทศที่ซื้อกางเกงยีนส์

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

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

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

พิจารณาข้อกําหนดหน่วยวัดต่อไปนี้ที่เพิ่มลงในตาราง Sales ในตัวอย่างนี้ ความสัมพันธ์แบบจําลองระหว่างตาราง Customer และตาราง Sales ได้รับการตั้งค่าให้กรองใน ทิศทางเดียว

Different Countries Sold =
CALCULATE(
    DISTINCTCOUNT(Customer[Country-Region]),
    CROSSFILTER(
        Customer[CustomerCode],
        Sales[CustomerCode],
        BOTH
    )
)

ในระหว่างการประเมินผลของหน่วยวัด Different Countries Sold ความสัมพันธ์ระหว่าง Customer และตาราง Sales จะกรองทั้งสองทิศทาง

สถิติการแสดงผลด้วยภาพของตารางต่อไปนี้สําหรับแต่ละผลิตภัณฑ์ที่ขาย คอลัมน์ Quantity เป็นเพียงผลรวมของค่าปริมาณ คอลัมน์ Different Countries Sold แสดงจํานวนที่แตกต่างกันของค่าภูมิภาคและประเทศของลูกค้าทั้งหมดที่ซื้อผลิตภัณฑ์

แผนภาพที่แสดงว่าผลิตภัณฑ์สองรายการจะแสดงอยู่ในวิชวลตาราง ในคอลัมน์ยอดขายจากแต่ละประเทศ กางเกงยีนส์คือ 1 และเสื้อยืดคือ 2

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