0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Tableau 入門 — 夏アニメデータで SAOフラグ・COUNTD・LOD を学ぶ

0
Last updated at Posted at 2026-06-28

『ソードアート・オンライン(SAO)』、好きですか? 私は大好きです。
推し活ユーザー会は、「推しのデータを集めて、みんなで可視化する」Tableau コミュニティです。この記事は、第4回ハンズオン「推しの Viz を作ろう!」の解説資料です。

はじめに

この記事は 【第4回 推し活ユーザー会】20年分の夏アニメ、全部データにしてみた。 のハンズオン資料です。
CSV ファイルは Google Drive からダウンロードできます。

「Tableau インストールしたけど、何から始めればいいの?」という方向けの記事です。

夏アニメ(2006〜2026年)のデータを使って、次の 6 つを順番に体験します。

  • データを確認する(CSV 6ファイルの中身)
  • CSV を読み込む(リレーションシップで結合)
  • 棒グラフを作る(ドラッグ&ドロップだけ)
  • SAOフラグIF + CONTAINS で条件分類)
  • COUNTD(キャラ数・声優別キャラ数を数える)
  • SAO声優さんフラグ(LOD 式で「声優単位」の判定)

計算式はすべて日本語で説明するので、Tableau が初めての方でも読み進められます。

QUEST 1 ▶ 使うデータを確認する

CSV 6 ファイルを Tableau のリレーションシップで結合しています。

ファイル 内容
001_アニメ.csv 作品マスター(タイトル・人気度・スコアなど)
002_キャラクター.csv キャラ名・役割・声優名(1作品に複数行)
003_ジャンル.csv 作品のジャンル(1行1ジャンル)
004_スタジオ.csv 制作スタジオ名(1作品に複数行)
005_スタッフ.csv 監督・脚本などスタッフ(役職・担当話数)
006_テーマソング.csv 主題歌(OP / ED・歌手)

すべてのファイルは 作品ID で紐づいています。

001_アニメ.csv

1作品 = 1行のマスターデータです。今回の Viz づくりのメインになります。

列名 内容
作品ID 各テーブルを結合するキー 11757
タイトル アニメのタイトル ソードアート・オンライン
季節 放送シーズン(このデータは全部「夏」)
人気度 AniList のユーザー登録数(数字が大きいほど人気) 682450
平均スコア 評価スコア(0〜100) 70
放送開始日 放送が始まった日付 2012-07-08

002_キャラクター.csv

1キャラクター = 1行。1作品に複数のキャラがいるため、アニメ1本に対して複数行あります。

列名 内容
作品ID アニメと紐づけるキー 11757
キャラ名 キャラクターの名前(本名表記) 桐ヶ谷和人
役割 主役 / サブキャラ / モブ 主役
声優名 担当声優の名前 松岡禎丞

003_ジャンル.csv

1作品 × 1ジャンル = 1行。1作品が複数ジャンルを持つため複数行になります。

列名 内容
作品ID アニメと紐づけるキー 11757
ジャンル ジャンル名(日本語) アクション

※ 1作品が複数ジャンルを持つため、同じ 作品ID で「冒険」「ファンタジー」など複数行になります。

004_スタジオ.csv

1作品 × 1スタジオ = 1行。共同制作の場合は複数行になります。

列名 内容
作品ID アニメと紐づけるキー 11757
スタジオ 制作スタジオの名前 A-1 Pictures

005_スタッフ.csv

1スタッフ担当 = 1行。原作者・監督・音楽など役職ごとに行が分かれます。

列名 内容
作品ID アニメと紐づけるキー 11757
氏名 スタッフの名前 伊藤智彦
役職 原作者 / 監督 / 音楽 など(日本語) 監督
担当話数 担当したエピソード数(全話担当などは空欄)

006_テーマソング.csv

1曲 = 1行。OP / ED それぞれ、複数曲あれば順番に行が分かれます。

列名 内容
作品ID アニメと紐づけるキー 11757
種別 OP(オープニング)/ ED(エンディング) OP
順番 同じ種別内の曲順(1, 2, …) 1
主題歌 曲のタイトル crossing field
歌手 アーティスト名 LiSA

QUEST 2 ▶ CSV を Tableau に読み込む

① CSV をダウンロードして Tableau で開く

  1. Google Drive から 6 ファイルをまとめてダウンロードする
  2. Tableau Desktop を起動し、左の「接続」パネルから 「テキストファイル」 を選択
  3. 001_アニメ.csv を選ぶ → データソースページが開く

② リレーションシップで 6 ファイルを結合する

JOIN ではなくリレーションシップで結合するのがポイントです。
JOIN だと「キャラクター数ぶん人気度が重複集計される」バグが起きます。

  1. 画面左の「接続パネル」に残り 5 ファイルをドラッグ or 「別のファイルに接続」で追加
  2. キャンバス上でテーブルをつなぐポップアップが出たら、結合キーを 作品ID = 作品ID に設定
  3. 6 テーブル全部を 001_アニメ.csv を中心につなぐと完成

リレーションシップ画面

この画面(データソースページ)の見方

Tableau に CSV を読み込むと、まずこの「データソースページ」が開きます。各エリアの役割はこんな感じです。

  • 左の接続パネル … 読み込んだファイルの一覧。今回主に使うのは 001_アニメ.csv002_キャラクター.csv の 2 ファイルです。
  • 中央のキャンバス … テーブル同士をつなぐ線(リレーションシップ)。001_アニメ.csv を中心に、各テーブルが 作品ID で繋がっています。
  • 下のプレビュー … 実際のデータの中身を表で確認できます。

QUEST 3 ▶ 棒グラフを作る(ドラッグ&ドロップだけ)

グラフを描くのは「ワークシート」です。画面左下のタブにある「シート 1」をクリックすると(または ⊞ 新しいワークシートボタン)、まっさらな編集画面が開きます。

初期画面

左側の データペインに列名が並び、上部に「行」「列」のシェルフ、中央にマークカードがあります。ここへ列をドラッグしてグラフを組み立てます。

手順

  1. 左ペインの タイトル行シェルフ(画面上部「行」の枠)へドラッグ
  2. 人気度列シェルフ(画面上部「列」の枠)へドラッグ
  3. 自動で棒グラフが出来上がります 🎉

タイトル × 人気度の棒グラフ

「人気順で見たいな」と思ったら、ツールバーの「降順ソート」ボタンをワンクリック。関数も SQL も書かずに、思いついた瞬間に並び替わります。これが Tableau のお手軽なところです。

QUEST 4 ▶ 色で SAO を目立たせる — SAOフラグ

「SAO(ソードアートオンライン)シリーズだけ色を変えたい」という場面で使う計算フィールドです。

計算フィールドを作る

データペイン右上の ▼(メニュー) をクリック →「計算フィールドの作成」を選びます。

データペイン右上のメニューから計算フィールドの作成

開いたダイアログに、フィールド名と式を入力します。

フィールド名: SAOフラグ

IF CONTAINS([タイトル], "ソードアート") THEN "★ SAO" ELSE "その他" END

SAOフラグの計算式

左下に「計算は有効です。」と出れば OK です。

式の読み方

部分 意味
CONTAINS([タイトル], "ソードアート") タイトルに「ソードアート」が含まれていれば TRUE
THEN "★ SAO" TRUE のときは "★ SAO" を返す
ELSE "その他" FALSE のときは "その他" を返す

= "ソードアート" ではなく CONTAINS を使うのがポイントです。
「ソードアートオンライン アリシゼーション」のようにシリーズ名や副題が付いていても一致します。

色をつける

作成した SAOフラグ は、データペインに新しいフィールドとして増えています。
これを マークカードの「色」へドラッグします。

それだけで「★ SAO」と「その他」が別の色で塗り分けられます。SAO シリーズだけがパッと浮かび上がります。

SAOフラグで色分けされた棒グラフ

QUEST 5 ▶ キャラ数を数える — COUNTD

「このアニメ、キャラ何人いる?」「この声優さん、何キャラ担当してる?」を数えます。

COUNTCOUNTD の違いは次のとおりです。

関数 意味
COUNT([キャラ名]) 行数をそのまま数える(同じ名前でも 1 ずつ)
COUNTD([キャラ名]) 重複を除いたユニーク数を数える

実際に並べて比べると違いがよく分かります。同じ声優さんでも、カウント個別のカウント で数字がズレています(同じキャラを複数作品で演じていると重複するため)。

カウントと個別カウントの比較

「キャラ何人ぶん担当したか」を正しく数えたいときは COUNTD を使います。

集計を「個別カウント」に変える

フィールドをシェルフに置いたあと、そのフィールドを右クリック →「メジャー」→「カウント(個別)」を選ぶと COUNTD になります。

集計をカウント(個別)に変更

声優別キャラ数

新しいシートを開き、行シェルフに 声優名、列シェルフに キャラ名(個別カウント)を置くと、
「この声優さんが担当したユニークなキャラ数」のランキングになります。

声優別キャラ数の棒グラフ

ビューの粒度に合わせて COUNTD は自動で動きます。
行に タイトル があればアニメ単位、声優名 があれば声優単位で集計されます。

QUEST 6 ▶ 声優単位で判定する — SAO声優さんフラグ(LOD)

「SAO に出演したことがある声優さん」を全出演作品でフラグ立てしたい、という場面です。

なぜ普通の計算ではうまくいかないか

IF [SAOフラグ] = "★ SAO" THEN "★ SAO声優" ELSE "その他" END と書くと、
その行のタイトルが SAO かどうかだけを見てしまいます。

つまり松岡禎丞さんがダンまちに出ている行は「その他」になってしまいます。

声優名 タイトル 普通の IF 本当に欲しい結果
松岡禎丞 ソードアートオンライン ★ SAO声優 ★ SAO声優
松岡禎丞 ダンまちV その他 ❌ ★ SAO声優 ✅

声優単位で SAO 出演歴があるか」を見るには、LOD 式が必要です。

LOD 式(FIXED)とは

{ FIXED [次元]: 集計 } という書き方で、ビューの粒度を無視して別の次元で集計できます。

フィールド名: SAO声優さんフラグ

IF { FIXED [声優名]: MAX(IF [SAOフラグ] = "★ SAO" THEN 1 ELSE 0 END) } = 1
THEN "★ SAO声優"
ELSE "その他"
END

SAO声優さんフラグの計算式

式の読み方(内側から順に)

① SAO 出演なら 1、それ以外なら 0

IF [SAOフラグ] = "★ SAO" THEN 1 ELSE 0 END

② 声優名ごとに MAX を取る

{ FIXED [声優名]: MAX(…) }

声優名でグループ化して最大値を取ります。1 が 1 つでもあれば MAX = 1 になります。

なぜ MAX なのか?
声優さん 1 人には複数の出演行(作品)があります。これを 1 つの値にまとめるのが LOD の役割で、: の右側には必ず集計関数(SUM / MAX / MIN など)が必要です。
ここでやりたいのは「1 作品でも SAO に出ていれば ★」という判定。0/1 のフラグに対して MAX を取ると、1 が 1 つでもあれば 1=「SAO 出演が存在するか(OR 条件)」になります。

声優 各行のフラグ MAX 結果
松岡禎丞 1, 0, 0, 1 1 ★ SAO声優
花江夏樹 0, 0, 0 0 その他
  • MIN だと「全作品が SAO なら 1(AND 条件)」になり、松岡さんも 0 になってしまう
  • SUM でも >= 1 で同じ判定はできるが、「出演回数」を数えることになり意図がぼやける。「あるか/ないか」を表すなら MAX が一番素直

③ 結果が 1 なら "★ SAO声優"

IF … = 1 THEN "★ SAO声優" ELSE "その他" END

この式は「声優名」単位で計算した結果を全行に貼り付けるので、
松岡禎丞さんの行はタイトルが何であっても「★ SAO声優」になります。

このフラグを「色」に乗せると、SAO に出演歴のある声優さんだけが色分けされます。
QUEST 5 の声優別キャラ数ランキングに重ねれば、「SAO キャストが他にどれだけ活躍しているか」が一目で分かります。

SAO声優さんフラグで色分けされたViz

まとめ

やったこと 使った機能
使うデータを確認する CSV 6ファイルの中身を把握
CSV を読み込んでリレーションシップを設定 データソースページ・リレーションシップ
棒グラフを作る ドラッグ&ドロップ
SAO を色分け IF + CONTAINS
キャラ数・声優別キャラ数 COUNTD
声優単位でフラグを立てる LOD FIXED

まずは SAOフラグから作ってみて、動いたら次のステップへ進んでみてください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?