ナレッジベース

別の表計算による表計算のフィルター


発行: 22 May 2014
最終修正日: 13 Sep 2023

ご質問

別の表計算によって表計算をフィルターする方法。たとえば、元の表計算が顧客あたりの売上合計に対する割合であり、ビューを、ランクによって決定される上位 10 顧客にのみフィルターする必要がある場合、合計に対する割合は引き続きすべての顧客に対して計算されます。

環境

Tableau Desktop

回答

IF ステートメントを使用して、他の表計算の構文に表計算フィルターを追加します。

添付のワークブックの例では、"Superstore (スーパーストア)" サンプル データ セットを使用して次の方法を示しています。
ステップ 1: ビューのセットアップ
  1. [顧客名] を [行] シェルフにドラッグします。
  2. [Sales (売上)] をマーク カードの [テキスト] にドラッグします
  3. [マーク] カードで [Sales (売上)] を右クリックし、[簡易表計算] > [合計に対する割合] を選択します
  4. マーク カードで [Sales (売上)] を右クリックし、[次を使用して計算] > [表 (下)] を選択します
  5. [分析] > [計算フィールドの作成] を選択します。
  6. 開いた [計算フィールド] ダイアログ ボックスで次の操作を実行し、[OK] をクリックします。
    • 計算フィールドに名前を付けます。この例では、計算フィールドに "Rank of Sales (売上ランク)" という名前を付けます
    • 式フィールドで、次のような計算を作成します。
      RANK(SUM([Sales]))
  7. [Sales Rank (売上ランク)] をフィルター シェルフにドラッグします
  8. [フィルター] ダイアログで、範囲として 1 から 10 を選択し、[OK] をクリックします

ステップ 2: 新しい計算の作成
  1. 新しい計算を作成し、[マーク] カードから [Sales (売上)] を計算エディターにドラッグします。Tableau Desktop で自動的に売上合計に対する割合の式が書き出されます。これは次のようになります。

    SUM([Sales]) / TOTAL(SUM([Sales]))
     
  2. 10 未満のランクにフィルターする IF ステートメントで SUM([Sales]) の各インスタンスを囲みます。最終的な計算は、次のようになります。

    IF [Rank of Sales] <= 10
    THEN SUM([Sales])
    END
    /
    WINDOW_SUM(IF [Rank of Sales] <= 10
    THEN SUM([Sales])
    END)



    : 表計算 TOTAL() を WINDOW_SUM() で置換する必要もあります。TOTAL は集計でのみ機能し、複雑な式では機能しないためです。
     
  3. [Sales (売上)] を新しい計算で置換します
この記事で問題は解決しましたか?