Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

表計算を使用せずに合計に対する割合を計算する

公開日: Jul 20, 2023
タスク
簡易表計算のような表計算を使用せずに合計に対する割合を計算する方法
ステップ

一般的な解決方法

分母に詳細レベル (LOD) の関数を使用した計算を作成して、合計を算出します。たとえば、セグメントあたりの合計売上の割合を算出するとします。次の表計算は合計売上の割合を算出します。
SUM([Sales]) / TOTAL(SUM([Sales]))
これを、次のようにできます。
SUM([Sales]) / SUM( { EXCLUDE [Segment] : SUM([Sales]) } )

 
クリックしてソリューションを展開する

例 1: 簡易表計算から LOD 計算への変換

添付のワークブックに含まれる「例 1: 表計算」ワークシートから始めます。
ステップ 1 - 表計算を使用してビューを構築する
  1. [Region (地域)] を [行] シェルフまでドラッグします。
  2. [Segment (区分)] を [マーク] カードの [色] にドラッグします。
  3. [Sales (売上)] を [列] シェルフにドラッグします。
  4. [列] シェルフで [Sales (売上)] を右クリックして [簡易表計算] > [合計に対する割合] を選択します。
  5. [列] シェルフで [Sales (売上)] を右クリックし、[次を使用して計算] > [表 (横)] を選択します。
  6. [列] シェルフで、CTRL を押しながら [Sales (売上)] を [マーク] カードの [ラベル] へドラッグします。これにより、同じ簡易表計算が適用されたコピーが作成されます。
ステップ 2 - 計算フィールドを使用して同じ結果を再生成する
  1. [分析] > [計算フィールドの作成] を選択します。
  2. 開いた [計算フィールド] ダイアログ ボックスで次の操作を行い、[OK] をクリックします。
    1. 計算フィールドに名前を付けます。この例では、計算フィールドに "Ex 1:% of total sales per segment within region (例 1: 地域内の区分ごとの合計売上に対す割合)" という名前がついています。
    2. [マーク] カードにある三角形のアイコンが付いた緑色の [SUM(Sales) (SUM(売上高))] フィールドを計算エディターへドラッグします。
    3. Tableau Desktop は自動的に次の計算を書き出します。
      SUM([Sales])/TOTAL(SUM([Sales]))
  3. 計算を修正して、表関数の TOTAL() を LOD 関数に置換します。最終的な計算は、次のようになります。
    SUM([Sales])/SUM({ EXCLUDE [Segment] : SUM([Sales])})

    重要: EXCLUDE 関数で式を計算するとき (この場合は SUM([Sales]) (SUM(売上高)))、EXCLUDE の後にリストされたディメンションがビューから削除されたかのように扱われます。"集計および非集計の引数を混在させることはできません" エラーを回避するため、EXCLUDE の外側に SUM() が必要となりますが、分母の値は変わりません。
  4. ビュー内の [SUM(Sales) (SUM(売上高))] を [Ex 1: % of total sales per segment within region (例1: 地域内の区分ごとの合計売上に対する割合)] に置換します。
  5. (オプション) 軸の既定の数値を書式設定して、[パーセンテージ] に変更します。
次のビデオで説明されている手順を表示するには、上記セクションを展開します。
注: ビデオに音声はありません。
 
クリックして手順を展開する

例 2: 合計に対する割合範囲の調整

オプション 1
EXCLUDE を使用する場合、メジャー バリューをグループ化するディメンションを除くすべてのディメンションを EXCLUDE の後にリストします。たとえば、ビューに [Region (地域)]、[Segment (区分)] および [Category (カテゴリ)] が含まれており、目的が各地域内の区分ごとの合計に対する割合を算出する場合は、次のようになります。
{ EXCLUDE [Category] : SUM( [Sales] ) }/{ EXCLUDE [Segment], [Category] : SUM( [Sales] ) }

FIXED を使用する場合は、メジャー バリューのグループ化に使用されるすべてのディメンションっを FIXED の後にリストします。FIXED を使用した場合の上記と同じ例を次に示します。
{ FIXED [Segment], [Region] : SUM( [Sales] ) }/{ FIXED [Region] : SUM( [Sales] }
オプション 2
全体的な区分ごとの合計売上に対する割合を算出する場合、この特定の例では各地域およびすべてのカテゴリの [Consumer (顧客)] に 50.56% と表示されます。これは、合計に対する割合が区分に関連付けられており、ビュー内に追加のディメンションがあるため、パーセンテージが繰り返されることが原因です。
{ EXCLUDE [Region], [Category] : SUM([Sales]) }/{ EXCLUDE [Region], [Category], [Segment] : SUM([Sales])}

FIXED を使用する場合は、次の同等の計算を使用します。
{ FIXED [Segment] : SUM([Sales]) }/{ FIXED : SUM([Sales]) }
オプション 3
次の計算を使用して、ビュー内の行ごとの合計売上に対する割合を表示します。
SUM([Sales])/SUM({ EXCLUDE [Category] : SUM([Sales]) })
  • SUM([Sales]) は、ビュー内の行ごとに計算されます。
  • EXCLUDE ステートメントでは、[Category (カテゴリ)] が削除されたかのようにビュー内の各行の売上が計算されます。
  • ディメンションがビューに追加されると、それに従って分母および分子の値が変わります。
「Example 2: LOD Scope Variations (例 2: LOD 範囲のばらつき)」ワークシートを参照し、これらの例を確認してください。EXCLUDE または FIXED を使い分けるヒントについては、この記事の「その他の注意事項」セクションを参照してください。
次のビデオで説明されている手順を表示するには、上記セクションを展開します。
注: ビデオに音声はありません。
 
クリックして手順を展開する

例 3: フィルターを含めるか無視する

操作の順序により、FIXED 式はコンテキスト フィルターによってのみフィルター処理されます。EXCLUDE 式は、すべてのディメンション フィルターによってフィルター処理されます。

表計算や TOTAL() 関数を使用する代わりに、次のような詳細レベル (LOD) の式を使用します。
{ FIXED [<合計に対する割合の算出に必要なディメンション>] : SUM([Measure]) } /
{ FIXED [<"合計" ディメンション>] : SUM([Measure]) }

たとえば、Superstore (スーパーストア) のサンプル データを使用して、各セグメントの合計に対する割合を地域ごとに次のように表示します。
  1. [分析] > [計算フィールドの作成] を選択します。計算に "合計に対する割合" という名前を付け、以下の計算を入力してから [OK] をクリックします。
    { FIXED [Segment], [Region] : SUM([Sales]) }/{ FIXED [Region] : SUM([Sales]) }
  2. [メジャー] ペインで [合計に対する割合] を右クリックし、[既定のプロパティ] > [数値形式...]> [割合] を選択します。
  3. [列][合計に対する割合] を配置します。 
  4. [行][Region (地域)] を配置します。 
  5. [色] [Segment (区分)] を配置します。
  6. [ラベル][合計に対する割合] を配置します。 
上記の手順を確認するには、次のビデオを参照してください。
注: ビデオに音声はありません。

追加の例を表示するには、添付のワークブックにある「Example 3: Working with Filters (例 3: フィルターの使用)」ワークシートを参照してください。
  1. 次のような計算を含む計算フィールドを作成して、"Ex 3: % of total sales per segment within region (not filtered) (例 3: 地域内の区分ごとの合計売上に対する割合 (フィルターされていない))" などの名前をつけます。
    { FIXED [Segment], [Region] : SUM([Sales]) }/{ FIXED [Region] : SUM([Sales]) }
  2. [Ex 3: % of total sales per segment within region (not filtered) (例 3: 地域内の区分ごとの合計売上に対する割合 (フィルターされていない)] を [列] シェルフへドラッグします。
  3. [フィルター] シェルフに [Category (カテゴリ)] および [Sub-Category (サブカテゴリ)] をドラッグします。
  4. [フィルター] シェルフで [Category (カテゴリ)] を右クリックし、[コンテキストに追加] を選択します

上記の計算例を次に示します。

  • EXCLUDE を使用した計算は、[Category (カテゴリ)] および [Sub-Category (サブカテゴリ)] の両方のフィルターでフィルター処理されます。これは、表関数でも同様です。
  • FIXED を使用した計算は、フィルターがコンテキストに追加されているため、[Catgory (カテゴリ)] でのみフィルター処理されます。
  • FIXED および EXCLUDE のいずれかがフィルター処理され、もう一方が処理されないように、これらを 1 つの計算に混在させることができます。
クリックして手順を展開する

例 4: 別の計算での合計に対する割合の使用

別の計算で合計に対する割合の計算を使用する場合、考慮すべき事項が 2 つあります。
  1. 最終的なビューに分母および分子の計算に必要なディメンションがない場合は、FIXED または INCLUDE のいずれかを使用する必要があります。
  2. 合計に対する割合の計算は、使用する計算の集計と一致する必要があります。LOD では、常に非集計値を返します。
ステップ 1 - ビューの作成
  1. [Order Date (オーダー日)] を右クリックして、[列] シェルフへドラッグします。
  2. [フィールドのドロップ] ダイアログで、緑色の [Order Date (continuous) (オーダー日 (連続))] を選択して [OK] をクリックします。
  3. "Sales (売上高)" を [行] シェルフまでドラッグします。
  4. [Order ID (オーダー ID)] を [マーク] カードの [詳細] へドラッグします。
ステップ 2 - 計算フィールドの作成
  1. 次のような計算を含む計算フィールドを作成して、"Ex 4: % of total per customer overall (例 4: 全体的な顧客ごとの合計に対する割合)" などの名前をつけます。
    { FIXED [Customer Name], [Region] : SUM([Sales]) }/{FIXED [Region] : SUM([Sales])}
  2. 次のような計算を含む計算フィールドを作成して、"Ex 4: Top Customers per Region (例 4: 地域ごとの上位顧客)" などの名前をつけます。
    IF
    ([Ex 4: % of total per customer within region] > .02
    AND [Region] = "South")
    または
    [Ex 4: % of total per customer within region] > .0075
    THEN "big customer"
    ELSE "other"
    END
  3. [Ex 4: Top Customers per Region (例 4: 地域ごとの上位顧客)] を [マーク] カードの [色] へドラッグします。
この例は添付のワークブックのシート、とりわけ "Example 4 (例 4)" という名前のシートでも確認できます。
次のビデオで説明されている手順を表示するには、上記セクションを展開します。
注: ビデオに音声はありません。
その他のリソース
 
表計算と LOD の比較
表関数および LOD 関数は、いずれも合計の範囲を決定する際に使用できます。合計に対する割合を使用する方法によっては、片方がより適切である場合があります。
  • 表計算の合計に予期しない結果が表示される場合があります。
  • フィルターによって表計算が予期せず変更される場合があります。
  • FIXED LOD 計算でコンテキスト フィルターを除くすべてのフィルターが無視されます。
  • 合計に対する割合を参照する計算で、"集計および非集計の引数を混在させることはできません" というエラーが発生する場合があります。実行する計算の集計に一致する、使用する合計に対する割合の計算を使用します。FIXED 式は非集計ですが、EXCLUDE 関数および表関数は集計です。
表関数と LOD 計算の違いに関する詳細については、「適切な計算の種類の選択」を参照してください。
EXCLUDE と FIXED の比較

ほとんどの場合、EXCLUDE または FIXED のいずれかを使用できます。考慮する要素は次のとおりです。

  • EXCLUDE ステートメントでは、すべてのディメンション フィルターに従います。FIXED では、コンテキスト フィルターにのみ従います。
  • EXCLUDE ステートメントは、ビュー内または [フィルター] シェルフで集計される必要があります。FIXED ステートメントは、ディメンションと同様に処理されます。
  • わかりやすくするため、上記の例では INCLUDE は使用せず EXCLUDE についてのみ表示します。INCLUDE では、指定したディメンションがビューに追加されたかのように式の計算を行います。ディメンションに分子または分母の範囲の定義に必要なディメンションが不足している場合は、EXCLUDE より INCLUDE を選択する方が適切です。
LOD のより詳細な使用方法および FIXED、INCLUDE、EXCLUDE の相違については、「ビューへの詳細レベルの式の追加」を参照してください。

ナレッジ記事番号

001456489

添付ファイル

Percent of Total LOD_v2018.1.twbx

2513 KB

 
読み込み中
Salesforce Help | Article