TOP
  1. TOP
  2. Tableau
  3. Tableau – LOD計算(FIXED, INCLUDE,EXCLUDE)の使い方

Tableau – LOD計算(FIXED, INCLUDE,EXCLUDE)の使い方

今回は、Tableauを使いこなす上で欠かせない「LOD計算」について、具体例も交えながら解説したいと思います。

LODとは

LODとは、「Level of Detail」の略になります。Tableauのオンラインヘルプでは「詳細レベル」と訳されています。

つまり、「どのくらいの詳細な粒度(レベル)でメジャーが集計されているか」を示すものです。通常は、ビューの状態によって自動的に詳細レベルは決定されます。例えば、「カテゴリ別」の「売上」を表示している状態であれば、詳細レベルは「カテゴリ」ですし、その状態でさらに「色」に「サブカテゴリ」を設定すれば、詳細レベルは「サブカテゴリ」になります。もっとも細かいLODごとに、メジャーである「売上」が集計されるということです。

LODの決まる場所

bizのLODは、以下のようにビュー上の「列」「行」「マークカード」「ページ」にディメンションを入れることで決定されます。

LOD計算とは

上記の通り、通常はビューの状態によって自動的にLODが決定され、その粒度でメジャーが集計されることになります。これに対して、LOD = 詳細レベルを計算(関数)で明示的に指定することができるのがLOD計算です。

つまり、「ビューのLODと異なるLODで集計計算をおこない、その結果をビューの中に表示したい」という時に、LOD計算を使うことになります。

それでは、具体例を用いながら実際に見ていきましょう。

LOD計算の種類

LOD計算は全部で3種類あります。

  • FIXED関数
  • INCLUDE関数
  • EXCLUDE関数

この中で一番利用頻度が高いのはFIXEDではないかと思います。順番に使い方を見ていきましょう。

FIXED

FIXEDは、文字通りLODを指定したディメンションに固定するものです。ビューの中で使われているディメンションと関係なく、指定したディメンションでメジャーを集計します。

{FIXED ディメンション1, ディメンション2,・・・: 集計関数(SUM(), AVG()など)}

使用例) 都道府県レベルの売上

列に「売上」、行に「都道府県」「市区町村」を配置します。わかりやすいようにマークラベルの表示をしておきます。
ビューのLOD(詳細レベル)は「市区町村」ですので、売上も市区町村単位で集計されています。

続いてFIXED関数を作成します。以下の通り計算フィールドを作成します。

{ FIXED [都道府県] : SUM([売上]) }

作成した計算フィールドを「列」に配置します。
図のように、市区町村レベルのLODのビューの中に、異なるLOD(都道府県)で集計された売上を表示することができます。

さらに、もう一工夫してみましょう。
市区町村レベルの売上を都道府県レベルの売上で割ることで、都道府県全体の中でのそれぞれの市区町村の売上の割合を出すことができます。

SUM([売上]) / ATTR({ FIXED [都道府県] : SUM([売上]) })

「規定のプロパティ」から、書式をパーセントに変更します。

作成した計算フィールドを「列」に追加します。

図のように、都道府県ごとの売上に対する各市区町村の売上の割合を表示することができました。

使用例) 顧客ごとの初回購入日(コホート分析)

続いて、「コホート分析」と呼ばれるチャートを作成してみます。
まずはベースとして年ごとの売上推移を棒グラフにします。

この状態では、vizの詳細レベルは「オーダー日(年)」です。
ここに、「顧客ごとの初回購入日(年)」を追加するために、FIXED関数を使います。
以下の通り計算フィールドを作成します。

{ FIXED [顧客 Id] : MIN([オーダー日]) }

作成した計算フィールドをマークの「色」と「ラベル」に配置します。

オーダー年ごとの売上を、vizの詳細レベルとは異なる「顧客ごとの初回購入日」で色分けすることができました。

使用例) 購入回数別の顧客数

FIXED関数の例としてもう一つ、顧客ごとの購入回数をFIXED関数で計算し、人数のヒストグラムにしてみます。
まずは計算フィールドで「顧客ごとの購入回数」を作成します。

{ FIXED [顧客 Id] : COUNTD([オーダー Id]) }

作成した計算フィールドを、メジャーからディメンションにドラックアンドドロップで移動します(購入回数を不連続のディメンションとして利用するため)。

作成した計算フィールド「顧客ごとの購入回数」を「列」に、「顧客id」を右クリック(macはoptionキー)しながら「行」に配置します。

「個別のカウント(顧客id)」を選択します。

顧客ごとの購入回数のヒストグラムが描けました。
購入回数6回の顧客が141名と最も多く、山型の分布を描いていることがわかります。

INCLUDE

続いてINCLUDE関数です。
INCLUDEは、 ビューのLODに、LOD計算の中で指定したディメンションを加えて、ビューのLODよりも詳細な粒度で計算するものです。

書き方自体はFIXEDと同じです。

{INCLUDE ディメンション1, ディメンション2,・・・: 集計関数(SUM(), AVG()など)}

使用例を見てみましょう。

使用例) 全体平均をオーダーID単位の平均にする

以下は、顧客区分ごとの売上です。
「地域」「都道府県」を列に、「売上」を行に配置します。売上は合計ではなく平均に変更してください。ラベルも表示しておきます。

この状態では、ビューのLODCは「都道府県」ですので、都道府県ごとに売上を平均しています。この時、単純な売上平均ではなく、「オーダー単位」の売上平均にしたい場合はどうすれば良いでしょう。

このようなケースでは、INCLUDE関数を使うことで、ビューにオーダーIDを追加せずに「オーダーID」ごとの売上平均を計算することができます。

{ INCLUDE [オーダー Id] : SUM([売上]) }

作成した計算フィールドを行に追加し、右クリックで集計をメジャーを「平均」に変更します。

いかがですか。「オーダーID」単位の売上平均を表示することができました。

なお、INCLUDEと同じことはFIXEDでも実現できます。今回のケースで言えば、

{ FIXED [地域],[都道府県],[オーダー Id] : SUM([売上]) }

とすれば同じ結果が得られます。

FIXEDとINCLUDEと使い分けは、「viz上のディメンションを活かしたいか否か」と考えれば良いでしょう。
FIXEDでは完全に詳細レベルが固定しますが、INCLUDEは、あくまでもビューのディメンション(詳細レベル)は活かしたうえで、LODを追加する形です。ビューのディメンションは活かしたいけど、売上の集計は常に「注文(オーダー)単位」にしたい、というようなケースでは、INCLUDE関数が使えます。

例えば、先程のvizの行から「都道府県」を削除してみましょう。

この状態では、ビューのLODに合わせて、「地域ごと」に「オーダーID」単位の売上平均を表示することができます。

EXCLUDE

最後にEXCLUDE関数を解説します。
EXCLUDEはINCLUDEの逆であり、 VizのLODからLOD計算の中で指定したディメンションを除外し、Vizよりも粗い粒度で計算するものです。

{ EXCLUDE ディメンション1, ディメンション2,・・・: 集計関数(SUM(), AVG()など)}

使用例) ビューのLODから「サブカテゴリ」を除外する

例えば、以下のように「カテゴリ」「サブカテゴリ」別の売上を表示しているとします。

ここから、「サブカテゴリ」を除いた「カテゴリ」単位で売上を集計したい場合には、EXCLUDE関数を使います。

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

作成した計算フィールドを行に追加します。

ビューのLODから「サブカテゴリ」が除外され、「カテゴリ」単位で売上が集計されているのがわかります。

クイックLOD

ちなみに、2021.1のバージョンアップにより、今までよりも簡単にFIXED関数を作成できるようになりました。 
方法は2種類あります。

1.ディメンションを右クリック

1つ目の方法は、LOD計算に使いたいメジャーとディメンションを選択した状態で、右クリックから「作成」>「LOD計算」を選択します。

すると、自動的にFIXED計算式が組まれた状態の計算フィールドが表示されます。

2.メジャーをディメンションにドラッグ&ドロップ

もう一つの方法が、LOD計算に使いたいメジャーを、Controlキー(macはCommandキー)を押しながらディメンションの上にドラッグ&ドロップする方法です。

「売上」メジャーを「都道府県」ディメンションの上にドラッグ&ドロップしてみます。

自動的に計算フィールドが作成されます。編集から中身を確認すると、以下のようにFIXED関数が作成されていることが確認できます。

いかがでしたか。

LOD計算は、Tableauを使いこなして目的の集計や分析を行ううえで欠かせない機能になります。

以下はtableauの公式ヘルプです。こちらも参考にしてみてくださいね。