TableauにおけるCOUNT
関数とCOUNTD
関数は、レコード件数の集計に使われる基本関数です。その違いは「重複を数えるかどうか」。
COUNT
:重複を含めてカウントCOUNTD
:重複を除外してユニークな件数だけカウント
目次
COUNT・COUNTD関数とは?
COUNT関数の書式
COUNT([フィールド])
→ null以外のレコード件数をカウントします。
COUNTD関数の書式
COUNTD([フィールド])
→ null以外かつ重複しない値の件数をカウントします。
シンプルな使い方例
COUNT([カテゴリ]) // 全カテゴリの数
COUNTD([カテゴリ]) // ユニークなカテゴリの数
通常、これだけで使うことは稀で、IF関数などと組み合わせて条件付きで使うケースが大半です。
COUNTIFのように使うには?
TableauにはCOUNTIF
関数はありませんが、IF
を内包することで再現可能です。
例:コピー機を購入した顧客数
COUNT(IF [サブカテゴリ] = "コピー機" THEN [顧客名] END)
重複を除きたい場合(ユニーク顧客数)
COUNTD(IF [サブカテゴリ] = "コピー機" THEN [顧客名] END)
COUNTIFSのように複数条件を使う
複数の条件をAND / ORで組み合わせれば、COUNTIFS
のような表現も可能です。
COUNT(IF [サブカテゴリ] = "コピー機" AND [地域] = "関東" THEN [顧客名] END)
COUNTD(IF [カテゴリ] = "テクノロジー" OR [売上] > 1000 THEN [顧客ID] END)
よくある応用パターン
1. NULLを除いた件数を取得したい
COUNT([フィールド]) // 自動的にNULLはカウントしません
2. 特定の条件を満たすレコード件数を取得したい
COUNT(IF [売上] > 500 THEN [注文ID] END)
3. フラグ的な値を使って件数を制御したい
IF [売上] > 1000 THEN 1 ELSE 0 END
→ これをSUMすれば、該当件数が取れる(COUNTと同じ)
4. 別フィールドでユニークカウントしたい(顧客ベースの分析など)
COUNTD(IF [カテゴリ] = "オフィス用品" THEN [顧客名] END)
5. 否定条件のカウント
COUNT(IF NOT [状態] = "キャンセル" THEN [注文ID] END)
よくある間違いと注意点
COUNTD([数値])
でも文字列でも使えるが、NULLはカウントされない- IF関数と一緒に使うと、ELSEを省略した場合はNULLが返る → カウントに含まれなくなる
- フィルターと組み合わせるとき、計算フィールド内と外で結果が変わるので注意
ユースケース
1. 購入者数(ユニークな顧客ID数)
COUNTD([顧客ID])
2. 商品カテゴリ別の購入件数(重複あり)
COUNT([注文ID])
3. 特定条件に一致する行だけのカウント
COUNT(IF [ステータス] = "完了" THEN [注文ID] END)
4. 異常値の検出件数(売上0件など)
COUNT(IF [売上] = 0 THEN [商品名] END)
5. 顧客単位での購買頻度分析
COUNTD([注文ID]) // 集計軸に顧客名を置くと、顧客ごとの注文回数がわかる
まとめ
COUNT
とCOUNTD
は、Tableauの集計処理の中でも頻出する関数です。
COUNT
:単純な件数(NULL以外)COUNTD
:ユニーク件数(重複なし)IF
との組み合わせでCOUNTIF
的な使い方が可能
Tableauでレコード数や人数、商品数などを集計する場合は必ずといっていいほど使う関数です。条件付き集計、複数条件、否定条件、NULL対応まで含めて、柔軟に活用しましょう。
Comment