次の方法で共有


ALLNOBLANKROW

適用対象:計算列計算テーブルMeasureビジュアル計算

リレーションシップの親テーブルから、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 つのメジャーを追加して、テーブル行を します。datetimeの ALLNOBLANK 、datetimeの 。 これらのメジャーを define するために使用できる数式は次のとおりです。

// 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 が正確であることを確認する

が本当に 行を していることを証明するために、親テーブルの特殊な 行のみを処理 、ResellerSales_USD テーブルに次の 2 つのメジャーを追加します。ResellerSales_USDの 、ResellerSales_USDの

新しいピボットテーブルを作成 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が含まれている場合です。

Filter 関数ALL 関数FILTER 関数