Bagikan melalui


Memahami fungsi untuk hierarki induk-anak di DAX

DAX menyediakan lima fungsi untuk membantu pengguna mengelola data yang disajikan sebagai hierarki induk-anak dalam model mereka. Dengan fungsi ini, pengguna dapat memperoleh seluruh silsilah baris induk, berapa banyak tingkat yang memiliki silsilah data ke induk teratas, yang merupakan n-level induk di atas baris saat ini, siapa yang merupakan n-turunan dari bagian atas hierarki baris saat ini dan apakah induk tertentu adalah induk dalam hierarki baris saat ini?

Fungsi induk-turunan di DAX

Tabel berikut berisi hierarki Induk-Anak pada kolom: EmployeeKey dan ParentEmployeeKey yang digunakan dalam semua contoh fungsi.

EmployeeKey ParentEmployeeKey
112
14 112
3 14
11 3
13 3
162 3
117 162
221 162
81 162

Dalam tabel di atas Anda dapat melihat bahwa karyawan 112 tidak memiliki induk yang ditentukan, karyawan 14 memiliki karyawan 112 sebagai manajer (ParentEmployeeKey), karyawan 3 memiliki karyawan 14 sebagai manajer dan karyawan 11, 13, dan 162 memiliki karyawan 3 sebagai manajer. Hal di atas membantu memahami bahwa karyawan 112 tidak memiliki manajer di atasnya dan dia / dia adalah manajer teratas untuk semua karyawan yang ditunjukkan di sini; juga, karyawan 3 laporan kepada karyawan 14 dan karyawan 11, 13, 162 laporan ke 3.

Tabel berikut menyajikan fungsi yang tersedia, deskripsi singkat fungsi dan contoh fungsi atas data yang sama yang ditunjukkan di atas.

Fungsi PATH - Mengembalikan teks yang dibatasi dengan pengidentifikasi semua orang tua ke baris saat ini, dimulai dengan yang terlama atau teratas paling banyak hingga saat ini.

EmployeeKey ParentEmployeeKey Jalur
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11
13 3 112|14|3|13
162 3 112|14|3|162
117 162 112|14|3|162|117
221 162 112|14|3|162|221
81 162 112|14|3|162|81

Fungsi PATHLENGTH - Mengembalikan jumlah tingkat dalam PATH() tertentu, dimulai pada tingkat saat ini hingga tingkat induk terlama atau teratas. Dalam contoh kolom berikut PathLength didefinisikan sebagai '= PATHLENGTH([Path])'; contoh menyertakan semua data dari contoh Path() untuk membantu memahami cara kerja fungsi ini.

EmployeeKey ParentEmployeeKey Jalur PathLength
112 112 1
14 112 112|14 2
3 14 112|14|3 3
11 3 112|14|3|11 4
13 3 112|14|3|13 4
162 3 112|14|3|162 4
117 162 112|14|3|162|117 5
221 162 112|14|3|162|221 5
81 162 112|14|3|162|81 5

Fungsi PATHITEM - Mengembalikan item pada posisi yang ditentukan dari PATH() seperti hasil, menghitung dari kiri ke kanan. Dalam contoh kolom berikut PathItem - ke-4 dari kiri didefinisikan sebagai '= PATHITEM([Path], 4)'; contoh ini mengembalikan EmployeKey pada posisi keempat dalam string Jalur dari kiri, menggunakan data sampel yang sama dari contoh Path().

EmployeeKey ParentEmployeeKey Jalur PathItem - ke-4 dari kiri
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11 11
13 3 112|14|3|13 13
162 3 112|14|3|162 162
117 162 112|14|3|162|117 162
221 162 112|14|3|162|221 162
81 162 112|14|3|162|81 162

Fungsi PATHITEMREVERSE - Mengembalikan item pada posisi dari PATH() seperti hasil fungsi, menghitung mundur dari kanan ke kiri.
Dalam contoh kolom berikut PathItemReverse - ke-3 dari kanan didefinisikan sebagai '= PATHITEMREVERSE([Path], 3)'; contoh ini mengembalikan EmployeKey pada posisi ketiga dalam string Jalur dari kanan, menggunakan data sampel yang sama dari contoh Path().

EmployeeKey ParentEmployeeKey Jalur PathItemReverse - ke-3 dari kanan
112 112
14 112 112|14
3 14 112|14|3 112
11 3 112|14|3|11 14
13 3 112|14|3|13 14
162 3 112|14|3|162 14
117 162 112|14|3|162|117 3
221 162 112|14|3|162|221 3
81 162 112|14|3|162|81 3

Fungsi PATHCONTAINS - Mengembalikan TRUE jika item yang ditentukan ada dalam jalur yang ditentukan. Dalam contoh kolom berikut PathContains - karyawan 162 didefinisikan sebagai '= PATHCONTAINS([Path], "162")'; contoh ini mengembalikan TRUE jika jalur yang diberikan berisi karyawan 162. Contoh ini menggunakan hasil dari contoh Path() di atas.

EmployeeKey ParentEmployeeKey Jalur PathContains - karyawan 162
112 112 SALAH
14 112 112|14 SALAH
3 14 112|14|3 SALAH
11 3 112|14|3|11 SALAH
13 3 112|14|3|13 SALAH
162 3 112|14|3|162 BENAR
117 162 112|14|3|162|117 BENAR