注
ビジュアル計算は現在、プレビュー段階です。
ビジュアル計算は、ビジュアル上に直接定義および実行される DAX 計算です。 ビジュアル計算を使用すると、以前は作成するのが難しかった計算の作成が容易になり、DAX が簡素化され、メンテナンスが容易になり、パフォーマンスが向上します。
Sales Amount の合計を定義するビジュアル計算の例を次に示します。 必要な DAX が単純であることに注目してください。
Running sum = RUNNINGSUM([Sales Amount])
              
              
              
              
            
計算は、視覚化内の任意のデータ (列、メジャー、またはその他の視覚化計算が含まれる) を参照できます。 この機能により、セマンティック モデルの複雑さが解消され、DAX の記述プロセスが簡略化されます。 ビジュアル計算を使用して、合計の実行や移動平均などの一般的なビジネス計算を実行できます。
ビジュアル計算は、DAX の他の計算オプションとは異なります。
ビジュアル計算はモデルには格納されず、代わりにビジュアルに格納されます。 つまり、ビジュアル計算は、ビジュアル上の内容のみを参照できます。 モデル内のすべてのものを事前にビジュアルに追加する必要があります。それにより、フィルター コンテキストやモデルの複雑さに関係なく、ビジュアル計算でそれらを参照することができます。
視覚化計算は、計算列からのコンテキストの単純さと、メジャーからのオンデマンド計算の柔軟性が組み合わさったものです。
メジャーと比較すると、ビジュアル計算は詳細レベルではなく集計データに基づいて動作するため、多くの場合パフォーマンス上の利点が得られます。 新しいメジャーまたはビジュアル計算によって計算を実行できる場合、多くの場合、後者の方がパフォーマンスが向上します。
ビジュアル計算はビジュアルの一部であるため、ビジュアル構造を参照でき、柔軟性が高まります。
Power BI で計算を追加する方法の詳細な比較については、「Power BI Desktop での計算オプションの使用」を参照してください。
ビジュアル計算を有効にすると、次のことができます。
- ビジュアル計算をレポートに追加する
 - 特定のフィールドを非表示にする
 - テンプレートを使用してビジュアル計算をすばやく作成する
 - ビジュアルの軸を参照して柔軟なビジュアル計算を行う
 
次のセクションでは、前の行頭文字で説明した各要素が視覚的な計算にどのように使用されるかについて詳しく説明します。
ビジュアル計算を有効にする
2024 年 9 月以前は、ビジュアル計算を使用するには、[オプションと設定]>[オプション]>[プレビュー機能] で有効にする必要がありました。 [ビジュアル計算]、[OK] の順に選びます。 ビジュアル計算は、Power BI Desktop の再起動後に有効になります。
2024 年 9 月以降は、ビジュアル計算が既定で有効になっているため、この手順は不要になりました。 プレビュー段階にある間は、上記の設定を使用して、必要に応じてビジュアル計算を無効にすることができます。
ビジュアル計算を追加する
ビジュアル計算を追加するには、ビジュアルを選択し、リボンの [新しいビジュアル計算] ボタンを選択します。
              
              
              
              
            
視覚化計算ウィンドウが編集モードで開きます。 編集モード画面は、3 つの主要なセクションで構成されています。次の図に示されているように、上から下に次のセクションがあります。
- ビジュアル プレビュー: 操作しているビジュアルが示されます
 - 数式バー: ここでビジュアル計算を追加できます
 - ビジュアル マトリックス: ビジュアル内のデータが示され、追加したビジュアル計算の結果が表示されます。 ビジュアルに適用するスタイルまたはテーマは、ビジュアル マトリックスには適用されません。
 
ビジュアル計算を追加するには、数式バーに式を入力します。 たとえば、 Sales Amount と Total Product Cost by Fiscal Year を含むビジュアルでは、次のように入力して各年の利益を計算するビジュアル計算を追加できます。
Profit = [Sales Amount] – [Total Product Cost]
              
              
              
              
            
既定では、ビジュアルのほとんどのビジュアル計算は、計算列と同様に行ごとに評価されます。 前の例では、ビジュアル マトリックスの各行に対して、現在の Sales Amount と Total Product Cost が減算され、結果が Profit 列に返されます。 メジャーのように SUM などの集計関数を追加することはできますが、必要はありません。 実際、メジャーとビジュアル計算式をより簡単に区別できるように、必要がない場合はこのような集計を追加しない方がよいでしょう。
ビジュアル計算を追加すると、それらがビジュアルのフィールドの一覧に表示されます。
              
              
              
              
            
さらに、そのビジュアル計算がビジュアルに表示されます。
              
              
              
              
            
ビジュアル計算では、多くの既存の DAX 関数を使用できます。 ビジュアル計算に固有の関数も使用できます。 ビジュアル計算はビジュアル マトリックスの範囲内で機能するため、 USERELATIONSHIP、 RELATED 、 RELATEDTABLE などのモデルリレーションシップに依存する関数は使用できません。
ビジュアルからフィールドを非表示にする
視覚化計算の編集モードでは、モデリング ビューで列やテーブルを非表示にできるのと同様に、視覚化からフィールドを非表示にすることができます。 たとえば、Profit ビジュアル計算のみを表示する場合は、Sales Amount と Total Profit Cost をビューから非表示にすることができます。
              
              
              
              
            
フィールドを非表示にしても、ビジュアルまたはビジュアル マトリックスからそれらのフィールドが削除されることはないため、ビジュアル計算では引き続きそれらを参照して作業を続けることができます。 非表示フィールドは、ビジュアル マトリックスでは引き続き表示されますが、結果のビジュアルには表示されません。 非表示フィールドは、ビジュアル計算が機能するために必要な場合にのみ含めることをお勧めします。
テンプレートの使用
ビジュアル計算には、一般的な計算を簡単に作成できるテンプレートが含まれています。 テンプレートを見つけるには、テンプレート ボタンを選び、使用するテンプレートを選びます。
              
              
              
              
            
リボンからテンプレート化されたビジュアル計算を作成するには、 [新しいビジュアル計算 ] ボタンの下部をクリックします。
以下のテンプレートが利用可能です:
- 累計。 値の合計を計算し、前の値に現在の値を追加します。 RUNNINGSUM 関数を使います。
 - 移動平均。 値の合計をウィンドウのサイズで割って、特定のウィンドウ内の値のセットの平均を計算します。 MOVINGAVERAGE 関数を使います。
 - 親の割合。 親に対する値の割合を計算します。 COLLAPSE 関数を使います。
 - 総計の割合。 COLLAPSEALL 関数を使って、すべての値に対する 1 つの値の割合を計算します。
 - 子の平均。 子値のセットの平均値を計算します。 EXPAND 関数を使います。
 - 前の値と比較します。 PREVIOUS 関数を使って、値を前の値と比較します。
 - 次と比較。 NEXT 関数を使って、値を後の値と比較します。
 - 最初と比較。 FIRST 関数を使用して、値を最初の値と比較します。
 - 最後と比較。 LAST 関数を使用して、値を最後の値と比較します。
 - コンテキストを使用して値を検索します。 LOOKUP関数を使用して、現在のコンテキスト内のビジュアル マトリックスで値を検索するか、式を評価します。
 - 合計を含む値を検索します。 LOOKUPWITHTOTALS関数を使用して、値を検索するか、合計を含むビジュアル マトリックスで式を評価します。
 
テンプレートを選ぶと、数式バーにそのテンプレートが挿入されます。 これらのテンプレートを開始点として使用できます。 テンプレートに頼らずに独自の式を追加することもできます。
パラメータ選択ツール
パラメーター ピッカーを使用すると、ビジュアル計算関数のパラメーターの値を簡単に選択できます。 たとえば、ここで「合計で値を検索する」テンプレートを読み込みます。
Ctrl + SPACE キーボード ショートカットを使用して、パラメーター ピッカーをアクティブにすることもできます。
Axis
多くの関数には、ビジュアル計算でのみ使用できる省略可能な Axis パラメータがあります。 Axis は、ビジュアル計算がビジュアル マトリックスを走査する方法に影響します。 Axis パラメーターは、既定でビジュアルの最初の軸に設定されます。 多くのビジュアルでは、最初の軸が ROWSです。つまり、ビジュアル計算はビジュアルマトリックスの各行ごとに上から下に評価されます。 次の表に、Axis パラメータの有効な値を示します。
| Axis アイコン | Axis 名 | 説明 | 
|---|---|---|
 
 | 
ROWS | 上から下の行に対して垂直方向に計算します。 | 
 
 | 
COLUMNS | 左から右に列を横断して計算します。 | 
 
 | 
ROWS COLUMNS | 上から下の行を縦に計算し、列ごとに左から右に続けます。 | 
 
 | 
COLUMNS ROWS | 左から右の列を水平方向に計算し、上から下に行ごとに続けます。 | 
注
ビジュアルに存在しない軸を指定した場合、その軸は無視されます。
Reset
多くの関数には、ビジュアル計算でのみ使用できる省略可能な Reset パラメータがあります。 Reset は、関数がビジュアル マトリックスの走査中にその値を 0 にリセットするか、別のスコープに切り替えるかどうか、およびそのタイミングに影響します。 これを行うには、ターゲット列をパーティション分割します。 パーティション内で計算が実行されると、列をパーティションに分割する方法によって、計算がリセットされるかどうかが決められます。 Reset パラメーターは既定で NONE に設定されています。つまり、ビジュアル計算がやり直されることはありません。 Reset パラメーターは、さまざまな種類の値を受け入れます。
- 整数
 - 列参照
 - 特殊 なシノニム: HIGHESTPARENT、 LOWESTPARENT、 NONE
 
どの場合も、ビジュアル計算階層で 1 つのレベルを指定します (ターゲット レベルと呼びます)。 ただし、計算でこのレベルがどのように解釈されるかは異なる場合があります。 Reset動作は、絶対モードと相対モードの 2 つの異なるモードで動作します。
パラメーターまたはパラメーターと同等の NONE、 HIGHESTPARENT 、および LOWESTPARENTに整数値を使用する場合は、整数のシグナルを使用して次の 2 つのモードのいずれかを選択できます。正の値は絶対モードでリセットを実行し、負の値は相対モードでリセットを実行します (ゼロはリセットされません。既定の動作)。
列参照を指定する場合は、絶対モードでも動作します。 これらの値はターゲット列のパーティション分割を決定し、その結果、リセットされるかどうかが判断されます。 これらの 2 つのモードについては、次のセクションで説明します。
絶対モード
このモードは、計算をターゲット列とその上のすべての列でパーティション分割する必要があることを示し、これは計算のすべてのレベルで適用されます。 ターゲットより上のレベル (ターゲット列が存在しない場合もあれば、他のレベル) では、計算は使用可能な残りの列によってパーティション分割されます。 正の整数値は、先頭から始まるターゲット列を識別します (先頭の列は 1、次の列は 2 など)。 N (階層内の列の数) まで上がり、それ以上の値は切り捨てられます。 または、列を直接指定することもできます。
たとえば、年、四半期、月、日の階層レベルを使用した視覚的な計算を考えてみましょう。 次の表は、 Resetの値に応じて各レベルで計算がどのようにパーティション分割されるかを示しています。
| レベル/値 | Reset = 1 または「年」 | Reset = 2 または クオーター | Reset = 3 または月 | Reset = 4 または日 | 
|---|---|---|---|---|
| 日レベル | 年 | 四半期と年 | 月、四半期、年 | 日、月、四半期、年 | 
| 月レベル | 年 | 四半期と年 | 月、四半期、年 | 月、四半期、年 | 
| 四半期レベル | 年 | 四半期と年 | 四半期と年 | 四半期と年 | 
| 年レベル | 年 | 年 | 年 | 年 | 
| 合計レベル | 無し | 無し | 無し | 無し | 
相対モード
負の整数値 –X を指定すると、各レベルで計算は階層内のすべての列 X レベル以上でパーティション分割されます (または、そのようなレベルが存在しない場合はパーティション分割されません)。 このモードで有効な値は、-1 ~ -N+1 (N は階層内の列の数) の間であり、下位の値はすべてトリミングされます。 ここでも、前に説明した視覚的な計算を検討してください。 次の表は、Reset の値に応じて各レベルで計算がどのようにパーティション分割されるかを示しています。
| レベル/値 | Reset = -1 | Reset = -2 | Reset = -3 | 
|---|---|---|---|
| 日レベル | 月、四半期、年 | 四半期と年 | 年 | 
| 月レベル | 四半期と年 | 年 | 無し | 
| 四半期レベル | 年 | 無し | 無し | 
| 年レベル | 無し | 無し | 無し | 
| 合計レベル | 無し | 無し | 無し | 
シノニム
Reset には、次のシノニムも用意されています。
- 既定値は NONE です。 これは計算をリセットせず、0 に相当します。
 - HIGHESTPARENT は、最上位レベルで絶対リセットを実行し、1 に相当します。
 - LOWESTPARENT は、直接の親による相対リセットを実行し、-1 と等価です。
 
使用例 Reset
たとえば、前に説明した視覚的な計算を考えてみましょう。 ビジュアル計算は同等であり、計算が評価されるレベルに関係なく、毎年再起動する 売上金額 の合計を返します ( 絶対モードを参照)。
RUNNINGSUM([Sales Amount], HIGHESTPARENT)
RUNNINGSUM([Sales Amount], 1)
RUNNINGSUM([Sales Amount], [Year])
これに対し、次の視覚的な計算では、両方とも、計算が評価されるレベルによって異なります (相対モードを参照) すべての直接親に対して 0 から始まる売上金額の合計が返されます。
RUNNINGSUM([Sales Amount], LOWESTPARENT)
RUNNINGSUM([Sales Amount], -1)
最後に、このビジュアル計算はリセット されず 、再開せずに、各日の Sales Amount 値を前の値に追加し続けます。
RUNNINGSUM([Sales Amount])
Axis、 Reset、 OrderBy 、および PartitionBy
Axis、Reset、OrderBy (ORDERBYを受け入れる)、およびPartitionBy (PARTITIONBY を受け入れる) パラメーターを使用して、計算の評価方法に影響を与えることができます。 これらはすべて指定する必要がなく、相互に組み合わせて使用できます。 ビジュアル計算排他関数は PartitionBy パラメーターを提供しないため、すべての関数がそれらを提供するわけではありません。 ウィンドウ関数は、ビジュアル計算で使用する場合にのみ Reset パラメーターを提供します。 ウィンドウ関数の Relation パラメーターは、ビジュアル計算で使用されるかどうかにかかわらず使用できますが、ビジュアル計算で使用される場合にのみ Axis を受け入れます。
Axis と Reset はビジュアル構造を参照しています。 OrderByパラメーターとPartitionBy パラメーターは、計算列、メジャー、ビジュアル計算で使用でき、フィールドを参照できます。 同じ関数を実行しますが、提供される抽象化レベルは異なります。ビジュアル構造を参照する方が、 OrderBy または PartitionByを使用してフィールドを明示的に参照するよりも柔軟性が高くなります。
Reset は、軸に複数のレベルがあることを想定しています。 軸上に複数のレベルがない場合、たとえば、軸上の単一のレベルにフィールドが 1 つだけか、複数のフィールドが単一レベルにまとまっている場合は、PartitionByを使用できます。
OrderByとPartitionByは、フィールド参照を明示的に指定することで、フィールド参照をピン留めすると考えることができます。ここで、AxisとResetはフィールドに依存しません。これらは、構造体を参照し、使用される構造体上で発生するフィールドを参照します。
使用できる関数
既存の DAX 関数の多くがビジュアル計算で使用できます。 ビジュアル計算はビジュアル マトリックスの範囲内で動作するため、USERELATIONSHIP、RELATED、RELATEDTABLE などのモデル リレーションシップに依存する関数は使用できません。
ビジュアル計算には、ビジュアル計算に固有の一連の関数も導入されています。 これらの関数の多くは、DAX ウィンドウ関数へのショートカットを使う方が簡単です。
| 関数 | 説明 | 例 | ショートカット先 | 
|---|---|---|---|
| COLLAPSE | 計算は、軸の上位レベルで評価されます。 | 親のパーセント = DIVIDE([Sales Amount], COLLAPSE([Sales Amount], ROWS)) | 該当なし | 
| COLLAPSEALL | 計算は、軸の合計レベルで評価されます。 | 総計の割合 = DIVIDE([Sales Amount], COLLAPSEALL([Sales Amount], ROWS)) | 該当なし | 
| EXPAND | 計算は、軸の下位レベルで評価されます。 | 子の平均 = EXPAND(AVERAGE([Sales Amount]), ROWS) | 該当なし | 
| EXPANDALL | 計算は、軸のリーフ レベルで評価されます。 | リーフ レベルの平均 = EXPANDALL(AVERAGE([販売金額]), ROWS) | 該当なし | 
| FIRST | 軸の最初の行を参照します。 | ProfitVSFirst = [Profit] – FIRST([Profit]) | INDEX(1) | 
| ISATLEVEL | 指定した列が現在のレベルに存在するかどうかを報告します。 | IsFiscalYearAtLevel = ISATLEVEL([会計年度]) | 該当なし | 
| LAST | 軸の最後の行を参照します。 | ProfitVSLast = 利益 – LAST(利益) | INDEX(-1) | 
| LOOKUP | 現在のコンテキストを使用して、ビジュアル マトリックスで式を評価します。 | LookupSalesFor2025WithContext = LOOKUP(SUM([Sales]) [Year], "2025") | 該当なし | 
| LOOKUPWITHTOTALS | 合計付きのビジュアル マトリックスを使用して式を評価します。 | LookupSalesFor2025WithTotals = LOOKUPWITHTOTALS(合計([Sales]), [Year], "2025") | 該当なし | 
| MOVINGAVERAGE | 軸に移動平均を追加します。 | 移動平均売上 = MOVINGAVERAGE([売上金額], 2) | WINDOW | 
| NEXT | 軸の次の行を参照します。 | ProfitVSNext = 【Profit】 – NEXT(【Profit】) | OFFSET(1) | 
| PREVIOUS | 軸の前の行を参照します。 | ProfitVSPrevious = [利益] – PREVIOUS ([利益]) | OFFSET(-1) | 
| RANGE | 軸の行のスライスを参照します。 | AverageSales = AVERAGEX(RANGE(1), [売上額]) | WINDOW | 
| RUNNINGSUM | 軸に累計を追加します。 | RunningSumSales = RUNNINGSUM([売上金額]) | WINDOW | 
ビジュアル計算の書式設定
データ型と書式設定オプションを使用して、ビジュアル計算の書式を設定できます。 カスタム ビジュアル レベルの書式指定文字列を設定することもできます。 ビジュアルの書式設定ペインの [全般] セクションにある [データ形式] オプションを使用して、書式を設定します。
              
              
              
              
            
例 1: ビジュアル計算を使用して条件付き書式の 16 進色コードを返す
手順 1: 条件付き書式を使用するビジュアルを選択します。
              
              
              
              
            
手順 2: [ホーム] タブの下にある [新しいビジュアル計算] ボタンを選択します。
              
              
              
              
            
手順 3: 視覚的な計算を記述します。 メジャーが .5 を超える場合に基づいて緑または赤を返す IF ステートメントを以下に示します。
              
              
              
              
            
Conditional Hex Code = IF ( [Progress] > .5, "#5BA300", "#E91C1C" )
手順 4: [書式設定] ウィンドウを展開し、[ プロパティ] を選択します。
              
              
              
              
            
手順 5: [ データ形式 ] セクションを展開し、ビジュアル計算を選択し、[データ型] と [書式] の両方を [テキスト] に設定します。
              
              
              
              
            
手順 6: ビジュアル計算エディターを終了する前に、ビルド セクションのビジュアル計算の横にある非表示アイコンを選択して非表示にします。
              
              
              
              
            
手順 7: 条件付き書式セクションで使用する:
              
              
              
              
            
手順 8: [レポートに戻る ] ボタンをクリックして、ビジュアル計算エディターを終了します。
              
              
              
              
            
手順 9: 条件付き書式付きビジュアルをお楽しみください。
              
              
              
              
            
考慮事項と制限事項
ビジュアル計算は現在プレビュー段階であり、プレビュー期間中は、次の考慮事項と制限事項に注意する必要があります。
- すべての視覚化タイプがサポートされているわけではありません。 ビジュアル計算の編集モードを使用して、視覚化タイプを変更します。 また、カスタム ビジュアルは、ビジュアル計算や非表示フィールドでテストされていません。
 - 次の視覚化タイプとビジュアル プロパティはテストされており、ビジュアル計算や非表示フィールドでは機能しないことが判明しています。
- スライサー
 - R ビジュアル
 - Python ビジュアル
 - 主要なインフルエンサー
 - 分解ツリー
 - Q & A
 - スマート説明
 - メトリック
 - ページ割り付けレポート
 - Power Apps
 - Power Automate
 - スモール マルチプル
 - 散布図の再生軸
 
 - この機能のパフォーマンスは最終製品を表すものではありません。
 - コピー/貼り付けやその他のメカニズムを使用してビジュアル計算を再利用することはできません。
 - ビジュアル計算でフィルター処理することはできません。
 - ビジュアル計算では、同じまたは異なる詳細レベルでそれ自体を参照することはできません。
 - ビジュアル計算または非表示フィールドのカスタマイズは使用できません。
 - 視覚化計算や非表示フィールドを使用する視覚化をダッシュボードにピン留めすることはできません。
 - ビジュアル計算または非表示フィールドを使用するレポートで、[Web に公開] 機能を使用することはできません。
 - ビジュアルからデータをエクスポートする場合、ビジュアルの計算結果は 基になるデータ エクスポートに含まれません。 非表示フィールドは、 基になるデータをエクスポートする場合を除き、エクスポートには含まれません。
 - ビジュアル計算または非表示フィールドを使用するビジュアルでは、"レコードの確認" ドリルスルー機能を使用できません。
 - データ カテゴリは、ビジュアル計算では設定できません。
 - ビジュアル計算では集計を変更することはできません。
 - ビジュアル計算の並べ替え順序を変更することはできません。
 - バージョン 2025 より前にリリースされた SQL Server Analysis Services バージョンへのライブ接続はサポートされていません。
 - フィールド パラメーターは視覚的な計算で使用できますがいくつかの制限があります。
 - [データのない項目を表示する] は、ビジュアル計算では使用できません。
 - ビジュアル計算ではデータ制限を使用できません。
 - ビジュアル計算で動的書式設定文字列を設定したり、フィールドまたはメジャーに動的書式設定文字列としてビジュアル計算を使用したりすることはできません。
 - IntelliSense は、Power BI 埋め込みでは使用できません。
 
関連コンテンツ
ビジュアル計算の使用方法の詳細については、次のリソースを参照してください。