今回は表計算関数の1つであるSIZE関数を紹介していこうと思う。
SIZE関数とは?
SIZE関数とは指定した表計算の計算範囲内の行数(列数)をカウントして表示してくれる表計算関数だ。
なかなか関数名だけでは理解しにくい(私は避けていた(笑))と思うので具体例を2つほど確認しながら整理しよう。
例えば、下記はサンプルスーパーストアのデータを使用して、顧客区分の売上を表示している表に、SIZE関数を追加している。
上図の通り、SIZE関数は指定した範囲内の行数をカウントしてその合計値を返す。
今回だと表計算の計算方向を表の下に設定したので、表の下に向かってSIZE関数は行数をカウントする。
今回表の上から下までの行数は3行なので、SIZE関数は3を返してくれる、というわけだ。
どうだろう?
具体例でみるとなんとなく「SIZE関数ってそういう関数か」とイメージがついてくるのではないだろうか?
もう1つ具体例を見ていけばよりイメージが出来るようになってくるはずだ。
下記は2022年の1月~12月の売上を表示した表にSIZE関数を追加した表だ。
先ほどの例と同じように表計算の計算の方向は表全体の上から下に向かって計算する設定にしている。
表全体は2022年1月~12月の全部で12行なので、SIZE関数はその合計の行数=12を返している。
このようにSIZE関数は指定した計算範囲内の行数の合計を返してくれる。
注意点としてはSIZE関数は行数をカウントしながらランキングのように1,2,3と順番に値を返すわけではなく、常に合計の行数を表示する点だ。
ここが同じ表計算関数であるFIRST関数やLAST関数と異なる点。
このSIZE関数を活用するためには表計算の計算の方向と計算範囲を理解しておく必要がある。
そもそも表計算とは通常の関数と違い、表やグラフで表示した値を基に計算する関数のことだ。
例えば、顧客区分ごとの売上を表示しているグラフの数値を基にして、各顧客区分の売上が全体の中でどれくらいの割合を占めているのか?ということを計算することが可能だ。
前年比を表示したり、表計算関数の1つであるRANK関数を使用してランキングを表示するなど、表計算を使いこなせるようになるとTableauで行えることが格段に増えてくる。
SIZE関数の行数(列数)は表計算の計算方向に対して計算される
SIZE関数の行数のカウントは表計算の計算の方向と対象の範囲によって数値が変わってくる。
例えば、下記のSIZE関数は表の横に向かって列数をカウントして、その列数の合計値を表示している。
一方、下記ではペイン(下)に向かって行数をカウントして、その合計値を表示している。
このようにSIZE関数は上図のように「次を使用して計算」で指定する計算の対象範囲(表/ペイン/セルなど)と方向(横/横から下へ/下など)に沿って計算される。
単純に表の上から下に向かって行数をカウントするだけではなく、設定によってさまざまな値を取得することが出来るのだ。
表計算の計算範囲と方向については下記記事に詳細をまとめているので是非参考にして欲しい。
SIZE関数の使い方
SIZE関数の使い方はINDEX関数と同様に非常にシンプルだ。
()の中に何か入りそうなものなのだが、何か入れたらエラーになる。
具体的に見てみよう。
下記のように計算フィールドを作成する。
そして、下記のようにその計算フィールドをマークカードのテキストや列シェルフ等に追加して、表計算の範囲と方向を決めればOKだ。
表計算関数は必ず表計算の計算範囲と方向に意識を払う必要があるので、計算フィールドを作成して終わりではない点は覚えておくとよいと思う。
SIZE関数の活用シーン
SIZE関数の活用シーンとしては例えば下記が挙げられる。
- パラメーターで選択したトップN以外を「その他」表示にした際の並び替えの調整(RANK関数とSIZE関数を組み合わせる)
- 総計の表示は必ず行数や列数が1になることを利用して、IF関数での出し分けをする
2のSIZE関数による総計表示とそれ以外の出し分けは総計の行数(列数)が1になるという特性を利用する。
下記では、この総計は必ず行数(列数が1)になるという特性を利用して、IF関数で総計の場合(SIZE関数が1以下)は売上を表示し、それ以外(つまりSIZE関数が1より大きい)は合計に対する売上割合を表示している。
このように一見使い道が難しそうなSIZE関数だが、一度応用方法を覚えてしまえば、色々な活用方法が思いついてくるはずだ。
まとめ
今回は表計算関数の1つであるSIZE関数を解説した。
SIZE関数に限らず、表計算関数は表計算の計算範囲と方向をどう指定するかによって数値が全然変わってくるので、その点は強く意識して活用してもらえると良いと思う。
他のTableau関数は下記でまとめているので是非選考にして欲しい。