「ExcelのSUMIFみたいな関数が使いたい!」
「SUMはあるけどSUMIFは…?」
TableauにはSUMIFがないなんて言われますがそんなことありません。
組み合わせ次第で何でもできます!
ごり子
同等の関数がなくても大丈夫!
今回は、Tableau関数を使ったSUMIFやSUMIFSの表現方法を解説するとともに
具体的なコードを説明させていただきます!
目次
どんな風に書けばいい??
TableauにSUMIFと同等の関数はありません。
※もちろんSUMはあります。
なので関数を組み合わせて計算フィールドを作っていきましょう。
SUMIFを計算フィールドで実装
Excelだと
=SUMIF(範囲,検索条件,合計範囲)です。
これを計算フィールドに置き換えると
SUM(
IF 条件
THEN [集計項目]
ELSE 0
END
)
なにが起きているかというと
- 数える条件をIFの後に入れる(例:[都道府県] = “東京都”)
- 条件に満たす場合は集計項目=メジャー(例えば人口データなど)
- 満たさない場合は0
- 後は値を合計する
- 実質SUMIFと同じになる
こういうわけです。
IFの使い方↓から。
【Tableau入門】IF文の使い方をわかりやすく解説!
「TableauでIFがつかいけどよくわからない」「Thenってなに…?」 Tableau利用者の多くがExcelユーザーであるせいで、IF文は非常に使いづらいものになっています。Excel…
具体的に使ってみる
“山”と入る市町村の人口合計を出します。
下記サイトe-Statより日本の人口データを使います。
https://www.e-stat.go.jp/regional-statistics/ssdsview
※総務省統計局が整備し、独立行政法人統計センターが運用管理しているようです。
まずはコード
SUM(
IF CONTAINS([市町村],"山")
THEN [人口]
ELSE 0
END
)
↓のようになります。
【Tableau関数】CONTAINSの使い方をわかりやすく解説!含むで判定ができる! | 福井AI/データサイエンス協…
今回はCONTAINS関数を解説します。指定値が特定の値が含まれているかの真偽を返してくれます。 ワイルドカードのように使える CONTAINS(“文字”, “含む文字”) ↑のように入力…
SUMIFSを計算フィールドで実装
SUMIFに条件を追加していくだけです。
SUM(
IF 条件
AND 条件
AND 条件
THEN [集計項目]
ELSE 0
END
)
この辺はもうIFの世界なので、自由に条件を付けていいと思います。
ORでもNOTでもELSEIFでもOKです。
慣れたらCOUNTIFSより便利です。
【番外編】FIXEDを使う
常に山と入る市町村の都道府県別人口数が見たい時は
{
FIXED [調査年],[都道府県]:SUM
(
IF CONTAINS([市町村],"山")
THEN [人口]
ELSE 0
END
)
}
このようになります。
これで市町村でフィルタしたとしても、常にこの項目は都道府県別の人口を算出します。
【Tableau入門⑧】FIXEDの使い方をわかりやすく解説!
「FIXED関数ての使い道がわからない‥」「いつどうやって使うの?」 Tableauの便利関数FIXEDですが意外と使われていません。それもこれもイメージが付きにくいその機能が…
まとめ
- COUNTIFという関数はない
- だけどIFとSUMを使うことで同様の効果を持たせられる
- ANDやOR、ELSEIFで条件を追加できる
著:小野泰輔, 著:清水隆介, 著:前田周輝, 著:三好淳一, 著:山口将央
¥2,376 (2021/12/11 12:35時点 | Amazon調べ)
コメント
コメント一覧 (3件)
とても参考になりました。
最近、会社でTableauを利用することになり、テクニカル分析をすることになったのですが、RSIのTableu版を作成しようとしたところ、sumif関数がなく困っていました。
例えば、過去14日間で、その日の値がプラスとマイナスとなるものを、プラスの合計、マイナスの合計をそれぞれ合計することはできますでしょうか?
ExcleのSUMIF関数をとOFSET関数を利用すればできるのですが、なかなか苦戦しております・・
(イメージ)
SUMIF(OFFSET($I18,0,0,-14),”>0″,OFFSET($I18,0,0,-14)))
みたいなイメージですが、実現できたりしますでしょうか?
有識者の方のアドバイスをいただきたく、お手数ですが、ご教授願います。
参考サイト(やりたいこと)
https://trader-knowledge.site/rsi-keisann/
助けていただきたく・・・・
すみません、、、
コメント見逃していました。
質問ありがとうございます!
↓でどうでしょうか?
(
SUM(
IF [日付] > DATEADD(“day”,-14,TODAY())
THEN [上げ幅]
ELSE 0
END)
/
(
SUM(
IF [日付] > DATEADD(“day”,-14,TODAY())
THEN [下げ幅]
ELSE 0
END)
+
SUM(
IF [日付] > DATEADD(“day”,-14,TODAY())
THEN [上げ幅]
ELSE 0
END)
)
)
*100
Hey, I think your sikte might be having browser compatibility issues.
Whhen I look at your webwite iin Firefox, it looks fine but wen opening in Internet Explorer, it has some
overlapping. I just wanted to give yyou a quick heads up! Other then that, excellent blog!
Take a look at my blog … https://Telegra.ph/Na-chto-nuzhno-smotret-chtoby-vybrat-onlajn-kazino-v-kotorom-budet-komfortno-igrat-12-22