次の方法で共有


BLANK を値に変換しないようにする

データ モデリングツールとして、メジャー式を記述するときに、意味のある値が返されない場合があります。 このような場合は、代わりに 0 などの値を返したくなる場合があります。 この設計が効率的で実用的かどうかを慎重に判断することをお勧めします。

BLANK 結果を 0 に明示的に変換する次のメジャー定義について考えてみましょう。

Sales (No Blank) =
IF(
    ISBLANK([Sales]),
    0,
    [Sales]
)

また、BLANK 結果を 0 に変換する別のメジャー定義について考えてみましょう。

Profit Margin =
DIVIDE([Profit], [Sales], 0)

DIVIDE 関数は、Profit メジャーを Sales メジャーで除算します。 結果が 0 または BLANKの場合、3 番目の引数 (代替結果 (省略可能)) が返されます。 この例では、代替結果として 0 が渡されるため、メジャーは常に値を返すことが保証されます。

これらの測定設計は非効率的であり、レポートの設計が不適切になります。

レポート ビジュアルに追加されると、Power BI はフィルター コンテキスト内のすべてのグループの取得を試みます。 大きなクエリ結果の評価と取得は、多くの場合、レポートのレンダリングが遅くなります。 例の計算指標はスパース計算を密集したものに変換し、Power BIが必要以上のメモリを使用するように強制します。

また、多くの場合、グループ化が多すぎると、レポート ユーザーに過剰な負荷が発生します。

Profit Margin 指標がテーブルビジュアルに追加され、顧客ごとにグループ化されるとどうなるか見てみましょう。

顧客ごとに 1 行のデータのテーブル ビジュアルを示す Power BI Desktop のスクリーンショット。売上の値は BLANK であり、利益利益の値は 0% です。

テーブルビジュアルには、圧倒的な数の行が表示されます。 (モデルには実際には 18,484 人の顧客がいるため、テーブルはそれらすべてを表示しようとします。) ビュー内の顧客が売上を達成していないことに注目してください。 それにもかかわらず、Profit Margin メジャーから常に値が返るため、表示されています。

手記

ビジュアルに表示するデータ ポイントが多すぎる場合、Power BI ではデータ削減戦略を使用して、大規模なクエリ結果を削除または集計することがあります。 詳細については、「データ ポイントの制限とビジュアルの種類別の戦略」を参照してください。

Profit Margin のメジャー定義が改善されるとどうなるか見てみましょう。 Sales メジャーが BLANK (またはゼロ) でない場合にのみ、値が返されるようになりました。

Profit Margin =
DIVIDE([Profit], [Sales])

テーブル ビジュアルには、現在のフィルター コンテキスト内で売上を上げた顧客のみが表示されるようになりました。 改善策により、レポートユーザーはより効率的で実用的な体験を得られます。

コンテンツをフィルター処理したデータのテーブル ビジュアルを示す Power BI Desktop のスクリーンショット。

ヒント

必要に応じて、フィルター コンテキスト内のすべてのグループ (値または BLANKを返す) を表示するようにビジュアルを構成するには、[データのないアイテムを表示 オプションを有効にします。

勧告

意味のある値を返せない場合は、計測値から BLANK を返すことが推奨されます。

この設計アプローチは効率的であり、Power BI でレポートをより迅速にレンダリングできます。 また、集計が BLANK の場合、既定ではレポートの視覚エフェクトでグループ化が削除されるため、BLANK を返す方が推奨されます。