次の方法で共有


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

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

DAX の親子関数

次の表に、列の Parent-Child 階層を示します。EmployeeKey と、すべての関数の例で使用される ParentEmployeeKey を します。

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 があり、従業員 11、13、162 にはマネージャーとして従業員 3 が含まれていることがわかります。 上記は、従業員112が彼女/彼の上にマネージャーを持っず、彼女/彼がここに示されているすべての従業員のトップマネージャーであることを理解するのに役立ちます。また、従業員 3 は従業員 14 に報告し、従業員 11、13、162 は 3 に報告します。

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

PATH 関数 - 現在の行に対するすべての親の識別子を含む区切りテキストを返します。最も古い行または最上位から現在の行までを返します。

EmployeeKey ParentEmployeeKey パス
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() 内のレベルの数を返します。 次の例では、PathLength 列は '= PATHLENGTH([Path])' として定義されています。この例には、この関数の動作を理解するのに役立つ Path() の例のすべてのデータが含まれています。

EmployeeKey ParentEmployeeKey パス 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() から指定した位置にある項目を、左から右にカウントして返します。 次の例では、PathItem 列の左から 4 番目が '= PATHITEM([Path], 4)' として定義されています。この例では、Path() の例と同じサンプル データを使用して、左から Path 文字列の 4 番目の位置にある EmployeKey を返します。

EmployeeKey ParentEmployeeKey パス PathItem - 左から 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 の項目を返します (関数の結果など)。右から左に後方にカウントされます。 次の例では、PathItemReverse - 右から 3 番目の列は '= PATHITEMREVERSE([Path], 3)' として定義されています。この例では、Path() の例と同じサンプル データを使用して、右から Path 文字列の 3 番目の位置にある EmployeKey を返します。

EmployeeKey ParentEmployeeKey パス PathItemReverse - 右から 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 が指定した item内に存在する場合に path を返します。 次の例では、PathContains - employee 162 は '= PATHCONTAINS([Path], "162")' として定義されています。この例では、指定されたパスに従業員 162 が含まれている場合、TRUE が返されます。 この例では、上記の Path() の例の結果を使用します。

EmployeeKey ParentEmployeeKey パス 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