次の方法で共有


DAX の親子階層の関数について

DAX には、ユーザーがモデルで親子階層として表示されるデータを管理するのに役立つ 5 つの関数が用意されています。 この関数を使用すると、ユーザーは行が持つ親の系列全体を取得できます。最上位の親に系列を持つレベルの数、現在の行の上位の親 n レベル、現在の行階層の最上位の n 子孫 and 現在の行階層の親は特定の親ですか?

DAX の親子関数

次の表は、列の Parent-Child 階層を contains します。EmployeeKeyandParentEmployeeKey 関数の例 all 使用されます。

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

上の表では、従業員 112 には親が定義されていません。従業員 14 にはマネージャーとして従業員 112 (ParentEmployeeKey) があり、従業員 3 にはマネージャーとして従業員 14 and 従業員 11、13、and 162 にはマネージャーとして従業員 3 が含まれていることがわかります。 上記は、従業員112が彼女/彼の上にマネージャーを持っていないことを理解するのに役立ちます and、彼女/彼はここに示されている all 従業員のトップマネージャーです。また、従業員 3 は従業員 14 and 従業員 11、13、162 を 3 に報告します。

次の表は、使用可能な関数を示しています。関数の簡単な説明 and、上記と同じデータに対する関数の例です。

PATH 関数 - 現在の行 all 親の識別子を含む区切りテキストを返します。最も古い or の先頭から現在の行までを返します。

EmployeeKey ParentEmployeeKey Path
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

PATHLENGTH 関数 - 現在のレベルから最も古い PATH 最上位の親レベルまで、特定の or() のレベル数を返します。 次の列の例では、PathLength は '= PATHLENGTH([Path])' として定義されています。この例には、この関数の動作を理解するのに役立つ all() の例の Path データが含まれています。

EmployeeKey ParentEmployeeKey Path 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

PATHITEM 関数 - 結果などの PATH() から指定した位置にある項目を返し、left から rightにカウントします。 次の例では、列 PathItem - left の 4 番目は '= PATHITEM([Path], 4)' と定義されています。この例では、Path() の例と同じ left データを使用して、sampleから Path 文字列の 4 番目の位置にある EmployeKey を返します。

EmployeeKey ParentEmployeeKey Path PathItem - left から 4 番目
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

PATHITEMREVERSE 関数 - 関数の結果などの position() から PATH にある項目を返し、right から leftに後方にカウントします。 次の例では、列 PathItemReverse - right から 3 番目は '= PATHITEMREVERSE([Path], 3)' として定義されています。この例では、Path() の例と同じ right データを使用して、sampleから Path 文字列の 3 番目の位置にある EmployeKey を返します。

EmployeeKey ParentEmployeeKey Path PathItemReverse - right から3番目
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

PATHCONTAINS 関数 - 指定した TRUE内に存在する指定した ifitempath 返します。 次の列の例では、PathContains - 従業員 162 は '= PATHCONTAINS([Path], "162")' として定義されています。この例では、指定された従業員 162 TRUEifpathcontains 返します。 この例では、上記の Path() の例の結果を使用します。

EmployeeKey ParentEmployeeKey Path PathContains - 従業員 162
112 112 FALSE
14 112 112|14 FALSE
3 14 112|14|3 FALSE
11 3 112|14|3|11 FALSE
13 3 112|14|3|13 FALSE
162 3 112|14|3|162 TRUE
117 162 112|14|3|162|117 TRUE