【Tableau関数】FIXED関数の使い方をわかりやすく解説!

今回はLOD表現と呼ばれるFIXED関数を解説します。
ややこしい雰囲気ありますが、意外とシンプルなのでご安心ください。

目次

FIXED関数とは?

FIXED関数には2つの機能があります。

  1. 粒度を指定する
  2. 上記でした粒度で集計する

これだけです。

LOD表現とは?

FIXED関数はLOD表現、もしくはLOD関数と呼ばれています。
このLODとは「Level of Detail」の頭文字を取ったものです。

日本語的に言えば”粒度“の詳細でしょうか。
もっとわかりにくいですね。

同じだけど見え方が違う

下記テーブル(表)をみてください。

顧客名カテゴリサブカテゴリ
山田家具椅子
田中家電コピー機
田中家電電話機
石田事務用品クリップ

よくあるテーブルです。
少し見方を変えてみましょう。

顧客名カテゴリ購入数
山田家電1
田中家電2
石田事務用品1

田中の1行が減りました。
しかし、中身は一緒ですよね。
もう1つ見てみましょう。

顧客名サブカテゴリ購入数
山田椅子1
田中コピー機1
田中電話機1
石田クリップ1

田中の1行がまた戻りました。
中身は一緒です。

これが”粒度“です。
田中-家電は2ですが、田中-コピー機は1です。
カテゴリはサブカテゴリよりも守備範囲が広い、つまりカテゴリの粒はサブカテゴリと比較すると大きいと表現できます。
より日本語的に言えば”粗い“と表現できます。

粒度を指定して計算したい

田中は家電をいくつ買ったのかしりたい

↑みたいな要望が来たらどうしますか?
おそらくIF関数で条件を設定して計算しますよね。
もしくはフィルターで田中と家電に絞ります。

顧客名とサブカテゴリが表示された表内で田中が家電をいくつ買ったのかみたい

↑でしたらいかがでしょうか?
IF関数だとちょっと難しいですよね。
実際のテーブルにして考えてみると

顧客名サブカテゴリカテゴリ別購入数
山田椅子1
田中コピー機2
田中電話機2
石田クリップ1

こんなのどうやったら、、、、

前置きが長くなりましたが、これがFIXED関数なら簡単にできるってことです。

FIXED関数の書式

FIXED関数の書式
{FIXED([指定項目],[指定項目…..] : 集計式}

先ほどの例を計算式にしてみます。

{ 
FIXED [顧客名],[カテゴリ]:
        COUNT([カテゴリ])
}

[顧客名],[カテゴリ]だけを抽出して、カテゴリの個数を数えています。

FIXEDは粒度が細かくなるほど意味がある

{ 
FIXED :
 COUNT([サブカテゴリ])
}

↑だと常にサブカテゴリ総数が算出されます。

{ 
FIXED [カテゴリ] :
COUNT([サブカテゴリ])
}

↑だカテゴリ別のサブカテゴリ数が算出されます。

{ 
FIXED [サブカテゴリ] :
 COUNT([サブカテゴリ])
}

↑だとサブカテゴリ別のサブカテゴリ数が算出されます。

粒度を並べると

  1. 全体
  2. カテゴリ
  3. サブカテゴリ

サブカテゴリが一番細かい粒度となります。
ではサブカテゴリ別で並べてみましょう。

次にカテゴリ別

最後は全体で

粒度が粗くなるにつれて、値が内包されていっています。

ディメンションフィルターやメジャーフィルターより優先される

FIXED関数はディメンションフィルターやメジャーフィルターより優先されます。

よく参考書に書いてあります。
どういうことを言っているかというと

顧客名サブカテゴリカテゴリ別購入数
山田椅子1
田中コピー機2
田中電話機2
石田クリップ1

↑の表でサブカテゴリのコピー機をフィルターで除外しても、カテゴリ別購入数は変わらないということです。

顧客名サブカテゴリカテゴリ別購入数
山田椅子1
田中電話機2
石田クリップ1

ただし、カテゴリの家電をフィルターで除外したら変わります。
というか、その行がなくなります。

顧客名サブカテゴリカテゴリ別購入数
山田椅子1
石田クリップ1

見えないけど、どこかで2を計算してくれてはいます。

おわり

もっと良い使い方、おかしい点、アドバイスなどあれば気軽にコメントください!

福井AI/データサイエンス協会

読んでくれてありがとうございます!!

Comment

コメントする

目次