ビュー粒度の問題を解く — 「なぜ数が増えるのか」を論理的に説明する
導入
ビューにディメンションを追加した瞬間、レコード数が想定より何倍にも増えてしまった――そんな経験はないでしょうか。この「数の爆発」はビュー粒度を理解することで論理的に説明できるようになります。
なぜ重要か
ビュー粒度の理解はDA試験(Tableau Certified Data Analyst)の「データの探索と分析」ドメイン(全体の約41%を占める最大領域)の中核を成す重要テーマです。Desktop Specialistでも触れられますが、DA試験ではATTR関数・LOD計算と組み合わせた粒度診断までの踏み込んだ出題があります。
実務でも「想定と違う集計結果」の原因として最も多いのがビュー粒度の認識違いです。リレーションシップやユニオンを使った多対多の構成では特に数の爆発が起きやすく、原因を論理的に特定できるスキルがあるかどうかでデバッグ速度が大きく変わります。SHELF構成 → ATTR診断 → LOD計算というフローで問題解決できるのがDA試験合格者の標準スキルです。
この単元で粒度とディメンションの関係・ATTR関数の動作・LOD計算の使い分けを押さえておくと、次の「計算式デバッグ」「パフォーマンス最適化」へと直結する基礎力になります。
くわしく知ろう
ビュー粒度とは、Tableauのビュー上で1行(1マーク)が何を表すかを指します。たとえば「カテゴリ」だけをビューに置けば1行はカテゴリ1つに相当しますが、そこに「サブカテゴリ」を追加すると、1行は「カテゴリ × サブカテゴリ」の組み合わせに変わります。このようにディメンションが増えるほど粒度は細かくなり、行数が増えていきます。
いわゆる「数の爆発」は、想定より細かい粒度になってしまうことで起きます。特に多対多のリレーションシップやユニオンを使っているとき、複数のディメンションが掛け合わされて急激に行数が膨らむことがあります。この場合はまず、ビューのSHELF(行・列・詳細)を確認し、どのディメンションが粒度を細かくしているかを特定するのが解決の第一歩です。
ATTR関数(ATTRIBUTE関数)はこのような粒度の不一致に対処する際に活用できます。あるディメンションがビューの各行内で常に同じ値を持つ場合はその値を返し、複数の異なる値が混在する場合はアスタリスク(*)を返す関数です。データが意図どおりに集約されているかを診断するツールとして試験でも頻出の関数として知られています。
LOD計算(FIXED / INCLUDE / EXCLUDE)もビュー粒度と密接に関わります。FIXEDはビューの粒度に関係なく指定したディメンションで集計し、INCLUDEはビューの粒度に追加のディメンションを含めて集計し、EXCLUDEはビューの粒度から指定ディメンションを除いて集計します。どのLOD式を選ぶかは「ビューの粒度より粗くしたいか、細かくしたいか、独立させたいか」で判断します。
具体例で理解する
たとえば「地域」×「製品カテゴリ」のビューに「担当者」を詳細に追加すると、1マークが「地域 × カテゴリ × 担当者」の組み合わせになり行数が急増します。一方、ATTR([担当者])を使うと、1マーク内で担当者が一意のときだけ名前が表示され、複数混在する場合はアスタリスクが表示されるため、集約の状態をすぐに診断できます。
試験での出題パターン
【パターン1:数の爆発の原因を問う問題】
「ディメンションを追加したらマーク数が大幅に増えた原因として最も適切なものはどれか」という形式で、「ビュー粒度が細かくなったため」を選ばせる問題が頻出します。「集計方法の変更」「キャッシュ」「フィルター解除」などの紛らわしい選択肢が並ぶため、「ディメンション追加=粒度の細分化=行数増加」という因果を明確に理解しておく必要があります。
【パターン2:ATTR関数の動作を問う問題】
「ATTR(ATTRIBUTE)関数の動作として最も適切なものはどれか」という問いで、「値が一意なら値を返し、複数値が混在するとアスタリスクを返す」を選ばせる問題がDA試験頻出です。FIXED LODや平均値を返す関数と混同する誤答を並べる形式です。
【パターン3:LOD計算の使い分け】
FIXED(ビュー粒度に独立)・INCLUDE(粒度を細かく)・EXCLUDE(粒度を粗く)の3種類を、シナリオから適切に選ばせる応用問題も出題されます。「顧客ごとの合計を粒度に関係なく固定したい」「地域単位での集計をビュー粒度に追加したい」といった文脈で判断する形式です。
よくある間違い・紛らわしいポイント
【ATTRとFIXEDの役割を混同】
×「ATTR関数はビュー粒度に関係なく集計する」→○「ATTRは値の一意性を診断する関数、ビュー粒度から独立して集計するのはFIXED LOD」。ATTR=診断、FIXED=固定集計という役割の違いを明確に整理しましょう。
【INCLUDEとEXCLUDEの向きの誤解】
×「INCLUDEは粒度を粗くし、EXCLUDEは粒度を細かくする」→○「INCLUDE=ビュー粒度+追加ディメンション(より細かく)、EXCLUDE=ビュー粒度−指定ディメンション(より粗く)」。名前と動作の対応を逆に覚えていないか必ず確認しましょう。
【数の爆発をフィルターで解決しようとする誤解】
×「数の爆発が起きたらフィルターを追加して行数を減らせばよい」→○「まず原因のディメンションを特定しSHELFから外すか、LOD/ATTRで粒度を調整するのが正攻法」。フィルターは症状緩和にはなるが根本解決にはなりません。
まとめ・試験ポイント
- ビュー粒度=ビュー上の1マークが表す集計単位
- ディメンションを追加するほど粒度が細かくなり行数が増える
- ATTR関数=値が一意なら値を返し、複数値が混在するとアスタリスク(*)
- FIXED=ビュー粒度に依存しない / INCLUDE=粒度を細かく / EXCLUDE=粒度を粗く
- 「数の爆発」が起きたらSHELFのディメンション構成を確認するのが第一手
- 試験では粒度変化の理由とATTR・LOD式の使い分けが頻出
学習した内容を模擬試験で確認しよう。Tableau Data Analyst模擬試験で実力を測ろう。
Tableau DA模擬試験に挑戦