Tableau

Tableau:分かりやすいLOD – INCLUDE編

エクスチュア渡部です。今回はLODブログの第3弾です。
INCLUDEと、INCLUDEとFIXEDとの違いについて説明します。

これまでも説明した通り、LODの基本は「データソースでは実現できない粒度での集計を実現すること」です。
この説明がピンとこない場合、下記記事を読んでください。

・Tableau:分かりやすいLOD – 概要編

では、INCLUDEはどのようにして任意の粒度での集計を実現するのでしょうか?
実はINCLUDEはある大きな1点を除いてFIXEDと基本的に考え方が一緒です。その違いは最後に説明するので、
それまではあえて前回のFIXED説明ブログと同じ表現で記載します。

・INCLUDEが任意の粒度で集計する仕組み

実は、「通常の集計関数を使った集計」と「INCLUDE関数を使った集計」では集計に使うデータソースが違います。
通常の集計関数は当然、データソースをそのまま用います。それに対してINCLUDEを使った集計は
「データソースを基に作成した中間テーブル」を使って集計を行うのです。(これはTableauがDB側に発行するSQLを読み解くと理解できます)。

例えば、サンプルスーパーストアの例を使って、「都道府県別顧客一人当たりの平均購買日数」を出してみましょう。
サンプルスーパーストアは1行1行のデータが、「1オーダー×製品別?」という粒度なのでこの集計には以下のようなステップが必要です。

① :顧客名ごとの購買日数(COUNTD([オーダー日])で集計した中間テーブルを作る
② :①の平均を都道府県別に出す

この①をINCLUDEで実現します。下記画像のようなイメージです。

今回の場合、まず中間テーブルを作るにあたり下記のように書くだけです。
{INCLUDE [顧客名] : COUNTD(オーダー日)}

今回出したいのはこの結果の平均なので、これをAVG関数で囲みます。
AVG({INCLUDE [顧客名] : COUNTD([オーダー日])})

これで出した結果を配置すれば、都道府県ごとの「都道府県別顧客一人当たりの平均購買日数」を出すことが可能です。

 

・活用例

「INCLUDE式を書くことは中間テーブルを作ること」なので、FIXED式の書き方次第で、「中間テーブル」の構成も変わっていきます。いくつか例を並べます。

(1)中間テーブルの粒度:顧客ごとの売上
→{INCLUDE [顧客名] : SUM([売上])}
顧客ごとの売上平均 :AVG({INCLUDE [顧客名] : SUM([売上])})
顧客ごとの売上最大値:MAX({INCLUDE [顧客名] : SUM([売上])})
顧客ごとの売上最小値:MIN({INCLUDE [顧客名] : SUM([売上])})

(2) 中間テーブルの粒度:顧客ごとの購買日数
→{INCLUDE [顧客名] : COUNTD([オーダー日])}
顧客ごとの購買日数平均 :AVG({INCLUDE [顧客名] : COUNTD([オーダー日])})
顧客ごとの購買日数最大値:MAX({INCLUDE [顧客名] : COUNTD([オーダー日])})
顧客ごとの購買日数最小値:MIN({INCLUDE [顧客名] : COUNTD([オーダー日])})

(3) 中間テーブルの粒度:顧客ごとの初回購買日
→{INCLUDE [顧客名] : MIN([オーダー日])}
顧客ごとの初回購買日最大値:MAX({INCLUDE [顧客名] : COUNTD([オーダー日])})
顧客ごとの初回購買日最小値:MIN({INCLUDE [顧客名] : COUNTD([オーダー日])})

(4) 中間テーブルの粒度:各サブカテゴリの1日当たりの売上
→{INCLUDE [オーダー日],[サブカテゴリ] : SUM([売上])}
各サブカテゴリの1日当たりの売上平均 :AVG({INCLUDE [オーダー日],[サブカテゴリ] : SUM([売上])})
各サブカテゴリの1日当たりの売上最大値:MAX({INCLUDE [オーダー日],[サブカテゴリ] : SUM([売上])})
各サブカテゴリの1日当たりの売上最小値:MIN({INCLUDE [オーダー日],[サブカテゴリ] : SUM([売上])})

書き方1つで自由な粒度での中間テーブルを作成できますね。それを集計関数によって囲むことで様々な集計を可能にしています。
そうしてINCLUDE式は任意の粒度での集計を可能にするわけです。

・FIXED関数との違い

では、INCLUDEとFIXED式の決定的な違いを説明します。
それは、「ビュー内に既に存在するディメンションを考慮するかしないか」です。

例えば、下記の2つの結果を見比べてみましょう。

左側の式:AVG({INCLUDE [カテゴリ]: SUM([売上])})
右側の式:AVG({FIXED [カテゴリ]: SUM([売上])})

カテゴリごとの合計売上の平均というよく分からない例ですがご容赦ください。
2つの結果が明らかに違いますね。その理由は、「LOD式内で宣言している以外のディメンションを考慮するかしないか」です。
INCLUDEは既にビュー内に配置されているディメンション(都道府県や地域・年のフィルター)を考慮した上で、カテゴリごとの合計平均を出しているのに対して、
FIXEDはそれらを無視してます。

そのため、この2つには以下のような違いがあります。

左側のグラフ:AVG({INCLUDE [カテゴリ]: SUM([売上])})
→2018年の関西地方における都道府県別の「カテゴリごとの合計売上の平均」

右側のグラフ:AVG({FIXED [カテゴリ]: SUM([売上])})
→ただの「カテゴリごとの合計売上の平均」※フィルターはかかっていない

FIXEDはビュー内に配置されているディメンションでも、FIXED式内で宣言されていなければ基本的に無視します。
そのため、FIXED式で今回のフィルターを考慮した集計にしたい場合は、以下のように書く必要があります。
AVG ({FIXED [年(オーダー日)],[地域],[都道府県],[カテゴリ]: SUM([売上])})

実際に入れてみました。数字がINCLUDEと一致しますね。

つまり、既に配置されているビューを考慮して欲しいならINCLUDEを使い、
あえて考慮して欲しくないディメンションがあるならFIXEDを使用すれば良いのです。

そのため、今回のような用途ではINCLUDEを使うのをお勧めします。
(シンプルですしディメンションの宣言し忘れによる集計ミスも防げるためです)

以上がINCLUDEの説明になります。
次回はEXCLUDEについて説明します!

————-

エクスチュアは国内では希少なTableau Certified Professionalも在籍するTableauのパートナー企業です。
また、Google Cloud Platform、Adobe Marketing Cloudといったマーケティングテクノロジーに精通したスタッフが、
デジタルマーケティングからビッグデータ分析まで統合的にサポートします。

お問い合わせはこちらからどうぞ

ブログへの記事リクエストはこちらまで

ピックアップ記事

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

関連記事

  1. Tableau

    ツールヒントの中にVizを埋め込む理由・方法

    ツールヒントの中にVizを埋め込むとはこちらがツールヒントの中に埋め…

  2. Tableau

    Tableau Tips〜WINDOW関数〜

    はじめにこんにちは!インターンの與那覇(ヨナハ)ですこれから不定期…

  3. Tableau

    Tableau Tips〜データソースの置換〜

    はじめにこんにちは!インターンの與那覇(ヨナハ)です今回はTabl…

  4. Tableau

    Tableau:2つの値の比較に便利な「ダンベルチャート」を作る

    こんにちは、エクスチュア渡部です。今回は2つの値を比較するときに便…

  5. Tableau

    【TC19ブログ】セッション紹介:DataRobot×TableauでAIを民主化する

    こんにちは。エクスチュアインターン生の酒井です。11/12(火…

  6. Tableau

    最年少DATA Saberになって感じたこと〜Tableau〜

    【目次】・自己紹介・DATA Saberとは・DATA Sabe…

最近の記事

  1. 回帰分析はかく語りき Part3 ロジスティック回帰
  2. GCSへのSnowflake Open Catalogによる…
  3. VPC Service Controlsで「NO_MATCH…
  4. モダンデータスタックなワークフローオーケストレーションツール…
  5. Streamlit in Snowflakeによるダッシュボ…
  1. ヒートマップ

    MouseflowをAdobe Analyticsと一緒に使う
  2. Application Integration

    Google Cloud iPaaS 「Application Integrat…
  3. IT用語集

    DaaS / HaaS / IaaS / PaaS / SaaSって何?
  4. Tableau

    Tableau:KPI達成状況を把握出来るグラフを作る
  5. Python

    その分析、やり方あってる?記述統計と推測統計の違い
PAGE TOP