今回はなかなか理解が難しいTableauにおけるWINDOW_SUM関数を紹介していく。
非常に便利な関数なのだが、WINDOW関数特有の指定の仕方を理解しないとなかなかわかりにくい。
そのため、本記事ではなるべく具体例を交えながら説明していく。
Contents
WINDOW_SUM関数とは
WINDOW_SUM関数とは指定された範囲(開始、終了)にある値の合計値を返してくれる表計算関数の1つだ。
範囲を指定し、その範囲内の値を計算することが出来るのがWINDOW関数(WINDOW_SUMやWINDOW_AVGなど)の大きな特徴だ。
実務においては経営ダッシュボードでLTM(last twelve months)=「直近12か月間の売上合計」を表示する場合に私はこのWINDOW_SUM関数を使った経験がある。
WINDOW_SUM関数がどのような処理をするのかを下記の年月別売上数量データを例に見ていこう。
日付 | 売上数量 |
2022/1 | 10 |
2022/2 | 5 |
2022/3 | 6 |
2022/4 | 10 |
2022/5 | 7 |
2022/6 | 10 |
2022/7 | 8 |
2022/8 | 7 |
2022/9 | 8 |
2022/10 | 9 |
2022/11 | 10 |
2022/12 | 11 |
2023/1 | 12 |
2023/2 | 10 |
2023/3 | 8 |
2023/4 | 9 |
2023/5 | 5 |
2023/6 | 4 |
2023/7 | 5 |
この年月別の売上数量をWINDOW_SUM関数を使用して過去3ヶ月間の売上数量の合計値を表したのが下記となる。
WINDOW_SUM関数により、過去3ヶ月間の合計売上の値が各月の行に表示されていることがお分かりいただけると思う。
このようにWINDOW_SUM関数は指定した範囲にある値の合計値を返してくれる。
使いこなせるようになれば非常に便利な関数だが、そのためにはRANK関数やINDEX関数等と同様に表計算における計算範囲と方向を理解する必要がある。
表計算とは通常の関数と違い、表やグラフで表示した値をさらに計算する関数のことだ。
例えば、下記のように顧客区分ごとの売上を表示し、その数値を使って「それぞれの全体に対する売上割合を表示する」ということが可能だ。
ビジネス上よく使う表計算は簡易表計算という形で用意されていて、下記のように数クリックで使用することができるようになっている。
WINDOW_SUM関数も表計算関数の1つなので、表示されたグラフや表の数値を基に計算して合計値を返しているのだ。
WINDOW_SUM関数を使いこなすには表計算の計算範囲と方向の理解が重要
前述したようにWINDOW_SUM関数を使いこなすためには、表計算の計算範囲と方向を理解することが重要だ。
WINDOW_SUM関数が返す値は表計算の計算範囲(表全体/ペイン/セルなど)と計算の方向(横/横から下へ/下など)によって変わる。
表計算の範囲と方向は下記のように対象の表計算関数を使用したフィールド(下記例だと「過去3ヶ月合計売上」)を右クリック→「次を使用して計算」をクリックして設定することが出来る。
上記例で「表(下)」とか「ペイン(下)」と記載されているが、表やペインが計算範囲(どの範囲を対象に計算するか?)を表している。
(下)や(横から下)が表計算における計算の方向(どの方向に向かって計算するか?)を表している。
繰り返しになるが、WINDOW_SUM関数を利用する場合、この表計算の計算範囲と方向の設定により、同じ計算式でも値が変わってくる。
例えば、下記は表計算の計算範囲を表全体とペインにそれぞれ設定して比較した例だ(計算の方向は下で同じ)
どちらもWINDOW_SUM関数で過去3ヶ月の合計売上を計算しているが、2023年1月や2月の値が左右で異なっている。
上図左側の表全体を表計算の計算範囲にした場合、2023年1月の過去3ヶ月間の売上合計を出すための計算対象は下記の通りだ。
- 2022年11月
- 2022年12月
- 2023年1月
これは理解しやすい、というか「通常はこうだよね」と思うはずだ。
一方、右側のペインを表計算の計算範囲にした場合、同じ2023年1月の過去3ヶ月間の売上合計の計算対象は下記となる。
- 2023年1月のみ
なぜ計算範囲をペインにした場合、2022年11月や2022年12月が対象にならないかというと、表計算の計算範囲対象外だからだ。
上記例の場合、ペインは年ごとなので、2022年全体で1つのペイン、2023年全体でもう1つのペインとなる。
ペインを計算範囲にするということは
- 「2022年の範囲内だけで計算する」
or - 「2023年の範囲内だけで計算する」
ということだ。
そのため、2023年1月の過去3ヶ月売上の対象は「2023年1月のみとなる」というわけだ。
これが計算範囲による違いで、
「どのように計算して値を表示させたいか?」
により、表計算の範囲を設定する。
私が個人的によく使うのは「表全体」もしくは「ペインごと」の計算範囲だ。
今回は計算範囲を変えた比較で説明したが、このようにWINDOW_SUM関数は計算範囲と計算方向によって値が変わってくる。
そのため、自分が意図している計算の仕方になっているかはチェックする必要がある。
表計算の計算範囲と方向については下記記事に詳細をまとめているので是非参考にして欲しい。
WINDOW_SUM関数の使い方
WINDOW_SUM関数の使い方は下記を指定する。
- 計算対象のフィールド:集計されたフィールドを対象とする(SUM[売上]など)
- [集計開始地点]:どこから集計を開始するかを指定(省略可能)
- [集計終了地点]:どこまでで集計を終了するかを指定(省略可能)
これだけを見てもよくわからないと思うので、具体例で確認していこう。
引数(集計開始、終了地点)を省略する場合
集計の開始と終了の指定を省略した場合は、表計算の範囲内の全ての値の合計値が返される。
例えば、下記はWINDOW_SUM関数で範囲内の合計値を表示した例だ。
- 計算の範囲:表
- 計算の方向:下
対象フィールド(売上数量)の表内全ての合計値が各月の行に表示されていることがお分かりいただけると思う。
一方で全く同じ条件で、計算範囲だけをペイン(下記例では年)にした場合は下記となる。
同じ計算式なのに、今後は各ペイン全体(つまり年全体)の合計値が各月の行に表示されている。
これがWINDOW_SUM関数で引数を省略した場合の使い方だ。
表計算の範囲をどう指定するかによっても値が変わってくるので、その点は是非覚えておいて欲しい。
この引数を省略したWINDOW_SUM関数は同じ表計算関数であるTOTAL関数と同じ結果を返すのでどちらを使っても同じになる。
そのため、実際にWINDOW_SUM関数を使う意味が出てくるのは、後述する集計開始地点、終了地点を指定する使い方だと思う。
引数(集計開始、終了地点)を指定する場合
では、今後は集計する開始地点と終了地点を指定するWINDOW_SUM関数の使い方を見ていこう。
先ほど例に挙げた過去3ヶ月間の売上数量を取得する場合の計算フィールドの意味は下記となる。
- 集計開始=-2の指定
- →「対象のフィールド=売上数量の該当行から2行前から集計開始」という意味
- 集計終了=0の指定
- →0=「該当行と同じ行」を意味するので、「売上数量の該当行までを集計する」という意味
また、集計開始地点よりも終了地点の値は必ず大きくなるように設定する必要がある点は覚えておく必要がある。
もし、過去3ヶ月間ではなく、過去半年間の合計売上を取得したい場合は下記を指定すればOKだ。
- 集計開始地点=-5
- 集計終了地点=0
このようにWINDOW_SUM関数は引数で集計の開始、終了地点を設定すれば、かなり柔軟にデータの集計をすることができる。
もう1つだけ例を確認しよう。
先ほどと全く同じデータだが、今度は過去3ヶ月ではなく、当月を含む前後1ヶ月ずつ=合計3ヶ月間の合計売上を計算する場合だ。
この場合は下記のように計算フィールドで指定する。
今度は先ほどと集計範囲の指定が異なっており、結果に関しても売上数量の「当月を含む前後1ヶ月ずつ」が集計されている。
このようにWINDOW_SUM関数は集計範囲を指定することで計算したい範囲だけを集計して合計値を取得することが出来るのだ。
まとめ
今回はWINDOW_SUM関数を紹介した。
使いこなせるようになれば、自在に集計が可能で便利な関数なので是非覚えてみて欲しい。
WINDOW_SUM関数でWINDOW関数全般の使い方を把握してしまえば、WINDOW_AVERAGE関数等も同様に使えるようになる。
他の表計算関数は下記を参考にして欲しい。