現場で“迷わないTableau関数リファレンス

はじめに:関数は“順番”で覚えると速い

関数は網羅的な一覧で眺めるより、使う頻度が高い順実務シナリオ別に覚えるのが最短です。本記事は、現場で最も使うものから並べ、ひと目でコピペできる最小例注意点を添えました。最後によくあるエラーの直し方参照用チートシートも付けています。


A. コア集計・統計(まずはここから)

集計関数はビューの粒度で働きます。比率は**「合計の比」**が基本。

合計・平均・最小最大

SUM([売上]) // 合計
AVG([利益]) // 平均
MIN([日付]) // 最小(最も古い日付)
MAX([日付]) // 最大(最新日付)

個数

COUNT([受注ID]) // 件数
COUNTD([顧客ID]) // ユニーク件数(重複なし)

中央値・分散・標準偏差・相関

MEDIAN([金額])
VAR([金額]) // 母分散
STDEV([金額]) // 母標準偏差
CORR([数量],[金額]) // 相関係数(-1~1)

単一値であることの保証

ATTR([カテゴリ]) // そのセルで値が一意なら表示、複数なら * を返す

比率(誤差の出ない定義)

[粗利率] = SUM([粗利]) / SUM([売上]) // 平均の平均ではなく、合計同士の比

B. 算術・丸め・変換(型とNULLの扱いが肝)

四則・剰余・冪

[収益] - [費用] [ID] % 2 = 0 // 偶奇判定
POWER([x], 3) // べき乗(^ でも可)

丸め・端数処理

ROUND([金額], 0) // 四捨五入
CEILING([金額]) // 切り上げ
FLOOR([金額]) // 切り下げ
ABS([差額]) // 絶対値

型変換・NULL対策

INT([文字数]) // 整数化
FLOAT([数量]) // 実数化
STR([年]) + '年' // 数値→文字列
DATE([文字列日付]) // 実日付に
DATETIME([文字列日時]) // 実日時に
IFNULL([値], 0) // NULL→代替
ZN([数値]) // 数値のNULLを0に(ゼロ埋め)
ISNULL([列]) // TRUE/FALSE を返す

コツ:文字列連結は + を使います。数値を混ぜる場合は STR() を忘れずに。


C. 文字列・正規表現(名前・コード・ログ処理の定番)

基本

LEFT([商品名], 4)
RIGHT([商品名], 3)
MID([型番], 3, 2)
LEN([顧客名]) // 文字数
TRIM([氏名]) // 前後空白除去(LTRIM/RTRIMも可)
UPPER([地域]) / LOWER([地域]) // 大文字/小文字
REPLACE([文], '旧', '新')
FIND([文], '検索語') // 1始まり

分割

SPLIT([カンマ区切り], ',', 2) // 第2要素(1始まり)

正規表現

REGEXP_MATCH([メール], '^[^@]+@[^@]+\.[^@]+$')
REGEXP_EXTRACT([住所], '(\d{3}-\d{4})', 1) // 郵便番号
REGEXP_REPLACE([電話], '\D', '') // 数字以外を削除

D. 日付・時間(粒度と分母を揃える)

現在時刻・今日

NOW() // 現在日時
TODAY() // 今日の日付

足し引き・差分

DATEADD('month', -1, [基準日]) // 1か月前
DATEDIFF('day', [開始], [終了]) // 日数差

粒度の固定・名前・番号

DATETRUNC('month', [日付]) // 月初に切り落とし
DATENAME('weekday', [日付]) // 曜日の名前(例:月曜日)
DATEPART('month', [日付]) // 月番号(1~12)

生成・解釈

MAKEDATE(2025, 4, 1)
MAKETIME(9, 30, 0)
MAKEDATETIME([日付], [時刻])
DATEPARSE('yyyy/MM/dd', [文字列日付])

注意:前年比など前期点参照が絡む計算は、表示範囲に比較相手を含める(例:過去13か月)。


E. 論理・制御(条件分岐と三値論理)

IF / CASE / IIF

IF [売上] >= 100000 THEN 'A'
ELSEIF [売上] >= 50000 THEN 'B'
ELSE 'C' END
CASE [地域] WHEN ‘関東’ THEN ‘東’
WHEN ‘関西’ THEN ‘西’
ELSE ‘その他’ END

IIF([分母]=0, Null, [分子]/[分母]) // 0割を安全に回避

論理演算と集合

[高粗利?] = SUM([粗利]) / SUM([売上]) >= 0.35
[対象地域?] = [地域] IN ('関東','東海','関西') // リスト
[主要都市?] = [都市-地域] IN [主要都市セット] // セット
NOT [除外フラグ]

F. 表計算(ウィンドウ系・ランニング系・ランキング)

**アドレッシング(計算の方向)**を「日付方向」などに正しく設定するのが要。

比較・移動平均

[前月差] = SUM([値]) - LOOKUP(SUM([値]), -1)
[前月比%] = IIF(LOOKUP(SUM([値]), -1)=0, Null, [前月差] / ABS(LOOKUP(SUM([値]), -1)))
[移動平均(7)] = WINDOW_AVG(SUM([値]), -6, 0)

累積・構成比・合計

[累積] = RUNNING_SUM(SUM([値]))
[構成比] = SUM([値]) / WINDOW_SUM(SUM([値])) // 見えている範囲に対する割合
TOTAL(SUM([値])) // 合計(テーブル計算)

順位・パーセンタイル

RANK(SUM([値])) // 既定は昇順・同順位あり
RANK_DENSE(SUM([値]), 'desc') // 降順・隙間なし
RANK_UNIQUE(SUM([値]), 'desc') // 一意の順位
PERCENTILE(SUM([値]), 0.9) // 90パーセンタイル(ウィンドウ内)

位置・サイズ

FIRST() // パーティション先頭からのオフセット
LAST() // 末尾からのオフセット
INDEX() // 1,2,3...の連番
SIZE() // パーティション内マーク数

G. LOD表現({ FIXED / INCLUDE / EXCLUDE })

フィルターで分母がブレない計算に最適。ビューの粒度と切り離して集計します。

顧客別売上(ビューの粒度に関係なく)

{ FIXED [顧客ID] : SUM([売上]) }

顧客別売上を合算(分母固定の比率)

[顧客別] = { FIXED [顧客ID] : SUM([売上]) }
[全社合計(固定)] = { FIXED : SUM([売上]) }
[全社比] = [顧客別] / [全社合計(固定)]

ビューより詳細に集計(INCLUDE)・粗く集計(EXCLUDE)

{ INCLUDE [SKU] : SUM([売上]) } // SKU単位で足してから表示粒度へ
{ EXCLUDE [地域] : SUM([売上]) } // 地域を無視した合計

H. 地理・空間(距離・バッファ・線/面の生成)

点・線・面

MAKEPOINT([緯度], [経度])
MAKELINE([始点], [終点])
MAKEPOLYGON([ポイント], [パスID]) // 頂点の順序で面を生成

距離・範囲・交差

DISTANCE([点A], [点B], 'km')
BUFFER([点], 1, 'km') // 1kmの円
INTERSECTS([ジオメトリA], [ジオメトリB]) // 交差判定(TRUE/FALSE)

緯度・経度の並び(通常は緯度, 経度)を取り違えないように。


I. ユーザー・セキュリティ(RLSでよく使う)

USERNAME() // ログイン名
FULLNAME() // 表示名
USERDOMAIN() // ドメイン(Server環境)
ISMEMBEROF('営業部') // 指定グループ所属か

例:ユーザーごとに閲覧範囲を制御

// 権限テーブル(ユーザーID×地域)と関係でつなぎ、データソースフィルターに:
[ユーザーID] = USERNAME()

J. 実務スニペット(貼って使える30行)

1) 年初来累積と当年フラグ

[当年?] = DATEPART('year',[日付]) = DATEPART('year', TODAY())
[YTD] = RUNNING_SUM( IF [当年?] THEN SUM([売上]) END )

2) 直近N日だけを表示(パラメータ連動)

[表示?] = DATEDIFF('day', [日付], TODAY()) <= [N日]

3) TopN+その他(可変)

[表示カテゴリ] = IF [TopNセット] THEN [カテゴリ] ELSE 'その他' END

4) 前年同月比(%)

[YoY差] = SUM([値]) - LOOKUP(SUM([値]), -12)
[YoY%] = IIF(LOOKUP(SUM([値]), -12)=0, Null, [YoY差] / ABS(LOOKUP(SUM([値]), -12)))

5) 文字から日付を安全に解釈(失敗時はNULL)

[取込日] = DATEPARSE('yyyy-MM-dd', [文字列日付])

6) “高粗利かつ高売上”の旗(AND/ORの優先順位に注意)

[主力?] = (SUM([売上]) >= 1000000) AND (SUM([粗利])/SUM([売上]) >= 0.35)

7) 異常閾値(中央値±3σ)

[μ] = WINDOW_MEDIAN(SUM([値]))
[σ] = WINDOW_STDEV(SUM([値]))
[上限] = [μ] + 3*[σ] [下限] = [μ] - 3*[σ] [異常?] = SUM([値]) > [上限] OR SUM([値]) < [下限]

8) 連番を用いた“等間引きの点”

[点を出す?] = INDEX() % [ステップ] = 0 OR FIRST()=0 OR LAST()=0

9) 文字整形(ハイフン除去・ゼロ埋め)

[ID整形] = LPAD(REGEXP_REPLACE([ID], '\D', ''), 8, '0')

10) 表示言語の切替(辞書テーブル連携)

[表示ラベル] = { FIXED [Key],[言語] : MIN([文言]) }

K. よくあるエラーと落とし穴(すぐ直す)

  1. 「集計と非集計を混在できません」
    → 比較の両辺を揃える:SUM([売上]) > SUM([目標])/単一値はATTR([目標])へ。

  2. 比率がズレる
    → 分母がフィルターで変わっていないか。LODで固定するか、コンテキスト化

  3. 前年比がNULL
    → 表示範囲に前年がない。13か月を含めるか、基準値を別計算で保持。

  4. 正規表現が重い
    → 可能なら前処理(ETL)で。ビュー内はSPLITLEFT/RIGHT優先。

  5. 論理が意図と違う
    ANDOR より強い。括弧で明示する。

  6. 日付が文字列のまま
    DATE()DATEPARSE()で実日付へ。DATETRUNCDATEADDが使えるようになる。

  7. NULLの三値論理
    → 条件式がNULLだとIFはTRUEにならない。ZN/IFNULLIIF(..., unknown)で設計する。


L. 参照用チートシート(カテゴリ別ミニ一覧)

  • 集計SUM, AVG, MIN, MAX, MEDIAN, COUNT, COUNTD, ATTR

  • 数学ABS, SIGN, ROUND, CEILING, FLOOR, POWER, SQRT, PI, EXP, LN, LOG

  • 文字列LEFT, RIGHT, MID, LEN, TRIM, LTRIM, RTRIM, UPPER, LOWER, REPLACE, FIND, SPLIT, STARTSWITH, ENDSWITH, CONTAINS, REGEXP_MATCH/EXTRACT/REPLACE

  • 日付TODAY, NOW, DATE, DATETIME, DATEADD, DATEDIFF, DATETRUNC, DATENAME, DATEPART, MAKEDATE, MAKETIME, MAKEDATETIME, DATEPARSE

  • 論理/NULLIF, CASE, IIF, AND, OR, NOT, IFNULL, ZN, ISNULL, ISDATE, IN

  • 表計算LOOKUP, WINDOW_SUM/AVG/MIN/MAX, WINDOW_STDEV/VAR, RUNNING_SUM/AVG/MIN/MAX, RANK/DENSE/UNIQUE, PERCENTILE, FIRST, LAST, INDEX, SIZE, TOTAL

  • LOD{ FIXED ... }, { INCLUDE ... }, { EXCLUDE ... }

  • 空間MAKEPOINT, MAKELINE, MAKEPOLYGON, DISTANCE, BUFFER, INTERSECTS

  • ユーザーUSERNAME, FULLNAME, USERDOMAIN, ISMEMBEROF

覚え方のコツ:まずA~Fを固める → LODで分母固定 → 空間/ユーザーは必要時に。


まとめ

  • 一覧を暗記するより、頻度順×短い例で身につけるほうが速く確実です。

  • 比率は合計の比、前年比は表示範囲に比較相手を含める、NULLは設計で潰す

  • LODで分母固定、表計算で推移や相対比較、文字列/日付処理で入力の揺れを正規化
    この型を押さえれば、ほとんどの実務KPIは短い式で安定的に表現できます。


📩 専門コンサルタントに相談してみませんか?
Tableauのライセンス選定や運用設計に少しでも不安がある方は、一度プロに相談してみるのがおすすめです。

  • どのライセンスを選べばいいか分からない

  • 導入したものの活用しきれていない

  • Power BIとの違いを整理したい

当社ではTableau導入から定着・活用まで一気通貫で支援します。業種・業務フローに応じた最適設計をご提案可能です。
▶ 詳細なサービス内容やご相談希望の方は、専用ページをご覧ください。(クリックしてください))

相談は無料です。お気軽にご連絡ください。

関連記事

この記事へのコメントはありません。

カテゴリー

アーカイブ