ALLNOBLANKROW
リレーションシップの親テーブルから、all 行が返されますが、blank 行 orall、列の個別の values が blank 行 and、存在する可能性のあるコンテキスト filters は無視されます。
構文
ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )
パラメーター
用語 | 定義 |
---|---|
table |
コンテキスト allfilters 削除されるテーブル。 |
column |
コンテキスト allfilters 削除される列。 |
パラメーターは 1 つだけ渡す必要があります。パラメーターは、列 or テーブルのいずれかです。
value を返す
渡されたパラメーターがテーブルの場合、渡されたパラメーターが列の場合、orの列を values テーブル。
備考
ALLNOBLANKROW 関数は、親テーブルが親列に filters 一致しない行が子テーブルに 1 つ blank 存在する場合に、リレーションシップ内の親テーブルに表示される or 行のみを values します。 詳細な説明については、次の例を参照してください。
次の表は、
ALL
で提供される DAX の違い and まとめたものです。関数 and 使用法 形容 ALL(Column)
テーブル内の指定した列から allfilters を削除します。テーブル内の他の allfilters、他の列にも適用されます。 ALL(Table)
指定したテーブルから allfilters を削除します。 ALLEXCEPT(Table,Col1,Col2...)
指定した列 all テーブル filters のコンテキスト except をオーバーライドします。 ALLNOBLANK(table|column)
リレーションシップの親テーブルから、all 行を返しますが、blank 行 orall、列の個別の values が blank 行 and、存在する可能性があるコンテキスト filters は無視されます 関数のしくみの一般的な説明と、 (Table) (Column) を使用するステップ バイ ステップの例については、関数 参照してください。 この関数は、行レベル セキュリティ (RLS) 規則 not 計算列で使用する場合に、DirectQuery モードで使用するためにサポート or。
例
sample データでは、ResellerSales_USD テーブル containsvaluesand のない 1 つの行であるため、ブック内のリレーションシップ内の親テーブルに related することはできません。 このテーブルをピボットテーブルで使用して、関連のないデータの数を処理する方法 blankand 行の動作を確認できるようにします。
手順 1: 関連のないデータを確認する
Power ピボット windowを開き、ResellerSales_USD テーブルを選択します。 ProductKey 列で、filterblankの values します。 1 行が残ります。 その行では、SalesOrderLineNumber allvalues 列を blankexcept する必要があります。
手順 2: ピボットテーブルを作成する
新しいピボットテーブルを作成し、列 datetime をドラッグします。[CalendarYear]、[ 行ラベル] ウィンドウに移動します。 次の表に、予想される結果を示します。
行ラベル |
---|
2005 |
2006 |
2007 |
2008 |
総計 |
blank andの間の ラベルに注意してください。 この blank ラベルは、親テーブル内の一致する values がない子テーブル内の value を考慮するために作成された特殊なグループである Unknown メンバーを表します。この例では datetime です。[CalendarYear] 列。
ピボットテーブルにこの blank ラベルが表示されると、一部のテーブルで列 datetime に related されていることがわかります。[CalendarYear] には、一致しない blankvaluesorvalues があります。 親テーブルは、blank ラベルを示すテーブルですが、一致 not 行は、子テーブルの 1 つの or にあります。
この blank ラベル グループに追加される行は、親テーブル内の任意の valuesnot 一致する value のいずれかです。たとえば、datetime テーブルに存在 datenot -- or null valuesです。つまり、valueで dateall はありません。 この例では、子売上テーブルの blank 列に valueall を配置しました。 親テーブルに子テーブルよりも多くの values があると、問題が発生 not。
手順 3: CountALL ALLNOBLANK を使用して行を and する
datetime テーブルに次の 2 つのメジャーを追加して、テーブル行を
// Countrows ALLNOBLANK of datetime
= COUNTROWS(ALLNOBLANKROW('DateTime'))
// Countrows ALL of datetime
= COUNTROWS(ALL('DateTime'))
// Countrows ALLNOBLANKROW of ResellerSales_USD
= COUNTROWS(ALLNOBLANKROW('ResellerSales_USD'))
// Countrows ALL of ResellerSales_USD
= COUNTROWS(ALL('ResellerSales_USD'))
blank ピボットテーブルで datetime を追加します。[CalendarYear] 列を行ラベルに追加 and、新しく作成したメジャーを追加します。 結果は次の表のようになります。
行ラベル | datetime の ALLNOBLANK を Countrows する | datetime の CountrowsALL |
---|---|---|
2005 | 1280 | 1281 |
2006 | 1280 | 1281 |
2007 | 1280 | 1281 |
2008 | 1280 | 1281 |
1280 | 1281 | |
総計 | 1280 | 1281 |
結果は、countテーブル行の 1 行の差を示しています。 ただし、windowand、テーブル内の find 行を blank することはできません。ここで説明する特殊な blank 行は不明なメンバーであるためです。
手順 4: count が正確であることを確認する
新しいピボットテーブルを作成 and、列 datetime をドラッグします。[CalendarYear]、[ 行ラベル] ウィンドウに移動します。 Now 作成したメジャーを追加します。 結果は次のようになります。
行ラベル | ResellerSales_USDの CountrowsALLNOBLANKROW | ResellerSales_USDの CountrowsALL |
---|---|---|
2005 | 60856 | 60856 |
2006 | 60856 | 60856 |
2007 | 60856 | 60856 |
2008 | 60856 | 60856 |
60856 | 60856 | |
総計 | 60856 | 60856 |
Now 2 つのメジャーの結果は同じです。 これは、ALLNOBLANKROW 関数はテーブル内の行を本当に notcountblank が、親テーブルで生成される特殊なケースである blank 行のみを処理するためです。リレーションシップ内の子テーブルの 1 つ or に一致しない valuesorblankvaluesが含まれている場合です。