🧮 STEP 14: 計算フィールドの基礎
データを加工して新しい洞察を生み出す!計算フィールドの基本をマスター
📋 このステップで学ぶこと
- 計算フィールドとは何か、なぜ重要なのか
- 計算フィールドの作成方法
- 基本演算(四則演算)
- IF文を使った条件分岐
- 利益率の計算例
- 文字列操作(結合、抽出)
- 計算フィールドのデバッグとエラー対処
前提: STEP 6-13でTableauの基本操作とフィルター・パラメータを理解していること
📍 1. 計算フィールドとは?
まずは身近な例で考えてみよう
計算フィールド(Calculated Field)は、既存のフィールドを使って新しいフィールドを作成する機能です。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. 計算フィールドの作成方法
【準備】サンプルデータを作成しよう
計算フィールドの練習用に、売上と原価が含まれるデータを用意します。
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」で保存してください。
【実践】計算フィールドを作成しよう
基本的な計算フィールドの作成方法を学びます。
- データペインの右上にある「▼」をクリック
- 「計算フィールドの作成」を選択
- 計算フィールドエディタが開く
- 設定を行う:
- 名前:フィールドの名称(例:利益)
- 計算式:数式を入力(例:[売上] – [原価])
- 「OK」をクリック
→ データペインの「メジャー」セクションに新しいフィールドが追加されます!
計算式でフィールド名を使う際は、[フィールド名]のように角括弧 [ ]で囲みます。
例:[売上]、[原価]、[個数]
これでTableauはそれがフィールドであると認識します。角括弧を忘れるとエラーになります!
➕ 3. 基本演算(四則演算)
Tableauの演算子
Tableauで使える基本的な演算子を覚えましょう。Excelとほぼ同じです。
| 演算 | 記号 | 例 | 結果 |
|---|---|---|---|
| 加算(足し算) | + | 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」に設定
- 「OK」をクリック
→ 0.25 が 25.0% と表示されるようになります!
【実践例3】単価の計算(ゼロ除算対策)
割り算を行う際は、分母が0になる可能性に注意が必要です。
問題:個数が0の場合、「売上 / 個数」はエラーになります。
IF文を使って、個数が0より大きい場合のみ計算を行います。
解説:
・個数が0より大きければ計算を実行
・そうでなければ0を返す
・これでゼロ除算エラーを防げます
数学と同じルールです。覚えておきましょう。
- ( ) 括弧
- ^ べき乗
- * / % 乗算、除算、剰余
- + – 加算、減算
例:5 + 3 * 2 = 11(3*2が先、その後+5)
括弧使用:(5 + 3) * 2 = 16(括弧内が先)
🔀 4. IF文を使った条件分岐
IF文の基本構文
IF文を使うと、「もし〜なら〜、そうでなければ〜」という条件分岐ができます。
例:
【実践例1】売上ランクの分類(シンプル)
売上を「高額」と「通常」に分類してみましょう。
名前:売上ランク
計算式:
解説:
・売上が10万円以上なら「高額」
・それ以外は「通常」
・文字列を返すので、ディメンション(カテゴリ)として扱われる
【実践例2】多段階の条件分岐(ELSEIF)
3つ以上のカテゴリに分類したい場合は、ELSEIFを使います。
名前:売上ランク詳細
計算式:
解説:
・20万円以上:S
・10万円以上:A
・5万円以上:B
・1万円以上:C
・それ以外:D
ELSEIFは上から順に評価されます。高い金額から書く必要があります。
もし「10万円以上」を最初に書くと、20万円の売上も「A」になってしまいます(10万円以上の条件を満たすため)。
【実践例3】複数条件の組み合わせ(AND/OR)
複数の条件を組み合わせることもできます。
名前:VIP顧客
計算式:
売上が10万円以上かつ個数が5個以上の場合のみ「VIP」
名前:特別対応
計算式:
売上が20万円以上または渋谷店の場合は「要対応」
| 演算子 | 意味 | 例 |
|---|---|---|
| = | 等しい | [店舗名] = “渋谷店” |
| <> または != | 等しくない | [売上] <> 0 |
| > | より大きい | [売上] > 100000 |
| >= | 以上 | [売上] >= 100000 |
| < | より小さい | [利益率] < 0.2 |
| <= | 以下 | [個数] <= 10 |
📝 5. 実務でよく使う計算例
例1:利益ステータスによる色分け
グラフの色を条件によって変える、実務でよく使うテクニックです。
名前:利益ステータス
計算式:
使い方:
1. 「利益ステータス」を「色」マークにドラッグ
2. 色を編集(高利益=緑、通常=青、低利益=黄、赤字=赤)
→ 利益額に応じてグラフの色が変わります!
例2:消費税込み価格
固定値を使った計算の例です。
名前:税込売上
計算式:
解説:売上に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 |
文字列の検索
特定の文字が含まれているかをチェックできます。
名前:PC商品フラグ
計算式:
例:
・商品名「ノートPC」→「PC関連」
・商品名「マウス」→「その他」
🐛 7. 計算フィールドのデバッグとエラー対処
よくあるエラーと対処法
計算フィールドを作成する際に遭遇しやすいエラーと、その解決方法を学びます。
原因:構文エラー(スペルミス、括弧の閉じ忘れなど)
対処:IF文には必ずENDを付ける。括弧の数が合っているか確認する。
原因:フィールド名のスペルミス、または存在しないフィールド
対処:データペインで正確なフィールド名を確認。角括弧 [ ] で囲む。
原因:数値と文字列を混在させている
対処:STR()で数値→文字列、INT()で文字列→整数に変換する。
- エラーメッセージを読む:どこが間違っているか手がかりがある
- シンプルに分割:複雑な式は段階的に作成(まず利益を作り、次に利益率を作る)
- 中間結果を確認:計算の途中経過を別フィールドで確認
- コメントを追加:// でコメント(複雑な式の説明用)
📝 STEP 14 のまとめ
- 計算フィールド:既存フィールドから新しいフィールドを作成
- 四則演算:+、-、*、/、%、^
- IF文:条件分岐(IF-THEN-ELSE、ELSEIF)
- 比較演算子:=、<>、>、>=、<、<=
- 論理演算:AND、OR、NOT
- 実務計算:利益、利益率、消費税込み価格
- 文字列操作:結合(+)、抽出(LEFT、RIGHT、MID)
- デバッグ:エラーメッセージの読み方、対処法
計算フィールドはデータを加工して新しい洞察を生み出す最強のツールです。元データにない「利益率」「売上ランク」「前年比」などを自在に作成できます。特にIF文(条件分岐)を使いこなせば、複雑なビジネスルールも実装可能。計算フィールドを制する者がTableauを制します!
次のSTEP 15では、「集計関数(SUM、AVG、COUNT、統計関数)」を学びます。計算フィールドと集計関数を組み合わせることで、より高度な分析が可能になります!
📝 理解度チェック
計算フィールドでフィールド名を使う際、どのように書きますか?
角括弧 [ ] でフィールド名を囲みます。
例:[売上]、[原価]、[個数]
角括弧を忘れるとTableauはフィールドとして認識せず、エラーになります。
IF文を使う際に必ず最後に書く必要があるキーワードは何ですか?
ENDです。
IF文の構文は必ず「IF … THEN … ELSE … END」のようにENDで終わる必要があります。ENDを忘れると「計算が無効です」というエラーが発生します。
ELSEIFを使って3段階以上に分類する際、なぜ「高い金額から書く」必要があるのですか?
ELSEIFは上から順に評価され、最初に条件を満たした時点で処理が終了するからです。
例えば、以下の順序で書くと問題が発生します:
売上が20万円でも「C」になってしまいます(1万円以上の条件を満たすため)。
ゼロ除算エラーを回避する計算式を書いてください。「売上 ÷ 個数」を計算し、個数が0の場合は0を返すようにしてください。
IF文で「個数が0より大きい場合のみ計算を実行」し、そうでなければ0を返すことで、ゼロ除算エラーを防ぎます。
🎯 実践演習
「利益」という名前の計算フィールドを作成してください。計算式は「売上 – 原価」です。棒グラフで店舗別の利益を表示してください。
- データペイン右上の▼ →「計算フィールドの作成」
- 名前:利益
- 計算式:
[売上] - [原価] - 「OK」をクリック
- 「利益」を行シェルフにドラッグ
- 「店舗名」を列シェルフにドラッグ
確認:店舗別の利益が棒グラフで表示される
「売上ランク」という計算フィールドを作成してください。売上が10万円以上なら「高額」、5万円以上なら「中額」、それ以外は「少額」と分類し、ランク別の売上合計を表示してください。
- 計算フィールドの作成
- 名前:売上ランク
- 計算式:
- 「OK」をクリック
- 「売上ランク」を列シェルフにドラッグ
- 「売上」を行シェルフにドラッグ
結果:高額、中額、少額の各ランクの売上合計が表示される
「利益率」と「利益率ステータス」という2つの計算フィールドを作成してください。利益率は「(売上-原価)÷売上」で計算し、パーセンテージ形式で表示してください。利益率ステータスは、利益率が30%以上なら「優良」、20%以上なら「良好」、10%以上なら「普通」、それ以外は「要改善」と分類してください。
- 名前:利益率
- 計算式:
([売上] - [原価]) / [売上] - 「OK」
- 「利益率」を右クリック →「既定のプロパティ」→「数値形式」
- 「パーセンテージ」、小数点以下1桁
- 名前:利益率ステータス
- 計算式:
ポイント:利益率は0〜1の小数なので、30%は0.3と書く
❓ よくある質問
よくある原因:
①フィールド名を角括弧 [ ] で囲んでいない
②IF文でENDを書き忘れている
③括弧の閉じ忘れ
④スペルミス
エラーメッセージに表示される行番号を確認し、その付近をチェックしましょう。
例:
IF [個数] > 0 THEN [売上] / [個数] ELSE 0 ENDこれで個数が0の場合は0を返し、エラーを回避できます。
Tableauはデフォルトで集計を行うため、状況によってはSUM([売上])と明示的に書く必要がある場合があります。また、演算の優先順位も確認しましょう。複雑な式は括弧 ( ) を使って明示的に順序を指定してください。
これは正常な動作です。数値を返す計算フィールドはメジャーになります。もし数値なのにディメンションになっている場合は、フィールドを右クリック →「ディメンションからメジャーに変換」を選択してください。
計算式を修正して「OK」を押すと、すべてのビューが自動的に更新されます。計算フィールドを使用しているすべてのシートに変更が反映されるので便利ですが、影響範囲を考慮して慎重に編集しましょう。
小数点以下の桁数も設定できます。計算結果が0〜1の小数の場合、パーセンテージ形式を選ぶと自動的に100倍して表示されます(例:0.25 → 25%)。
学習メモ
BIツール入門 - Step 14