ビジュアル計算の使用 (プレビュー)

Note

ビジュアル計算は現在、プレビュー段階です。

ビジュアル計算は、ビジュアルで直接定義および実行される DAX 計算です。 ビジュアル計算を使用すると、以前は作成するのが難しかった計算の作成が容易になり、DAX が簡素化され、メンテナンスが容易になり、パフォーマンスが向上します。

Sales Amount の合計を定義するビジュアル計算の例を次に示します。 必要な DAX が単純であることに注目してください。

Running sum = RUNNINGSUM([Sales Amount])

ビジュアル計算用の DAX のスクリーンショット。

計算では、ビジュアル内の任意のデータ (列、メジャー、または他のビジュアル計算を含む) を参照できます。これにより、セマンティック モデルの複雑さが解消され、DAX の作成プロセスが簡素化されます。 ビジュアル計算を使用して、合計の実行や移動平均などの一般的なビジネス計算を実行できます。

ビジュアル計算は、DAX の他の計算オプションとは異なります。

  • ビジュアル計算はモデルに格納されず、代わりにビジュアルに格納されます。つまり、ビジュアル計算で参照できるのは、ビジュアル上の内容だけです。 モデル内のすべてのものを事前にビジュアルに追加する必要があります。それにより、フィルター コンテキストやモデルの複雑さに関係なく、ビジュアル計算でそれらを参照することができます。

  • ビジュアル計算は、計算列からのコンテキストの単純さと、メジャーからのオンデマンド計算の柔軟性を組み合わせています。

  • メジャーと比較すると、ビジュアル計算は詳細レベルではなく集計データに基づいて動作するため、多くの場合パフォーマンス上の利点が得られます。 新しいメジャーまたはビジュアル計算によって計算を実行できる場合、多くの場合、後者の方がパフォーマンスが向上します。

  • ビジュアル計算はビジュアルの一部であるため、ビジュアル構造を参照でき、柔軟性が高まります。

Power BI で計算を追加する方法の詳細な比較については、「Power BI Desktop での計算オプションの使用」を参照してください。

ビジュアル計算を有効にすると、次のことができます。

  • ビジュアル計算をレポートに追加する
  • 特定のフィールドを非表示にする
  • テンプレートを使用してビジュアル計算をすばやく作成する
  • ビジュアルの軸を参照して柔軟なビジュアル計算を行う

以降のセクションでは、前の項目で説明した各要素がビジュアル計算でどのように機能するかについて詳しく説明します。

ビジュアル計算を有効にする

ビジュアル計算を使用するには、[オプションと設定]>[オプション]>[プレビュー機能] で有効にする必要があります。 [ビジュアル計算][OK] の順に選びます。 ビジュアル計算は、Power BI Desktop の再起動後に有効になります。

ビジュアル計算を追加する

ビジュアル計算を追加するには、ビジュアルを選び、リボンの [新しい計算] ボタンを選びます。

リボンでの [新しい計算] ボタンの選択のスクリーンショット。

ビジュアル計算ウィンドウが編集モードで開きます。 編集モード画面は、3 つの主要なセクションで構成されています。次の図に示されているように、上から下に次のセクションがあります。

  • ビジュアル プレビュー: 操作しているビジュアルが示されます
  • 数式バー: ここでビジュアル計算を追加できます
  • ビジュアル マトリックス: ビジュアル内のデータが示され、追加したビジュアル計算の結果が表示されます

ビジュアル計算の編集画面の領域を示すスクリーンショット。

ビジュアル計算を追加するには、数式バーに式を入力します。 たとえば、Fiscal Year 別の Sales AmountTotal Product Cost を含む視覚エフェクトでは、「Profit = [Sales Amount] – [Total Product Cost]」と入力するだけで、各年度の利益を計算するビジュアル計算を追加できます。

ビジュアル計算の入力のスクリーンショット。

既定では、ビジュアルのほとんどのビジュアル計算は、計算列と同様に行ごとに評価されます。 前の例では、ビジュアル マトリックスの各行に対して、現在の Sales AmountTotal Product Cost が減算され、その結果が [Profit] 列に返されます。 メジャーのように SUM などの集計関数を追加することはできますが、必要はありません。 実際、メジャーとビジュアル計算式をより簡単に区別できるように、必要がない場合はこのような集計を追加しない方がよいでしょう。

ビジュアル計算を追加すると、それらがビジュアルのフィールドの一覧に表示されます。

視覚エフェクトのフィールドの一覧に表示されているビジュアル計算のスクリーンショット。

さらに、そのビジュアル計算がビジュアルに表示されます。

視覚エフェクトに表示されているビジュアル計算のスクリーンショット。

ビジュアル計算では、多くの既存の DAX 関数を使用できます。 ビジュアル計算に固有の関数も使用できます。 ビジュアル計算はビジュアル マトリックスの範囲内で動作するため、USERELATIONSHIPRELATEDRELATEDTABLE などのモデル リレーションシップに依存する関数は使用できません。

ビジュアルからフィールドを非表示にする

ビジュアル計算の編集モードでは、モデリング ビューで列やテーブルを非表示にできるのと同様に、ビジュアルからフィールドを非表示にすることができます。 たとえば、Profit ビジュアル計算のみを表示する場合は、Sales AmountTotal Profit Cost をビューから非表示にすることができます。

視覚エフェクトのビューから要素を非表示にするスクリーンショット。

フィールドを非表示にしても、ビジュアルまたはビジュアル マトリックスからそれらのフィールドが削除されることはないため、ビジュアル計算では引き続きそれらを参照して作業を続けることができます。 非表示フィールドは、ビジュアル マトリックスでは引き続き表示されますが、結果として得られるビジュアルには表示されません。 非表示フィールドは、ビジュアル計算が機能するために必要な場合にのみ含めることをお勧めします。

テンプレートの使用

ビジュアル計算には、一般的な計算を簡単に作成できるテンプレートが含まれています。 テンプレートを見つけるには、テンプレート ボタンを選び、使用するテンプレートを選びます。

ビジュアル計算に対するテンプレートの使用のスクリーンショット。

以下のテンプレートが利用可能です:

  • 累計。 値の合計を計算し、前の値に現在の値を追加します。 RUNNINGSUM 関数を使います。
  • 移動平均。 値の合計をウィンドウのサイズで割って、指定されたウィンドウ内の値セットの平均を計算します。 MOVINGAVERAGE 関数を使います。
  • 親の割合。 親に対する値の割合を計算します。 COLLAPSE 関数を使います。
  • 総計の割合。 COLLAPSEALL 関数を使って、すべての値に対する 1 つの値の割合を計算します。
  • 子の平均。 子値のセットの平均値を計算します。 EXPAND 関数を使います。
  • 前と比較。 PREVIOUS 関数を使って、値を前の値と比較します。
  • 次と比較。 NEXT 関数を使って、値を後の値と比較します。
  • 最初と比較。 FIRST 関数を使って、値を最初の値と比較します。
  • 最後と比較。 LAST 関数を使って、値を最後の値と比較します。

テンプレートを選ぶと、数式バーにそのテンプレートが挿入されます。 これらのテンプレートを開始点として使用できます。 テンプレートに頼らずに独自の式を追加することもできます。

Axis

多くの関数には、ビジュアル計算でのみ使用できる省略可能な Axis パラメータがあります。 Axis は、ビジュアル計算がビジュアル マトリックスを走査する方法に影響します。 Axis パラメータは、既定では視覚エフェクト内の最初の軸に設定されます。 多くの視覚化では、最初の軸は ROWS です。これは、ビジュアル計算がビジュアル マトリックス内の行ごとに上から下に評価されることを意味します。 次の表に、Axis パラメータの有効な値を示します。

Axis アイコン Axis 名 説明
ROWS 行を上から下に垂直方向に計算します。
COLUMNS 列を左から右に水平方向に計算します。
ROWS COLUMNS 行を上から下に垂直方向に計算し、続けて左から右に列ごとに計算します。
COLUMNS ROWS 列を左から右に水平方向に計算し、続けて上から下に行ごとに計算します。

Note

作業中のビジュアルで使用可能な軸の値のみを使用できます。 すべてのビジュアルですべての軸が提供されるわけではなく、中には軸が提供されないビジュアルもあります。

Reset

多くの関数には、ビジュアル計算でのみ使用できる省略可能な Reset パラメータがあります。 Reset は、関数がビジュアル マトリックスの走査中にその値を 0 にリセットするか、別のスコープに切り替えるかどうか、およびそのタイミングに影響します。 Reset パラメータは既定で None に設定されています。つまり、ビジュアル計算は再開されません。 Reset では、軸に複数のレベルがあることが想定されています。 軸にレベルが 1 つしかない場合は、PARTITIONBY を使用できます。 次の一覧では、Reset パラメータの有効な値のみを説明します。

  • NONE: 既定値であり、計算はリセットされません。
  • HIGHESTPARENT: 軸の最上位の親の値が変更されたときに計算をリセットします。
  • LOWESTPARENT: 軸の最下位の親の値が変更されたときに計算をリセットします。
  • 最も高いフィールドが 1 である、軸上のフィールドを参照する数値。

HIGHESTPARENT と LOWESTPARENT を理解するには、複数のレベルに 3 つのフィールド (Year、Quarter、Month) がある軸を考えてください。 HIGHESTPARENT は Year で、最下位の親は Quarter です。 たとえば、RUNNINGSUM([Sales Amount], HIGHESTPARENT) または RUNNINGSUM([Sales Amount], 1) として定義されたビジュアル計算では、毎年 0 から始まる Sales Amount の累計が返されます。 RUNNINGSUM([Sales Amount], LOWESTPARENT) または RUNNINGSUM([Sales Amount], 2) として定義されたビジュアル計算では、四半期ごとに 0 から始まる Sales Amount の累計が返されます。 最後に、RUNNINGSUM([Sales Amount]) として定義されているビジュアル計算では、リセットは行われず、再起動せずに各月の Sales Amount 値を前の値に追加し続けます。

Axis と Reset に対する ORDERBY と PARTITIONBY

Axis、Reset、ORDERBYPARTITIONBY の 4 つの関数は、ペアでまたは一緒に使用して、計算の評価方法に影響を与えることができます。 これらは多くの場合、次の 2 つのペアで一緒に使用されます。

  • Axis および Reset
  • ORDERBY と PARTITIONBY

Axis と Reset は、視覚化の構造を参照するため、ビジュアル計算で使用できる関数でのみ使用でき、ビジュアル計算でのみ使用できます。 ORDERBY と PARTITIONBY は、計算列、メジャー、ビジュアル計算で使用できる関数で、フィールドを参照します。 これらは同じ関数を実行しますが、提供される抽象化レベルが異なります。ビジュアル構造を参照する方が、ORDERBY または PARTITIONBY を使用してフィールドを明示的に参照するよりも柔軟性が高くなります。

Reset では、軸に複数のレベルがあることが想定されています。 軸上の 1 つのレベルに 1 つのフィールドしか存在しないか、複数のフィールドがあるため、軸上に複数のレベルがない場合は、PARTITIONBY を使用できます。

どちらのペアを指定しても問題なく機能しますが、Axis を ORDERBY と PARTITIONBY のいずれかまたは両方と一緒に指定することもできます。その場合、ORDERBY と PARTITIONBY に指定された値によって、Axis で指定された値がオーバーライドされます。 Reset を ORDERBY および PARTITIONBY と組み合わせることはできません。

ORDERBY と PARTITIONBY のペアは、フィールドを明示的に指定することによってフィールド参照を固定するものと考えることができます。一方、Axis と Reset はフィールドに依存しません。これらは、構造を参照し、使用されている構造に含まれるフィールドを参照します。

使用できる関数

既存の DAX 関数の多くがビジュアル計算で使用できます。 ビジュアル計算はビジュアル マトリックスの範囲内で動作するため、USERELATIONSHIPRELATEDRELATEDTABLE などのモデル リレーションシップに依存する関数は使用できません。

ビジュアル計算には、ビジュアル計算に固有の一連の関数も導入されています。 これらの関数の多くは、DAX ウィンドウ関数へのショートカットを使う方が簡単です。

Note

次の表で説明されているビジュアル計算固有関数のみを使ってください。 他のビジュアル計算固有関数は、現時点では内部的な使用専用なので、使わないでください。 このプレビューの進行に伴う使用可能な関数の更新については、次の表を参照してください。

関数 説明 ショートカット先
COLLAPSE 計算は、軸の上位レベルで評価されます。 Percent of parent = DIVIDE([Sales Amount], COLLAPSE([Sales Amount], ROWS)) 該当なし
COLLAPSEALL 計算は、軸の合計レベルで評価されます。 Percent of grand total = DIVIDE([Sales Amount], COLLAPSEALL([Sales Amount], ROWS)) 該当なし
EXPAND 計算は、軸の下位レベルで評価されます。 Average of children = EXPAND(AVERAGE([Sales Amount]), ROWS) 該当なし
EXPANDALL 計算は、軸のリーフ レベルで評価されます。 Average of leaf level = EXPANDALL(AVERAGE([Sales Amount]), ROWS) 該当なし
FIRST 軸の最初の行を参照します。 ProfitVSFirst = [Profit] – FIRST([Profit]) INDEX(1)
ISATLEVEL 指定した列が現在のレベルに存在するかどうかを報告します。 IsFiscalYearAtLevel = ISATLEVEL([Fiscal Year]) 該当なし
LAST 軸の最後の行を参照します。 ProfitVSLast = [Profit] – LAST([Profit]) INDEX(-1)
MOVINGAVERAGE 軸に移動平均を追加します。 MovingAverageSales = MOVINGAVERAGE([Sales Amount], 2) WINDOW
NEXT 軸の次の行を参照します。 ProfitVSNext = [Profit] – NEXT([Profit]) OFFSET(1)
PREVIOUS 軸の前の行を参照します。 ProfitVSPrevious = [Profit] – PREVIOUS([Profit]) OFFSET(-1)
RANGE 軸の行のスライスを参照します。 AverageSales = AVERAGEX(RANGE(1), [Sales Amount]) WINDOW
RUNNINGSUM 軸に累計を追加します。 RunningSumSales = RUNNINGSUM([Sales Amount]) WINDOW

考慮事項と制限事項

ビジュアル計算は現在プレビュー段階であり、プレビュー期間中は、次の考慮事項と制限事項に注意する必要があります。

  • すべての視覚化タイプがサポートされているわけではありません。 ビジュアル計算の編集モードを使用して、視覚化タイプを変更します。 また、カスタム ビジュアルは、ビジュアル計算や非表示フィールドでテストされていません。
  • 次の視覚化タイプとビジュアル プロパティはテストされており、ビジュアル計算や非表示フィールドでは機能しないことが判明しています。
    • 折れ線積み上げ縦棒グラフ
    • ツリーマップ
    • マップ
    • 図形マップ
    • Azure マップ
    • スライサー
    • R ビジュアル
    • Python ビジュアル
    • 主要なインフルエンサー
    • 分解ツリー
    • Q & A
    • スマート説明
    • メトリック
    • ページ分割されたレポート
    • ArcGIS Maps
    • Power Apps
    • Power Automate
    • スモール マルチプル
  • この機能のパフォーマンスは最終製品を表すものではありません。
  • コピー/貼り付けやその他のメカニズムを使用してビジュアル計算を再利用することはできません。
  • ビジュアル計算でフィルター処理することはできません。
  • ビジュアル計算では、同じまたは異なる詳細レベルでそれ自体を参照することはできません。
  • ビジュアル計算または非表示フィールドのカスタマイズは使用できません。
  • ビジュアル計算または非表示フィールドを使用するレポートで、[Web に公開] 機能を使用することはできません。
  • ビジュアル計算または非表示フィールドを使用するビジュアルから基になるデータをエクスポートすることはできません。
  • ビジュアル計算または非表示フィールドを使用するビジュアルでは、"レコードの確認" ドリルスルー機能を使用できません。
  • 組み込みまたはカスタムの書式指定文字列は、ビジュアル計算では設定できません。
  • 視覚化計算には条件付き書式設定を適用できません。
  • データ カテゴリは、ビジュアル計算では設定できません。
  • ビジュアル計算では集計を変更することはできません。
  • ビジュアル計算の並べ替え順序を変更することはできません。
  • Power BI Embedded は、ビジュアル計算または非表示フィールドを使用するレポートではサポートされていません。
  • SQL Server Analysis Services へのライブ接続はサポートされていません。
  • 視覚化計算ではフィールド パラメーターを使用できません。
  • データのないアイテムの表示は、ビジュアル計算では使用できません。

次のステップ

次の記事は、ビジュアル計算を学習して使用する場合に役立ちます。