Tableau

真打ち登場LOD ~TableauのEXCLUDE関数を知ろう~

こんにちは。エクスチュアの大吉です。
これまでの記事では、FIXED(ビューに関係なく粒度を固定するやつ)INCLUDE(ビューに粒度を追加するやつ)について解説しました。
今回は、LODの3つ目、「EXCLUDE」にフォーカスして解説していきます。

  • ビューには細かい粒度で表示したいけど、集計は粗い粒度で行いたい
  • 一部のディメンションを無視して集計したい
  • 「日別の売上」を見ながら「カテゴリ全体の売上」も並べて表示したい

上記のような表現をしてみたい、そもそもEXCLUDEって何なの?、、、ぜひ最後まで読んでみてください。

目次


EXCLUDEとは

EXCLUDEを一言で表すなら、こうなります。

「ビューの粒度から、指定したディメンションを除外して計算する」

ここで重要なのは、「ビューの粒度を基準にする」という点です。
FIXEDは「ビューに関係なく」計算しましたが、EXCLUDEは「ビューを見てから、その中の一部を除外する」という動きをします。

つまり、ここまでのLOD3種を整理すると

  • FIXED:ビューとは無関係に、明示的に指定した粒度で計算
  • INCLUDE:ビューの粒度に、指定したディメンションを足し算して計算
  • EXCLUDE:ビューの粒度から、指定したディメンションを引き算して計算

という違いがあります。
言い換えると、EXCLUDEは「ビューの粒度から一部を取り除いて、より粗い粒度で集計したい」ときに使う仕組みです。


EXCLUDEが必要になるとき

では、次のような要件を考えてみます。

「日別×カテゴリ別の売上を見ながら、日別の売上も並べて表示したい」

ここで重要なのは、

  • ビューの粒度:オーダー日(日)× カテゴリ
  • 求めたい粒度:日付のみ(カテゴリを除外)

というズレです。
通常のSUM関数では、ビューの粒度(この場合は日付×カテゴリ)に従って集計されてしまいます。

「日別の売上合計を表示したいのに、カテゴリに分割されてしまう…」

これは、Tableauの集計の仕組み上、自然な動きです。
ビューに配置されているディメンションが、集計の粒度を決めているからです。
ここで初めて、粒度から日付を除外する必要が出てきます。
※「表計算でできるじゃん」と思ったあなた、そうなんです、が大人の事情で一旦表計算は忘れましょう。。。


EXCLUDEを使ってみる

そこで、次のLOD計算を作成します。

{ EXCLUDE [カテゴリ] : SUM([売上]) }

この式が言っていることは、こうです。

「ビューの粒度(日付×カテゴリ)から、カテゴリを除外して売上を合計して」

内部的には、

  1. ビューの粒度を確認する(日付×カテゴリ)
  2. そこから「カテゴリ」を除外する
  3. 残った「日付」の粒度で集計する

という処理が行われています。


:オーダー日(日)とカテゴリ

:SUM([売上])と{ EXCLUDE [カテゴリ] : SUM([売上]) }

今度は、同日で複数の売上が立っていても、日別の売上合計は変わりません。
これは、EXCLUDEがビューの粒度から「カテゴリ」を除外し、日付だけの粒度で集計しているからです。


EXCLUDEを用いることで、このように各カテゴリがその日の売上の何%を占めているかがわかります。


フィルターとの関係

EXCLUDEもINCLUDEと同様に、フィルターの影響を受けます


フィルター:地域を「関東地方」「関西地方」「九州」に限定

:オーダー日(日)とカテゴリ

:SUM([売上])と{ EXCLUDE [オーダー日] : SUM([売上]) }

結果:両方の値がフィルターの影響を受けて変化します。

これもFIXEDとの違いの1つです。
「どのフィルターがかかってからEXCLUDEが適用されるか」はFIXEDと異なります。
FIXEDではディメンションフィルターを適用しても、値に変化はありませんでしたが、EXCLUDEはディメンションフィルターが適用されます。

これは、EXCLUDEがディメンションフィルターの後に評価されるためです。

Tableauの計算順序(クエリパイプライン)では、

  1. ディメンションフィルター
  2. EXCLUDE / INCLUDE の評価
  3. メジャーフィルター

という順序になっています。
※クエリパイプラインではさらに細かい順序でフィルターがかかりますが、今回詳細は省きます


EXCLUDEを使うときの思考フレーム

最後に、EXCLUDEを書く前に考えてほしいことをまとめます。

  1. 今のビューの粒度は何か
    → 行や列に配置されているディメンションを確認
  2. どのディメンションを除外したいか
    → 粒度を粗くしたい対象を明確にする
  3. 除外後の粒度で、どんな集計をしたいか
    → SUM、AVG、COUNTなど
  4. フィルターの影響を受けることを理解しているか
    → EXCLUDEはディメンションフィルター後に評価される

この視点を持つだけで、EXCLUDEの使用機会も増え、伝えたいことを伝えやすいダッシュボードを作成することができます。


まとめ

いかがだったでしょうか。
EXCLUDEは、「ビューの粒度から、指定したディメンションを除外して計算する」という特性を持っています。

FIXEDが「ビューに関係なく」計算し、INCLUDEが「ビューに追加」するのに対し、EXCLUDEは「ビューから除外して、より粗い粒度で計算する」という考え方です。
だからこそ、

  • ビューの細かい粒度を保ちながら、粗い粒度の集計を並べて表示できる
  • 構成比の計算などで威力を発揮する
  • ビューの構成が変わると、EXCLUDEの結果も変わる

という特性があります。

EXCLUDEは、ビューに寄り添いながら、柔軟に粒度を調整できる武器です。EXCLUDEを上手に活用できれば1段質の良いダッシュボードが作成できると思います。
これで、FIXED、INCLUDE、EXCLUDEの3つのLOD計算をすべて解説しました。

それぞれのLODの特性を理解し、適切に使い分けることで、Tableauでの分析の幅が大きく広がります。
ぜひ、実際のデータで試してみてください。

DataformでactAs権限に適合する設定をする前のページ

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Tableau

    DirectionAPI+Tableauでドライブ時間の可視化(後編)

    だいぶ間が空いてしまいましたが、DirectionAPI+Tablea…

  2. Tableau

    動的なリファレンスラインで個別に閾値(しきい値)を設定【Tableau】

    完成形リファレンスラインを動的に設定することのメリットリファレン…

  3. Tableau

    Tableau ServerとTableau Onlineの違い【管理者向け】

    【基本のキ】Tableau ServerとTableau Online…

  4. Tableau

    Tableau : IF文の「集計」「非集計」の混在を解決

    こんにちは、エクスチュア渡部です。これから定期的にTableauやGo…

  5. Tableau

    【TC19ブログ】エクスチュアの海外カンファレンス参加支援制度

    こんにちは、エクスチュアの渡部です。いよいよ明日の11/12(…

  6. Tableau

    Tableauの便利な機能

    こんにちは!インターン生の市川です。前回ではTableauの便利な機…

カテゴリ
最近の記事
  1. 真打ち登場LOD ~TableauのEXCLUDE関数を知ろ…
  2. DataformでactAs権限に適合する設定をする
  3. 真打ち登場LOD ~TableauのINCLUDE関数を知ろ…
  4. 真打ち登場LOD ~TableauのFIXED関数を知ろう~…
  5. 真打ち登場LOD ~Tableauで苦戦するアイツを知ろう~…
  1. Python

    市区町村一覧・自治体の一覧を取得する
  2. データサイエンス

    回帰分析はかく語りき Part2 重回帰分析
  3. Python

    pythonを使ったダミーデータ生成
  4. ヒートマップ

    MouseflowをAdobe Analyticsと一緒に使う
  5. Adobe Dynamic Tag Manager

    Tag Manager: Adobe DTM で Google Analytic…
PAGE TOP