「ExcelのCOUNTIFみたいな関数が使いたい!」
「とも思ったけどもしかしてない…?」
ExcelでCOUNTIFやCOUNTIFSってかなり使いますよね。
それがTableauだと同等のものが見つからないわけです><
安心して同じようなことはできるよ!
今回は、Tableau関数を使ったCOUNTIFやCOUNTIFSの表現方法を解説するとともに、
具体的なコードを説明させていただきます!
どんな風に書けばいい??
TableauにCOUNTIFと同等の関数はありません。
※COUNTやCOUNTD(重複なしのカウント)というものがあります。
なので関数を組み合わせて計算フィールドを作っていきましょう。
COUNTIFを計算フィールドで実装
Excelだと
=COUNTIF(範囲, 検索条件)です。
これを計算フィールドに置き換えると
SUM(
IF 条件
THEN 1
ELSE 0
END
)
なにが起きているかというと
- 数える条件をIFの後に入れる(例:[都道府県] = “東京都”)
- 条件に満たす場合は1
- 満たさない場合は0
- 後は1であった数を合計する
- 実質COUNTIFと同じになる
こういうわけです。
IFの使い方↓から。
実際にやってみた
下記サイトe-Statより日本の人口データを使います。
https://www.e-stat.go.jp/regional-statistics/ssdsview
※総務省統計局が整備し、独立行政法人統計センターが運用管理しているようです。
都道府県別、山という文字が入る市の数データを作ります。
コードは
SUM(
IF CONTAINS([市町村],"山")
THEN 1
ELSE 0
END
)
結果↓
こんな感じです。
COUNTIFSを計算フィールドで実装
COUNTIFに条件を追加していくだけです。
SUM(
IF 条件
AND 条件
AND 条件
THEN 1
ELSE 0
END
)
この辺はもうIFの世界なので、自由に条件を付けていいと思います。
ORでもNOTでもELSEIFでもOKです。
慣れたらCOUNTIFSより便利です。
【番外編】FIXEDを使う
常に都道府県単位で、人口が200000以上ある市町村数を計算したいときは
{
FIXED [調査年],[都道府県]:SUM
(
IF [人口] >= 200000
THEN 1
ELSE 0
END
)
}
このようになります。
市町村でフィルタしたとしても、常にこの項目は人口200000以上の市の都道府県別総数を算出します。
まとめ
- COUNTIFという関数はない
- だけどIFとSUMを使うことで同様の効果を持たせられる
- ANDやOR、ELSEIFで条件を追加できる
コメント