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

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

หมายเหตุ

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

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

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

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

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

ความสัมพันธ์แบบสองทิศทางมีบทบาทสำคัญในการสร้างความสัมพันธ์แบบสองทิศทางรุ่นพิเศษสองประเภทดังต่อไปนี้:

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

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

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

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

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

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

หมายเหตุ

ไม่สามารถแสดงแถวตารางในไดอะแกรมแบบจำลอง Power BI Desktop ได้ การดำเนินการนี้จะทำในบทความนี้เพื่อสนับสนุนการสนทนาด้วยตัวอย่างที่ชัดเจน

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

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

  • ตาราง Customer มีสองแถว:
    • CustomerCode CUST-01 Customer Customer-1 ประเทศ-ภูมิภาค สหรัฐอเมริกา
    • CustomerCode CUST-02 Customer Customer-1 ประเทศ-ภูมิภาค ออสเตรเลีย
  • ตาราง ผลิตภัณฑ์ มีสามแถว:
    • SKU CL-01 ผลิตภัณฑ์ เสื้อยืด สี เขียว
    • SKU CL-02 ผลิตภัณฑ์ กางเกงยีนส์ สี น้ำเงิน
    • SKU AC-01 ผลิตภัณฑ์ หมวก สี น้ำเงิน
  • ตาราง ยอดขาย มีสามแถวดังต่อไปนี้:
    • OrderDate 1 มกราคม 2019 CustomerCode CUST-01 SKU CL-01 จำนวน 10
    • OrderDate 2 กุมภาพันธ์ 2019 CustomerCode CUST-01 SKU CL-02 จำนวน 20
    • OrderDate 3 มีนาคม 2019 CustomerCode CUST-02 SKU CL-01 จำนวน 30

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

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

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

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

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

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

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

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

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

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

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

Total Quantity = SUM(Sales[Quantity])

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

แผนภาพที่แสดงว่าบานหน้าต่างตัวกรองสำหรับตัวแบ่งส่วนข้อมูลผลิตภัณฑ์จะกรองข้อมูลตาม "จำนวนรวมที่ไม่ใช่ค่าว่าง" ในขณะนี้

การวิเคราะห์มิติไปยังมิติ

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

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

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

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

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

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

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

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

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

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

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

ขั้นตอนถัดไป

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