はじめに
顧客データを使用して一番人数の多い年齢を表示する等、Tableauで最頻値を計算したい場合があると思います。
合計・平均・最大値等はTableauのデフォルトの集計機能で計算ができますが、最頻値の計算はできませんのでTableauで実装する方法をご紹介いたします。
今回紹介する方法では表計算・FIXEDを使用しないため、フィルター・ビューの形式等への配慮があまり必要ない点で有用です。
使用するデータソース
目的
人数が最も多い年齢を表示する計算フィールドを作成
ディメンションを配置すると、その値ごとに最も人数の多い年齢を表示
実装
「最多年齢」フィールドを作成
{ INCLUDE [年齢]:
IF COUNTD([顧客No]) = MAX(
{ EXCLUDE [年齢]: MAX(
{ INCLUDE [年齢]: COUNTD([顧客No]) }
)}
)THEN MAX([年齢]) END
}
3~5行目
INCLUDEを用いて年齢ごとの人数をカウントした後、その中で最大値を計算しています。
※3行目のEXLCUDEは1行目のINCLUDEを打ち消すために使用しています。
3 { EXCLUDE [年齢]: MAX(
4 { INCLUDE [年齢]: COUNTD([顧客No]) }
5 )}
1~7行目
年齢ごとに人数をカウントし、その値と3~5行目で計算した値を比較しています。
値が一致すればその年齢が最も人数の多い年齢であるとわかるため、[年齢]を返します。
1 { INCLUDE [年齢]:
2 IF COUNTD([顧客No]) = MAX(
3~5 年齢ごとの人数の最大値
6 )THEN MAX([年齢]) END
7 }
終わりに
[年齢]を他のフィールドと入れ替えれば年齢以外でも活用できます。
ご活用いただければ幸いです。