USERELATIONSHIP
นําไปใช้กับ: คอลัมน์จากการคํานวณตารางจากการคํานวณMeasureการคํานวณวิชวล
ระบุความสัมพันธ์ที่จะใช้ในการคํานวณเฉพาะเป็นความสัมพันธ์ที่มีอยู่ระหว่าง columnName1 and columnName2
ไวยากรณ์
USERELATIONSHIP(<columnName1>,<columnName2>)
พารามิเตอร์
เงื่อนไข | คำนิยาม |
---|---|
columnName1 |
ชื่อของคอลัมน์ที่มีอยู่โดยใช้ไวยากรณ์ DAX มาตรฐาน and ตรงตามหลักเกณฑ์ ซึ่งมักจะแสดงถึงด้านกลุ่มของความสัมพันธ์ที่จะใช้ if อาร์กิวเมนต์จะได้รับในลําดับย้อนกลับ ฟังก์ชันจะสลับอาร์กิวเมนต์ก่อนใช้งาน อาร์กิวเมนต์นี้ไม่สามารถเป็นนิพจน์ได้ |
columnName2 |
ชื่อของคอลัมน์ที่มีอยู่โดยใช้ไวยากรณ์ DAX มาตรฐาน and ตรงตามหลักเกณฑ์ ซึ่งมักจะแสดงถึงด้านหนึ่ง or ด้านการค้นหาของความสัมพันธ์ที่จะใช้ if การกําหนดอาร์กิวเมนต์ในลําดับย้อนกลับ ฟังก์ชันจะสลับอาร์กิวเมนต์ก่อนใช้งาน อาร์กิวเมนต์นี้ไม่สามารถเป็นนิพจน์ได้ |
value ผลลัพธ์
ฟังก์ชัน จะไม่แสดง valueฟังก์ชันจะเปิดใช้งานเฉพาะความสัมพันธ์ที่ระบุสําหรับ duration ของการคํานวณเท่านั้น
หมายเหตุ
USERELATIONSHIP สามารถใช้ได้เฉพาะในฟังก์ชันที่ใช้ filter เป็นอาร์กิวเมนต์ เท่านั้น ตัวอย่างเช่น: ฟังก์ชัน CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD
ไม่สามารถใช้ USERELATIONSHIP ได้เมื่อมีการกําหนดความปลอดภัยระดับแถวสําหรับตารางที่มี measure รวมอยู่ ตัวอย่างเช่น
CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey]))
จะแสดงการรักษาความปลอดภัยระดับแถว errorif ถูกกําหนดไว้สําหรับ DimCustomerUSERELATIONSHIP ใช้ความสัมพันธ์ที่มีอยู่ในแบบจําลองการระบุความสัมพันธ์ตามคอลัมน์จุดสิ้นสุด
ใน USERELATIONSHIPสถานะของความสัมพันธ์ not มีความสําคัญ not นั่นคือว่าความสัมพันธ์นั้นใช้งานอยู่ ornot ทํางานอยู่หรือไม่ not ส่งผลกระทบต่อการใช้งานฟังก์ชันหรือไม่ Even if ความสัมพันธ์ไม่ได้ใช้งาน ความสัมพันธ์นั้นจะถูกใช้ and แทนที่ความสัมพันธ์ที่ใช้งานอยู่อื่น ๆ ที่อาจมีอยู่ในแบบจําลอง แต่ not กล่าวถึงในอาร์กิวเมนต์ฟังก์ชัน
มีการแสดง errorif คอลัมน์ใดก็ตามที่มีชื่อเป็นอาร์กิวเมนต์ not เป็นส่วนหนึ่งของความสัมพันธ์ or อาร์กิวเมนต์เป็นของความสัมพันธ์ที่แตกต่างกัน
If ความสัมพันธ์หลายรายการจําเป็นต้องรวมตาราง A ไปยังตาราง B ในการคํานวณ ความสัมพันธ์แต่ละรายการจะต้องระบุในฟังก์ชัน USERELATIONSHIP ที่แตกต่างกัน
นิพจน์ IfCALCULATE ซ้อนกัน and นิพจน์ CALCULATE มากกว่าหนึ่งรายการ contains ฟังก์ชัน USERELATIONSHIPUSERELATIONSHIP ที่อยู่ด้านในสุดนั้นจะมีอํานาจเหนือกว่าในกรณีที่เกิดความขัดแย้ง or กํากวม
สามารถซ้อนฟังก์ชัน USERELATIONSHIP ได้สูงสุด 10 ฟังก์ชัน อย่างไรก็ตาม นิพจน์ของคุณอาจมีการซ้อนกันในระดับที่ลึกกว่า นิพจน์ sample ต่อไปนี้จะซ้อนกันเป็น 3 ระดับ แต่เพียงแค่ 2 สําหรับ USERELATIONSHIP:
=CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA]))
สําหรับความสัมพันธ์แบบ 1-to-1 USERELATIONSHIP จะเปิดใช้งานความสัมพันธ์ในทิศทางเดียวเท่านั้น โดยเฉพาะอย่างยิ่ง
จะสามารถจัดเรียงข้อมูลจากตาราง columnName2 ไปเป็นตารางของ columnName1If ต้องการการกรองข้ามแบบสองทิศทาง USERELATIONSHIPs สองตัวที่มีทิศทางตรงข้ามสามารถใช้ได้ในการคํานวณเดียวกัน ตัวอย่างเช่น: CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K]))
ตัวอย่าง
sample ต่อไปนี้แสดงวิธีการแทนที่ค่าเริ่มต้น ที่ใช้งานอยู่ ความสัมพันธ์ระหว่าง InternetSales and ตาราง DateTime ความสัมพันธ์ค่าเริ่มต้นมีอยู่ระหว่างคอลัมน์ OrderDate ในตาราง InternetSales and คอลัมน์ Date ในตาราง DateTime
หากต้องการ calculatesum ยอดขายทางอินเทอร์เน็ต and อนุญาตให้มีการแบ่งส่วนข้อมูลตาม ShippingDate แทน OrderDate แบบดั้งเดิม ให้สร้าง measure[InternetSales ตาม ShippingDate] โดยใช้นิพจน์ต่อไปนี้:
= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))
ความสัมพันธ์ระหว่าง InternetSales[ShipmentDate] and DateTime[Date] ต้องมีอยู่ and ควร not เป็นความสัมพันธ์ที่ใช้งานอยู่ นอกจากนี้ ความสัมพันธ์ระหว่าง InternetSales[OrderDate] and DateTime[Date] ควรมีอยู่ and ควรเป็นความสัมพันธ์ที่ใช้งานอยู่