【計算フィールド】Tableauで複数列に対して重複排除する

やりたいこと

以下のような、ユーザーが商品を購入した日が格納されたデータがあります。

user date
A 7/1
A 7/2
A 7/2
A 7/4
B 6/10
B 6/11
B 6/11

ユーザーが購入したユニークな日をカウントしたいですが、
Tableauではどのようにすればよろしいでしょうか?

SQLを利用する場合

SQLを用いて集計する際には、GROUP BYを用いて、

SELECT
    user,
    COUNT(DISTINCT date) as day_cnt
FROM
    table
GROUP BY
    user

このように記載すれば、ユーザー毎にユニークの日付をカウントすることができます。

SQLの集計結果のイメージとして、

user day_cnt
A 3
B 2

こういった形で集計結果を得ることができます。

Tableauを利用する場合

さて、SQLの集計と同じ結果をTableauでも算出するためには、
計算フィールドを利用する必要があります。

単一カラムのみであれば、COUNTD()を用いることができますが、
今回は、userdateの複数列が対象となります。

このケースでは、TableauのLOD表現を利用しましょう。

  • 手順①:「分析 > 計算フィールドの作成 」を選択

f:id:gotto50105010:20190217004831p:plain

  • 手順②:計算フィールドに計算式を入力

計算フィールド
{ FIXED [user],[date]:COUNTD(date)}

f:id:gotto50105010:20190217004826p:plain

たった、これだけの手順で計算することができました。
意外に簡単ですよね。

今回のように計算フィールドを用いてあげると、
処理を行える幅が非常に広がるのでぜひ使っていきましょう。

また、Tableauに関しては参考となる書籍がたくさんあるため、
それらの書籍を読みながら実際に触ってみることをお勧めします。

参考書籍

Tableauデータ分析 ~実践から活用まで~

Tableauデータ分析 ~実践から活用まで~

Tableauデータ分析~入門から実践まで~

Tableauデータ分析~入門から実践まで~