STEP 14:計算フィールドの基礎

🧮 STEP 14: 計算フィールドの基礎

データを加工して新しい洞察を生み出す!計算フィールドの基本をマスター

📋 このステップで学ぶこと

  • 計算フィールドとは何か、なぜ重要なのか
  • 計算フィールドの作成方法
  • 基本演算(四則演算)
  • IF文を使った条件分岐
  • 利益率の計算例
  • 文字列操作(結合、抽出)
  • 計算フィールドのデバッグとエラー対処

前提: STEP 6-13でTableauの基本操作とフィルター・パラメータを理解していること

📍 1. 計算フィールドとは?

まずは身近な例で考えてみよう

計算フィールド(Calculated Field)は、既存のフィールドを使って新しいフィールドを作成する機能です。Excelの数式セルと同じように、データを加工・計算できます。

📝 身近な例:Excelでの計算

Excelで消費税込み価格を計算する場合を思い出してください:

A列(本体価格) B列(消費税率) C列(税込価格)
10,000 10% =A2*(1+B2) → 11,000
5,000 10% =A3*(1+B3) → 5,500

このC列が「計算フィールド」に相当します。Tableauでも同じように、売上と原価から利益を計算できます!

計算フィールドを使うべき場面

計算フィールドは、元データにはないけれど分析に必要な情報を作り出すときに使います。

✅ 計算フィールドが必要な場面
場面 具体例
割合・比率の計算 利益率 = 利益 ÷ 売上
差分の計算 利益 = 売上 – 原価
条件分岐 売上が10万円以上なら「高額」、それ以外は「通常」
データの加工 姓と名を結合、日付から年を抽出
複雑な計算 複数のフィールドを組み合わせた独自指標
💡 計算フィールドの利点
  • 元データを変更不要:ExcelやDBを編集せずに計算できる
  • 再利用可能:一度作れば、すべてのシートで使える
  • 動的更新:元データが変わると自動で再計算
  • 複雑な分析:Excelでは難しい高度な計算も可能

⚙️ 2. 計算フィールドの作成方法

【準備】サンプルデータを作成しよう

計算フィールドの練習用に、売上と原価が含まれるデータを用意します。

📝 サンプルデータ(sales_calc.xlsx)

Excelで新しいファイルを作成し、以下のデータを入力してください(最低20行以上)。

日付 店舗名 商品名 売上 原価 個数
2024/01/05 渋谷店 ノートPC 120000 90000 1
2024/01/08 新宿店 コート 15000 8000 1
2024/01/12 池袋店 お弁当 500 300 10
2024/01/15 渋谷店 スマホ 80000 60000 1
2024/02/03 新宿店 ビジネス書 1800 1200 1

ファイル名「sales_calc.xlsx」で保存してください。

【実践】計算フィールドを作成しよう

基本的な計算フィールドの作成方法を学びます。

📊 計算フィールドの作成手順
  1. データペインの右上にある「」をクリック
  2. 計算フィールドの作成」を選択
  3. 計算フィールドエディタが開く
  4. 設定を行う:
    • 名前:フィールドの名称(例:利益)
    • 計算式:数式を入力(例:[売上] – [原価])
  5. OK」をクリック

→ データペインの「メジャー」セクションに新しいフィールドが追加されます!

💡 フィールド名の参照方法

計算式でフィールド名を使う際は、[フィールド名]のように角括弧 [ ]で囲みます。
例:[売上]、[原価]、[個数]

これでTableauはそれがフィールドであると認識します。角括弧を忘れるとエラーになります!

➕ 3. 基本演算(四則演算)

Tableauの演算子

Tableauで使える基本的な演算子を覚えましょう。Excelとほぼ同じです。

📊 Tableauの演算子一覧
演算 記号 結果
加算(足し算) + 10 + 5 15
減算(引き算) 10 – 5 5
乗算(掛け算) * 10 * 5 50
除算(割り算) / 10 / 5 2
剰余(余り) % 10 % 3 1(余り)
べき乗 ^ 10 ^ 2 100

【実践例1】利益の計算

最も基本的な計算フィールドを作成してみましょう。

📊 利益の計算式

名前:利益
計算式:

[売上] – [原価]

解説:
・売上から原価を引いて利益を算出
・自動的にメジャー(数値フィールド)として認識される
・負の値も表示される(赤字の場合)

【実践例2】利益率の計算

割り算を使って比率を計算します。ビジネス分析でよく使う計算です。

📊 利益率の計算式

名前:利益率
計算式:

([売上] – [原価]) / [売上]

解説:
・利益 ÷ 売上 = 利益率
・0〜1の小数で表示される(例:0.25)
・パーセンテージ形式に変換すると見やすい(25%)

📊 パーセンテージ形式に変換する方法
  1. データペインの「利益率」を右クリック
  2. 既定のプロパティ」→「数値形式」を選択
  3. パーセンテージ」を選択
  4. 小数点以下の桁数を「1」に設定
  5. 「OK」をクリック

→ 0.25 が 25.0% と表示されるようになります!

【実践例3】単価の計算(ゼロ除算対策)

割り算を行う際は、分母が0になる可能性に注意が必要です。

⚠️ ゼロ除算エラーとは

問題:個数が0の場合、「売上 / 個数」はエラーになります。

// 問題のある式 [売上] / [個数] → 個数が0だとエラー!
✅ ゼロ除算を回避する方法

IF文を使って、個数が0より大きい場合のみ計算を行います。

IF [個数] > 0 THEN [売上] / [個数] ELSE 0 END

解説:
・個数が0より大きければ計算を実行
・そうでなければ0を返す
・これでゼロ除算エラーを防げます

💡 演算の優先順位

数学と同じルールです。覚えておきましょう。

  1. ( ) 括弧
  2. ^ べき乗
  3. * / % 乗算、除算、剰余
  4. + – 加算、減算

例:5 + 3 * 2 = 11(3*2が先、その後+5)
括弧使用:(5 + 3) * 2 = 16(括弧内が先)

🔀 4. IF文を使った条件分岐

IF文の基本構文

IF文を使うと、「もし〜なら〜、そうでなければ〜」という条件分岐ができます。

📝 IF文の基本形
IF <条件> THEN <真の場合の処理> ELSE <偽の場合の処理> END

例:

IF [売上] >= 100000 THEN “達成” ELSE “未達” END

【実践例1】売上ランクの分類(シンプル)

売上を「高額」と「通常」に分類してみましょう。

📊 売上ランク(シンプル版)

名前:売上ランク
計算式:

IF [売上] >= 100000 THEN “高額” ELSE “通常” END

解説:
・売上が10万円以上なら「高額」
・それ以外は「通常」
・文字列を返すので、ディメンション(カテゴリ)として扱われる

【実践例2】多段階の条件分岐(ELSEIF)

3つ以上のカテゴリに分類したい場合は、ELSEIFを使います。

📊 売上ランク(詳細版)

名前:売上ランク詳細
計算式:

IF [売上] >= 200000 THEN “S” ELSEIF [売上] >= 100000 THEN “A” ELSEIF [売上] >= 50000 THEN “B” ELSEIF [売上] >= 10000 THEN “C” ELSE “D” END

解説:
・20万円以上:S
・10万円以上:A
・5万円以上:B
・1万円以上:C
・それ以外:D

⚠️ 重要:条件の順序に注意!

ELSEIFは上から順に評価されます。高い金額から書く必要があります。

もし「10万円以上」を最初に書くと、20万円の売上も「A」になってしまいます(10万円以上の条件を満たすため)。

【実践例3】複数条件の組み合わせ(AND/OR)

複数の条件を組み合わせることもできます。

📊 AND条件(両方満たす)

名前:VIP顧客
計算式:

IF [売上] >= 100000 AND [個数] >= 5 THEN “VIP” ELSE “一般” END

売上が10万円以上かつ個数が5個以上の場合のみ「VIP」

📊 OR条件(どちらか満たす)

名前:特別対応
計算式:

IF [売上] >= 200000 OR [店舗名] = “渋谷店” THEN “要対応” ELSE “通常” END

売上が20万円以上または渋谷店の場合は「要対応」

📊 比較演算子一覧
演算子 意味
= 等しい [店舗名] = “渋谷店”
<> または != 等しくない [売上] <> 0
> より大きい [売上] > 100000
>= 以上 [売上] >= 100000
< より小さい [利益率] < 0.2
<= 以下 [個数] <= 10

📝 5. 実務でよく使う計算例

例1:利益ステータスによる色分け

グラフの色を条件によって変える、実務でよく使うテクニックです。

📊 利益ステータス

名前:利益ステータス
計算式:

IF [利益] >= 50000 THEN “高利益” ELSEIF [利益] >= 10000 THEN “通常” ELSEIF [利益] >= 0 THEN “低利益” ELSE “赤字” END

使い方:
1. 「利益ステータス」を「色」マークにドラッグ
2. 色を編集(高利益=緑、通常=青、低利益=黄、赤字=赤)
→ 利益額に応じてグラフの色が変わります!

例2:消費税込み価格

固定値を使った計算の例です。

📊 税込売上

名前:税込売上
計算式:

[売上] * 1.1

解説:売上に1.1を掛けて10%の消費税を加算
ヒント:STEP 13で学んだパラメータを使えば、税率を動的に変更できます!

🔤 6. 文字列操作

文字列の結合

複数のテキストフィールドを1つにまとめることができます。

📊 文字列の結合(+で連結)

名前:フルネーム
計算式:

[姓] + ” ” + [名]

例:姓=「山田」、名=「太郎」 → 「山田 太郎」

別の例(住所の結合):

[都道府県] + [市区町村] + [番地]

文字列の抽出

文字列の一部を取り出すことができます。

📊 文字列抽出関数
関数 説明
LEFT 左から指定文字数を取得 LEFT(“東京都渋谷区”, 3) → “東京都”
RIGHT 右から指定文字数を取得 RIGHT(“file.pdf”, 3) → “pdf”
MID 途中から指定文字数を取得 MID(“ABCDEFG”, 3, 2) → “CD”
LEN 文字数を数える LEN(“ノートPC”) → 5

文字列の検索

特定の文字が含まれているかをチェックできます。

📊 CONTAINS関数(含まれるか判定)

名前:PC商品フラグ
計算式:

IF CONTAINS([商品名], “PC”) THEN “PC関連” ELSE “その他” END

例:
・商品名「ノートPC」→「PC関連」
・商品名「マウス」→「その他」

🐛 7. 計算フィールドのデバッグとエラー対処

よくあるエラーと対処法

計算フィールドを作成する際に遭遇しやすいエラーと、その解決方法を学びます。

❌ エラー1:「計算が無効です」

原因:構文エラー(スペルミス、括弧の閉じ忘れなど)

// ❌ 悪い例 IF [売上] >= 100000 THEN “達成” → ENDがない! // ✅ 良い例 IF [売上] >= 100000 THEN “達成” END

対処:IF文には必ずENDを付ける。括弧の数が合っているか確認する。

❌ エラー2:「フィールドが見つかりません」

原因:フィールド名のスペルミス、または存在しないフィールド

// ❌ 悪い例 [売上高] – [原価] → フィールド名は「売上」なのに「売上高」と書いている // ✅ 良い例 [売上] – [原価]

対処:データペインで正確なフィールド名を確認。角括弧 [ ] で囲む。

❌ エラー3:「データ型が一致しません」

原因:数値と文字列を混在させている

// ❌ 悪い例 [売上] + [店舗名] → 数値と文字列は足せない! // ✅ 良い例(文字列として結合したい場合) STR([売上]) + [店舗名] → 売上を文字列に変換してから結合

対処:STR()で数値→文字列、INT()で文字列→整数に変換する。

✅ デバッグのコツ
  1. エラーメッセージを読む:どこが間違っているか手がかりがある
  2. シンプルに分割:複雑な式は段階的に作成(まず利益を作り、次に利益率を作る)
  3. 中間結果を確認:計算の途中経過を別フィールドで確認
  4. コメントを追加:// でコメント(複雑な式の説明用)

📝 STEP 14 のまとめ

✅ このステップで学んだこと
  • 計算フィールド:既存フィールドから新しいフィールドを作成
  • 四則演算:+、-、*、/、%、^
  • IF文:条件分岐(IF-THEN-ELSE、ELSEIF)
  • 比較演算子:=、<>、>、>=、<、<=
  • 論理演算:AND、OR、NOT
  • 実務計算:利益、利益率、消費税込み価格
  • 文字列操作:結合(+)、抽出(LEFT、RIGHT、MID)
  • デバッグ:エラーメッセージの読み方、対処法
💡 最重要ポイント

計算フィールドはデータを加工して新しい洞察を生み出す最強のツールです。元データにない「利益率」「売上ランク」「前年比」などを自在に作成できます。特にIF文(条件分岐)を使いこなせば、複雑なビジネスルールも実装可能。計算フィールドを制する者がTableauを制します!

🎯 次のステップの準備

次のSTEP 15では、「集計関数(SUM、AVG、COUNT、統計関数)」を学びます。計算フィールドと集計関数を組み合わせることで、より高度な分析が可能になります!

📝 理解度チェック

問題 1 基礎

計算フィールドでフィールド名を使う際、どのように書きますか?

【解答】

角括弧 [ ] でフィールド名を囲みます。

例:[売上]、[原価]、[個数]

角括弧を忘れるとTableauはフィールドとして認識せず、エラーになります。

問題 2 基礎

IF文を使う際に必ず最後に書く必要があるキーワードは何ですか?

【解答】

ENDです。

IF文の構文は必ず「IF … THEN … ELSE … END」のようにENDで終わる必要があります。ENDを忘れると「計算が無効です」というエラーが発生します。

問題 3 応用

ELSEIFを使って3段階以上に分類する際、なぜ「高い金額から書く」必要があるのですか?

【解答】

ELSEIFは上から順に評価され、最初に条件を満たした時点で処理が終了するからです。

例えば、以下の順序で書くと問題が発生します:

// ❌ 間違った順序 IF [売上] >= 10000 THEN “C” ELSEIF [売上] >= 50000 THEN “B” // ← ここに到達しない ELSEIF [売上] >= 100000 THEN “A” // ← ここに到達しない END

売上が20万円でも「C」になってしまいます(1万円以上の条件を満たすため)。

問題 4 応用

ゼロ除算エラーを回避する計算式を書いてください。「売上 ÷ 個数」を計算し、個数が0の場合は0を返すようにしてください。

【解答】
IF [個数] > 0 THEN [売上] / [個数] ELSE 0 END

IF文で「個数が0より大きい場合のみ計算を実行」し、そうでなければ0を返すことで、ゼロ除算エラーを防ぎます。

🎯 実践演習

演習 1 基礎

「利益」という名前の計算フィールドを作成してください。計算式は「売上 – 原価」です。棒グラフで店舗別の利益を表示してください。

【手順】
  1. データペイン右上の▼ →「計算フィールドの作成」
  2. 名前:利益
  3. 計算式:[売上] - [原価]
  4. 「OK」をクリック
  5. 「利益」を行シェルフにドラッグ
  6. 「店舗名」を列シェルフにドラッグ

確認:店舗別の利益が棒グラフで表示される

演習 2 応用

「売上ランク」という計算フィールドを作成してください。売上が10万円以上なら「高額」、5万円以上なら「中額」、それ以外は「少額」と分類し、ランク別の売上合計を表示してください。

【手順】
  1. 計算フィールドの作成
  2. 名前:売上ランク
  3. 計算式:
IF [売上] >= 100000 THEN “高額” ELSEIF [売上] >= 50000 THEN “中額” ELSE “少額” END
  1. 「OK」をクリック
  2. 「売上ランク」を列シェルフにドラッグ
  3. 「売上」を行シェルフにドラッグ

結果:高額、中額、少額の各ランクの売上合計が表示される

演習 3 発展

「利益率」と「利益率ステータス」という2つの計算フィールドを作成してください。利益率は「(売上-原価)÷売上」で計算し、パーセンテージ形式で表示してください。利益率ステータスは、利益率が30%以上なら「優良」、20%以上なら「良好」、10%以上なら「普通」、それ以外は「要改善」と分類してください。

【ステップ1:利益率の作成】
  1. 名前:利益率
  2. 計算式:([売上] - [原価]) / [売上]
  3. 「OK」
  4. 「利益率」を右クリック →「既定のプロパティ」→「数値形式」
  5. 「パーセンテージ」、小数点以下1桁
【ステップ2:利益率ステータスの作成】
  1. 名前:利益率ステータス
  2. 計算式:
IF [利益率] >= 0.3 THEN “優良” ELSEIF [利益率] >= 0.2 THEN “良好” ELSEIF [利益率] >= 0.1 THEN “普通” ELSE “要改善” END

ポイント:利益率は0〜1の小数なので、30%は0.3と書く

❓ よくある質問

Q1: 計算フィールドが「無効な計算です」とエラーになります。
構文エラーがないか確認してください。

よくある原因:
①フィールド名を角括弧 [ ] で囲んでいない
②IF文でENDを書き忘れている
③括弧の閉じ忘れ
④スペルミス

エラーメッセージに表示される行番号を確認し、その付近をチェックしましょう。
Q2: ゼロ除算エラーが発生します。
分母が0になる可能性がある場合、IF文でチェックしてください。

例:IF [個数] > 0 THEN [売上] / [個数] ELSE 0 END

これで個数が0の場合は0を返し、エラーを回避できます。
Q3: 計算結果が期待と違います。
集計(SUM、AVG)を使っているか確認してください。

Tableauはデフォルトで集計を行うため、状況によってはSUM([売上])と明示的に書く必要がある場合があります。また、演算の優先順位も確認しましょう。複雑な式は括弧 ( ) を使って明示的に順序を指定してください。
Q4: 計算フィールドがディメンションになってしまいます。
文字列を返す計算フィールドは自動的にディメンションになります。

これは正常な動作です。数値を返す計算フィールドはメジャーになります。もし数値なのにディメンションになっている場合は、フィールドを右クリック →「ディメンションからメジャーに変換」を選択してください。
Q5: 計算フィールドを後から編集したいです。
計算フィールドを右クリック →「編集」を選択してください。

計算式を修正して「OK」を押すと、すべてのビューが自動的に更新されます。計算フィールドを使用しているすべてのシートに変更が反映されるので便利ですが、影響範囲を考慮して慎重に編集しましょう。
Q6: パーセンテージ表示にしたいです。
計算フィールドを右クリック →「既定のプロパティ」→「数値形式」→「パーセンテージ」を選択してください。

小数点以下の桁数も設定できます。計算結果が0〜1の小数の場合、パーセンテージ形式を選ぶと自動的に100倍して表示されます(例:0.25 → 25%)。
📝

学習メモ

BIツール入門 - Step 14

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE