Bagikan melalui


USERELATIONSHIP

Berlaku untuk: Kolom terhitung Tabel terhitung Ukur perhitungan Visual

Menentukan hubungan yang akan digunakan dalam perhitungan tertentu sebagai hubungan yang ada antara columnName1 dan columnName2.

Sintaks

USERELATIONSHIP(<columnName1>,<columnName2>)  

Parameter

Term Definisi
columnName1 Nama kolom yang ada, menggunakan sintaks DAX standar dan sepenuhnya memenuhi syarat, yang biasanya mewakili banyak sisi hubungan yang akan digunakan; jika argumen diberikan dalam urutan terbalik, fungsi akan menukarnya sebelum menggunakannya. Argumen ini tidak boleh berupa ekspresi.
columnName2 Nama kolom yang ada, menggunakan sintaks DAX standar dan sepenuhnya memenuhi syarat, yang biasanya mewakili satu sisi atau sisi pencarian hubungan yang akan digunakan; jika argumen diberikan dalam urutan terbalik, fungsi akan menukarnya sebelum menggunakannya. Argumen ini tidak boleh berupa ekspresi.

Nilai hasil

Fungsi tidak mengembalikan nilai; fungsi hanya mengaktifkan hubungan yang ditunjukkan selama penghitungan.

Keterangan

  • USERELATIONSHIP hanya dapat digunakan dalam fungsi yang mengambil filter sebagai argumen, misalnya: FUNGSI CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD, dan TOTALYTD.

  • USERELATIONSHIP tidak dapat digunakan ketika keamanan tingkat baris ditentukan untuk tabel tempat ukuran disertakan. Misalnya, CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) akan mengembalikan kesalahan jika keamanan tingkat baris ditentukan untuk DimCustomer.

  • USERELATIONSHIP menggunakan hubungan yang ada dalam model, mengidentifikasi hubungan dengan kolom titik akhir mereka.

  • Dalam USERELATIONSHIP, status hubungan tidak penting; artinya, apakah hubungan aktif atau tidak memengaruhi penggunaan fungsi. Bahkan jika hubungan tidak aktif, hubungan tersebut akan digunakan dan mengambil alih hubungan aktif lainnya yang mungkin ada dalam model tetapi tidak disebutkan dalam argumen fungsi.

  • Kesalahan dikembalikan jika salah satu kolom bernama sebagai argumen bukan bagian dari hubungan atau argumen milik hubungan yang berbeda.

  • Jika beberapa hubungan diperlukan untuk menggabungkan tabel A ke tabel B dalam perhitungan, setiap hubungan harus ditunjukkan dalam fungsi USERELATIONSHIP yang berbeda.

  • Jika ekspresi CALCULATE ditumpuk, dan lebih dari satu ekspresi CALCULATE berisi fungsi USERELATIONSHIP, maka USERELATIONSHIP terdahulu adalah ekspresi yang berlaku jika terjadi konflik atau ambiguitas.

  • Hingga 10 fungsi USERELATIONSHIP dapat ditumpuk; namun, ekspresi Anda mungkin memiliki tingkat bersarang yang lebih dalam, yaitu. contoh ekspresi berikut ditumpuk 3 tingkat dalam tetapi hanya 2 untuk USERELATIONSHIP: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • Untuk hubungan 1-ke-1, USERELATIONSHIP hanya akan mengaktifkan hubungan dalam satu arah. Secara khusus, filter hanya akan dapat mengalir dari tabel columnName2 ke tabel columnName1. Jika pemfilteran silang dua arah diinginkan, dua USERELATIONSHIP dengan arah yang berlawanan dapat digunakan dalam perhitungan yang sama. Contohnya,CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Contoh

Sampel berikut menunjukkan cara mengambil alih default, aktif, hubungan antara tabel InternetSales dan DateTime. Hubungan default ada di antara kolom OrderDate, dalam tabel InternetSales, dan kolom Tanggal, dalam tabel DateTime.

Untuk menghitung jumlah penjualan internet dan mengizinkan pemotongan dengan ShippingDate alih-alih OrderDate tradisional, buat ukuran, [InternetSales by ShippingDate] menggunakan ekspresi berikut:

= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))  

Hubungan antara InternetSales[ShipmentDate] dan DateTime[Date] harus ada dan tidak boleh menjadi hubungan aktif; selain itu, hubungan antara InternetSales[OrderDate] dan DateTime[Date] harus ada dan harus menjadi hubungan aktif.