「FIXED関数ての使い道がわからない‥」
「いつどうやって使うの?」
Tableauの便利関数FIXEDですが意外と使われていません。
それもこれもイメージが付きにくいその機能が原因です。
わかってしまえば超簡単だよ!
今回は、FIXED関数の利用方法を解説するとともに
具体的なコードを説明させていただきます!
FIXEDとは?
Tableauの関数で計算フィールドで使います。
和訳すると「固定した」という意味があります。
フィルターを無視できるなんて説明されることが多いです。
ざっくりいうと
見かけとは別に目線を固定して計算する
使い方は
{FIXED [ディメンション]:集計式}
具体的に使ってみる
名前に”山”と入る市町村の人口合計を出します。
下記サイトe-Statより日本の人口データを使います。
https://www.e-stat.go.jp/regional-statistics/ssdsview
※総務省統計局が整備し、独立行政法人統計センターが運用管理しているようです。
まずは2つのコード見てください
名前に”山”が入る市町村
{
FIXED [都道府県]:SUM
(
IF CONTAINS([市町村],"山")
THEN [人口]
ELSE 0
END
)
}
山が入る市町村2
{
FIXED [調査年],[都道府県]:SUM
(
IF CONTAINS([市町村],"山")
THEN [人口]
ELSE 0
END
)
}
愛知県でフィルターをかけています。
2つのコードの違いはFIXEDの中だけです。
しかし数値は1,906,015と212,260で8倍ぐらいの差があります。
さらに言えば山の入る市の人口なのに、山が付いていない市の欄にも数値が入っています。
なぜでしょうか?
どの目線で考えるかで数値が変わる
FIXEDがなかった場合を考えてみましょう。
市町村に”山”が入っていれば[人口]を表示、なければ0なので
一番上のあま市の値は0になるはずです。
しかしFIXEDをつけることによって目線が変わっているため、値が入っているわけです。
[調査年],[都道府県]であれば年代と都道府県目線
つまり、愛知県のなかにある細かい区分け全部の合計で見ているわけです。
今回は市町村が中に入っているので、その分すべて合計が見えているわけです。
今回でいうと
1980年
犬山市 64614人
守山区 133953人
豊山町 13693人
合計 212260人
FIXED [都道府県]が約8倍になるのは
年代のパターンが8個あり、それをすべて合計しているからです。
都道府県のみの目線だと、その中には1980年代の犬山市と1985年代の犬山市と同じ市だけど年代が違うという重複が生まれているのです。
いつ使うのか??
重複したデータがあるときに非常に便利です。
例えば営業データです。
担当者 | 相手先 | 契約商品 | 日付 | 勤務時間 |
---|---|---|---|---|
田中 | 山田商事 | カップ麺 | 2021/10/01 | 8 |
田中 | 鈴木工業 | カップそば | 2021/10/01 | 8 |
田中 | 鈴木工業 | カップそば | 2021/10/02 | 8 |
こんなデータがあったとします。
契約数÷勤務時間で1時間あたりの生産性を出せと言われた時、↑データだと非常に困ります。
そんな時は
{FIXED [担当者],[日付]:COUNT([契約商品])}
/
{FIXED [担当者],[日付]:MAX([勤務時間])}
これでOKです。
担当者と日付を固定して計算しています。
確かにフィルターの影響は受けないけど
Fixedで一番間違えやすいのはデータペインの影響です。
別のテーブル(表)を作って、そっちを見に行くからフィルターの影響を受けない。
↑のように説明されていることがよくあります。
これはある意味正しいですが、フィルターの影響を受けないからと言ってデータペインの影響を受けないわけではないです。
例えば、県と市町村でFixedしたとしても、そのシートの行に県を入れたら件目線の市町村にしかなりません。
県と市町村は粒度として残ってますからね。
あとフィルターから完全にはじかれているわけでもない
あくまで、別途のテーブルを作ってると言うだけで、フィルターをはじいているわけじゃないです。
県と市町村でFixedしたなら当然、県と市町村のフィルターの影響は受けます。
さらにほかの項目をフィルタした結果、県と市町村が影響を受けるのなら当然、Fixed計算フィールドの値も影響されます。
まとめ
- FIXEDは条件を固定する
- フィルタしても関係ない
- とっても便利
次回はEXCLUDEとINCLUDEについて解説します。
コメント