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
内に存在する指定した ifitem
path
返します。 次の列の例では、PathContains - 従業員 162 は '= PATHCONTAINS([Path], "162")
' として定義されています。この例では、指定された従業員 162 TRUE
ifpathcontains 返します。 この例では、上記の 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 |