Tableauでよく使われる関数を紹介
今回は、Tableauでよく使われる関数を紹介しつつ、実際に使ってみようかと思います。
私は業務上Tableauに触れる機会が多いので、自分自身への備忘録も兼ねて紹介させていただきます。
例として、Tableauのスーパーストアの注文データを使いながら紹介していこうと思います。
↓↓
【基本的な関数】
・COUNT()、COUNTD()
上記2つは値の数をカウントする関数です。
2つの違いは、
COUNT()→値の数をカウントする
COUNTD()→ユニーク数をカウントする
の違いになります。
例えば、以下のようにスーパーストアの製品Idをカウントすると、
COUNT([製品 Id]) → 製品注文数
COUNTD([製品 Id]) → 製品数
このようになります。
COUNT()の方は注文された製品 Id の数、
COUNTD()の方は製品 Id の数が算出されました。
このように、COUNT関数を使って、新たに分析指標を作成することが可能です。
・ IF文とパラメータ
IF文は、エクセル関数でもあるように、
数値や文字列を変換する際に使用します。
構文は
IF (条件①) THEN (条件に合致した時に返す値①)
ELSEIF (条件②) THEN (条件に合致した時に返す値②)
ELSE それ以外
END
です。
例えば、注文データにはサブカテゴリという項目があります。
IF文を使うことで、このサブカテゴリのフィールド値を変換することが可能です。
以下のような計算フィールドを作ってみます。
サブカテゴリのテーブル、椅子、本棚を家具に変換します。
それ以外はそのままです。
すると、以下のようなフィールド値になります。
テーブル、椅子、本棚が家具に変換されました。
このように、項目を変換して新たな分析軸を作成することが可能です。
また、Tableauの機能「パラメータ」と組み合わせることで、
メジャーの切り替え機能を実装することも可能です。
まず、新しいパラメータを作成してみます。
次に、上で作成したパラメータとIF文を組み合わせた計算式を作成します。
メジャー切り替えが1の時は売上、2の時は利益、3の時は数量を表示させる計算フィールドです。
新たに作った関数でグラフを作成し、パラメータを表示させます。
現在、メジャー切り替えが売上に設定されていますが、これを利益や数量に変更することによって、グラフのメジャー切り替えが可能になります。
・LOOKUP()
LOOKUP関数は、数値の前年や前々年数値、翌年や翌々年数値を
算出することができます。
これを用いることで、前年比などを求めることができるようになります。
構文は以下です。
LOOKUP(メジャー項目,-1)
※-1なら前年、-2なら前々年、1なら翌年、2なら翌々年
実際の売上データで使ってみます。
※-1なので前年値
作った計算フィールドでクロス表を作ると、
前年データを算出できました。
これを用いて、更に前年比を作成します。
前年比は、
前年比=今年の売上/前年の売上なので
これをグラフ化させると
前年比の推移をグラフ化させることができました。
また、実際の売上金額と並べて、
二重軸にさせます。
このように、実績と前年比の可視化を行うことができます。
【少し応用編】
ここからは少し難易度の高い関数を紹介していこうと思います。
・RUNNING_SUM()
表計算の関数です。
指定した表計算の方向にデータを足し上げる関数です。
累積と同じ意味です。
実際に使ってみます。
このように作成します。
右下に青文字で既定の表計算とありますが、
どの項目で累計を計算するかを設定できます。
自動となっているので、いったんこのままで作成します。
これで年別売上クロス表を作ってみると、
年の累計売上を作成することができました。
これに、更にカテゴリの項目を加えてみます。
この状態だと、カテゴリ累計でなく、年の累計になっているので、
設定を変更します。
累計の表計算を編集。
カテゴリにチェックを変更します。
オーダー日の年は外す。
カテゴリの累計に変更することができました。
このように、各ディメンションの累計値を算出できます。
他にも、
RUNNING_COUNT()、RUNNING_AVG()、RUNNING_MAX()、RUNNING_MIN()
など、似たような表計算関数があります。
実際に使ってみてみます。
RUNNING_COUNT()→データ個数の累積
RUNNING_AVG()→累積の平均を算出
RUNNING_MAX()→2022年が最大なのでわかりづらいですが、表内の最大値を返す
RUNNING_MIN()→2019年が最小なのでわかりづらいですが、表内の最大値を返す
・LOD表現(FIXED)
最後はLOD表現のFIXED関数を紹介しようと思います。
構文は以下。
{ FIXED ディメンション:メジャー項目}
指定したディメンションで集計したメジャー項目で値を固定することができる関数です。
実際に使ってみます。
カテゴリ別で売上金額集計値をFIXED(固定)します。
普通の売上とカテゴリ別で並べてみてみます。
カテゴリ別でみると数値に差分はないです。
では、更に地域項目を追加してみます。
普通の売上は地域別に更に細分化されましたが、
FIXED関数の方は、カテゴリ別の金額で固定されたままの数値が表示されています。
このように、特定のディメンション別で数値を固定させることができます。
(母数を算出して割合を求めたりするのに使ったりします。)
【終わりに】
今回は個人的によく業務で使用する関数を紹介させてもらいましたが、
Tableauにはまだ紹介しきれていないものや、私が使ったことない関数が数多くあります。
もっと勉強して、またの機会にそちらも紹介できればと思います。
ありがとうございました。
Tableau Desktopでオープンデータを分析してみる
前回の記事では、厚生労働省が公開しているコロナウィルス感染者のデータを元に、
データソースを作成してみました。
今回はそのデータソースを使って、Tabelau DeskTopで分析してみたいと思います。
【まずは全体感から】
作成したhyperファイルを開くとTableau Desktopが起動します。
初期画面はこのようになっています。↓↓
左側に使用できる項目や数値が表示されます。
【ディメンション】※分析軸項目
・Date(日付)
・都道府県
・地域
【メジャー】※指標
・新規陽性者数
・重症者数
・入院治療を要する者
・累計死亡者数
これらを組み合わせて分析していきます。
まずは単純に、年別の新規陽性者数をみてみたいと思います。
2020-2023年の4年分かつ、2023年は1/5までのデータしかないので、
経年変化のグラフとしては寂しいですが、
2022年の新規陽性者数が圧倒的に多いです。
他の指標も見比べてみようと思います。
新規陽性者数、入院治療を要する者が2022年にピークを迎えているのに対して、
重症者数は2021年にピークを迎え、2022年は減少している傾向にありました。
陽性者は増えてはいるものの、重症化数は抑えられているようです。
【新規感染者数と重症者数の比較】
また、新規感染者数と重症者数を年月別の二重軸で表してみました。
青色棒グラフ→新規陽性者数
オレンジ色折れ線グラフ→重症者数
(フィルタで年数を制御)
2020年
2021年
2022年
新規陽性者数の増減に伴い、重症者数も同様に変化していることがわかりますが
特定のタイミングで、数が大きく増加していることがわかりました。
→2020年12月、2021年5月、2021年8-9月、2022年2-3月、2022年8月
要因の断定はできませんが、緊急事態宣言などによる外出の制限、コロナウィルス変異株の傾向、ワクチン接種による影響などは関連していそうな気がします。
以下は参考までに、緊急事態宣言、まん延防止等重点措置の期間です。
緊急事態宣言
- 第一回:2020/4/7~5/25
- 第二回:2021/1/8~3/21
- 第三回:2021/4/25~6/20
- 第四回:2021/7/12~9/30
まん延防止等重点措置
- 2021/4/5~9/30
- 2022/1/9~3/21
月でみてみると以下になりました。
どの指標も8月にピークを迎えています。
(夏休みの帰省などによる外出の影響でしょうか)
【地域別の傾向】
地域別は以下の通りです。
新規陽性者数は関東圏が多いのに対し、
関西は重症者数が少し多い傾向にあるようです。
関西は重症者数が増えている傾向にあるのでしょうか。
地域別の推移をみてみました。
(凡例が多く、少し見づらい折れ線ですが、関西と他の地域の傾向比較のため、
いったんこのようなグラフにしました。)
傾向としては、地域による特徴などはみられませんが、関西の重症者数がかなり多い、
また、どこの地域も特定のタイミングで大きく増加しています。
→2020年12月、2021年5月、2021年8-9月、2022年2-3月、2022年8月
これは、前述の二重軸グラフと同じ理由になるかと思います。
各地域の新規陽性者数と重症者数の割合の推移もみてみます。
凡例
新規陽性者数推移
重症者数推移
新規陽性者数の割合については、
東京が2020年は24%、2021年は2022年が22%を占めていますが、
2022年は13%にまで減少しています。
それに対し、中部、四国、中国など、他の地方の割合が増加していっている傾向にあるようです。
重症者数についても、東京は割合が15%→11%→6%と、減少傾向にありました。
それに対し、こちらは33%→41%→53%と、大阪の増加が顕著な傾向にあるようです。
(2023年はサンプル数が少ないため、比較対象外としています)
【まとめ】
以下、ここまでの分析の中でわかったことです。
- 新規陽性者数、入院治療を要する者が2022年はピーク重症者数は2021年がピーク
- 8月は新規感染者数、入院治療を要する者、重症者数どれもピークになる
→夏休みやお盆休みの外出が影響? - 特定のタイミングで新規陽性者数、重症者数が大きく増加
→緊急事態宣言などによる外出の制限、コロナウィルス変異株の傾向、ワクチン接種による影響? - 関東圏は新規陽性者数が多く、関西は重症者数が多い傾向
- 東京は新規陽性者の割合が減少傾向、代わりに中部、四国、中国など他地域の割合が増加
- 重症者数も東京は減少傾向、大阪は増加傾向
各都道府県の施策等と紐づけ、さらに深堀していくことで傾向の要因などを分析することができそうです。
簡単ですが、今回の分析はここまでとさせていただきます。
もっとこういう分析もできるなど、ご意見いただけますと幸いです。
ありがとうございました。
Tableau Prepを使ってデータを加工してみる
Tableau Prepを使って分析用データソースを作成してみました。
今回は厚生労働省にて公開されているコロナウィルス関連のデータを使用します。
データのダウンロード→データの取り込み→データの加工
の流れでやっていきます。
【データのダウンロード】
www.mhlw.go.jp
上記リンクからデータをダウンロードし、
Tableau Prepに読み込ませます。
データの種類は以下の通り。
・日別新規陽性者推移(csvファイル)
・重症者数推移(csvファイル)
・入院治療に要する者等推移(csvファイル)
・累計死亡者数(csvファイル)
【データの取り込み】
Tableau Prepを開いて、ダウンロードしたデータを取り込んでみます。
Tableau Prepの初期画面はこのようになっています。↓↓
今回はcsv形式のファイルを取り込むので、テキストファイルを選択して、
ダウンロードしたファイルを取り込みます。
↓↓
ダウンロードした4ファイルを取り込めました。
取り込んだ4ファイルをTableau Prep上で加工して、1つのデータソースにしてみようと思います。
【データの加工】
まず、取り込んだファイルですが、それぞれ以下のような形式になっていました。↓↓
日別、地域別の新規感染者数等のデータになっていましたが、
地域が横持ちになっているため、項目が多すぎて分析に使いづらいデータになっています。
これを縦持ち形式に変換且つ、4つのデータを結合させる加工を行いたいので、
①データを縦持ちに変換
(項目を日付、地域、数値項目の3つにする)
※都道府県別数値を出すため、ALL項目は排除
②それぞれのデータを結合させて1つにする
の手順で進めていこうと思います。
手順①
まずは①の手順、縦持ちに変換をします。
Tableau Prepのピボット機能を使います。
都道府県項目をピボットされたフィールドに移動させて、
都道府県を項目化させます。↓↓
※ピボット1の名前という名前になってしまったので、わかりやすいように「都道府県」に変更します。
以上で縦持ち化は完了です。
他のファイルも同様の処理を行います。
※入院治療に要する者等推移は「入院治療が必要な人」の数値だけ使用します。
また、入院治療に要する者等推移の都道府県項目のみ「(Hokkaido) Requiring inpatient care」のような名称になっていたので、関数でトリミング処理をいれました。↓↓
※使用した関数は以下。
REPLACE(TRIM( SPLIT( [ピボット1 の名前], ")", 1 ) ),"(","")
ここまでで、①の手順完了です。
手順②
次は②それぞれのデータを結合させて1つにする、を実施していきます。
縦持ち化させたデータをドラッグ&ドロップさせ、データを結合させていきます。
新規陽性者数のデータを元に外部結合、結合キーは日付と都道府県に設定しました。
結合後、発生したダブり項目を削除すれば②の手順完了です。↓↓
以上で日付、都道府県別の縦持ちデータソースの完成です。
項目は以下の通り。↓↓
マスタの作成
ファイルを結合させてデータソースを作ってみましたが、
都道府県項目はそのまま使うと値が47種類もあり、
分析にはあまり向いていないと思ったので、都道府県マスタを作成して地域項目を追加してみようと思います。
ついでにローマ字の都道府県名称も修正します。
まず、以下のようなエクセルファイルを作成します。
名称は都道府県マスタ。↓↓
作成したエクセルファイルをprepに取り込み、
データソースに結合させます。
結合後は発生した不要項目を削除します。↓↓
これでデータソースの作成は完了です。
出力ボタンを押せば、hyperファイルとしてデータソースが出力されます。
※TableauServerへのパブリッシュもできますが、今回はhyperファイルとして出力しました。
項目は以下の通り↓↓
次回はこのデータソースを使って、実際に分析をしてみようかと思います。