データの探索と分析(DA)

表計算のカスタマイズ — RUNNING_SUM・WINDOW関数の制御

導入

累計グラフや移動平均は「表計算」で作れますが、Tableauの表計算には計算の方向や範囲を細かく制御する仕組みが備わっています。RUNNING_SUMやWINDOW関数を使いこなすには、この「どの範囲で計算するか」を理解することが鍵になります。

なぜ重要か

DA試験では表計算がLOD計算と並ぶ頻出トピックとして位置づけられています。「計算とワークブックの設計」ドメインにおいて、RUNNING_SUM・WINDOW関数・パーティション・アドレッシングの4概念はセットで問われることが多く、どれか1つでも理解が曖昧だと正解を絞り込めないケースがあります。

実務でも累計グラフや移動平均は経営ダッシュボードで定番の可視化です。月次売上の累計推移、直近3か月の移動平均によるトレンド把握、前期比を並べた比較など、ビジネスの現場で毎日使われる可視化パターンの多くが表計算で実現されています。

また、LOD計算とは評価のタイミングが異なる点を理解しておくことがフィルター処理順序の単元とも連動します。表計算はビューが描画された後に計算されるため、他のフィルターや集計が終わった後に適用されるという特徴が、試験問題の判断根拠としてよく使われます。

くわしく知ろう

Tableauの表計算は、ビュー上に並んだセルを対象として集計を行う特殊な計算です。通常の集計計算がデータソースに対して行われるのに対し、表計算はビューが描画された後の値を使って二次的に計算が行われます。

RUNNING_SUM は指定した範囲内で値を累積加算する関数です。たとえば `RUNNING_SUM(SUM([売上]))` とすると、月別の棒グラフに対して左から右へ売上を積み上げた累計折れ線を重ねることができます。RUNNING_MIN・RUNNING_MAX・RUNNING_AVGも同様の構造で、最小値・最大値・平均値を累積的に返します。

WINDOW関数はさらに柔軟で、「ウィンドウ」と呼ばれる任意の範囲内の集計値を返します。`WINDOW_AVG(SUM([売上]), -2, 0)` とすると「現在のマークから2つ前までの3点移動平均」が計算されます。範囲の指定には FIRST() / LAST() という特殊な値も使え、`FIRST()` はパーティションの最初のマーク、`LAST()` は最後のマークを示します。

表計算の動作に重要なのが「テーブルの計算方向(アドレッシング)」と「パーティション」の概念です。アドレッシングは計算が進む方向(どの軸に沿って計算するか)を決め、パーティションはその計算をリセットする区切りを指します。たとえば「表(横)」を選ぶと行ごとに計算がリセットされ、「ペイン(横)」を選ぶとペインの区切りでリセットされます。

具体例で理解する

たとえば月別の売上棒グラフに `RUNNING_SUM(SUM([売上]))` を重ねると、1月から12月へ向かって売上が積み上がる累計折れ線グラフが描けます。一方 `WINDOW_AVG(SUM([売上]), -2, 0)` を使うと直近3か月の移動平均線が得られ、季節変動を平滑化してトレンドを見やすくできます。

試験での出題パターン

【パターン1:RUNNING_SUM・WINDOW関数の動作を問う問題】

「月別売上の棒グラフに対して、1月から現在の月まで累積した値を返す関数はどれか」という形式で出題されます。RUNNING_SUM・WINDOW_SUM(SUM([売上]), FIRST(), LAST())・WINDOW_AVG・LOD計算の選択肢が並ぶことが多く、RUNNING_SUMが「先頭から現在まで累積」という動作をする点が正解の根拠となります。WINDOW_SUM(SUM([売上]), FIRST(), LAST())はパーティション全体の合計を全セルに同じ値で返すため「累計」にはならないという誤答が定番です。

【パターン2:パーティションとアドレッシングの定義を問う問題】

「表計算において計算をリセットする区切りを何というか」という用語定義問題が出ます。選択肢にパーティション・アドレッシング・ディメンション・グループが並び、パーティション=計算のリセット区切り、アドレッシング=計算が進む方向、という対比をそのまま問う形式です。「アドレッシングはリセット区切り」という入れ替えに引っかからないよう注意が必要です。

よくある間違い・紛らわしいポイント

【RUNNING_SUMとWINDOW_SUM(SUM([売上]), FIRST(), LAST())の違い】

RUNNING_SUMは先頭から現在のマークまで累積加算します。WINDOW_SUM(SUM([売上]), FIRST(), LAST())はパーティション全体の合計を全セルに同じ値で返すため累計にはなりません。累計折れ線を作りたい場面でWINDOW_SUMを選ぶと全月に同じ値が表示されます。

【パーティションとアドレッシングの混同】

パーティションは「計算をリセットする区切り」、アドレッシングは「計算が進む方向」です。「向き=アドレッシング、リセット=パーティション」と対応づけて覚えると混同を防げます。

【LOD計算と表計算の評価タイミングの混同】

LOD計算はデータソース側で集計されフィルター処理の早い段階で評価されます。表計算はビューが描画された後に計算されるため処理順序の最後に位置します。「LOD計算はデータソース側・表計算はビュー側」という違いは試験でも問われます。

まとめ・試験ポイント

  • RUNNING_SUM=指定範囲の累計を返す表計算関数
  • WINDOW_AVG / WINDOW_SUM=指定ウィンドウ内の平均・合計を返す関数
  • FIRST() / LAST()=パーティションの最初・最後のマークを示す値
  • パーティション=計算をリセットする区切り、アドレッシング=計算が進む方向
  • 表計算はデータソースではなくビュー上の値を対象に二次計算される
  • 試験では関数の動作とパーティション・アドレッシングの組み合わせが問われる

学習した内容を模擬試験で確認しよう。Tableau Data Analyst模擬試験で実力を測ろう。

Tableau DA模擬試験に挑戦