Tableau での計算の書式設定

この記事では、Tableau で計算を作成したり書式設定する方法について説明します。計算の基本的なコンポーネントを一覧表示し、それぞれの適切な構文を説明します。

計算の構成ブロック

Tableau 計算の基本コンポーネントは次の 4 種類です。

  • 関数: フィールド内の値や要素の変換に使用するステートメント。
    • 関数には引数、または特定の情報が必要です。引数は関数によって異なり、フィールド、リテラル、パラメーター、ネストされた関数になります。
  • フィールド: データ ソースのディメンションやメジャー。
  • 演算子: 演算の意味を持つ記号。
  • リテラル式: 「高い」や「1,500」など、ハードコーディングされた定数値。

すべての計算に 4 つのすべてのコンポーネントを含める必要はありません。さらに、計算には次が含まれる場合があります。

  • パラメーター: 定数値を置き換えるために計算に挿入できるプレースホルダー変数。パラメーターの詳細については、パラメーターの作成を参照してください。
  • コメント: 計算またはその一部についてのメモ。計算の演算処理には含まれません。

各コンポーネントの使用方法と書式設定については、以降のセクションで説明します。

計算の例の説明

たとえば、日付 ([初回訪問]) に 14 日を足す次の計算を考えてみます。このような計算は、2 週間のフォローアップの日付を自動的に見つけるのに役立ちます。

DATEADD('day', 14, [Initial Visit)

この計算のコンポーネントは、次のように分割できます。

  • 関数: DATEADD。これには 3 つの引数が必要です。
    • 日付部分 ('日')
    • 間隔 (14)
    • 日付 ([初回訪問])
  • フィールド: [初回訪問]
  • 演算子: 該当なし
  • リテラル式:
    • 文字列リテラル: '日'
    • 数値リテラル: 14

この例では、ハードコーディングされた定数 14 をパラメーターに置き換えることができます。これにより、ユーザーは何日後にフォローアップの予定を確認するかを選択できるようになります。

DATEADD('day', [How many days out?], [Initial Visit)

計算の構文一覧

コンポーネント構文

関数

Tableau の全関数を書式設定する方法については、Tableau 関数 (アルファベット順)(新しいウィンドウでリンクが開く)またはTableau 関数 (カテゴリ別)を参照してください。

SUM(expression)

フィールド

多くの場合、計算ではフィールドを角かっこ [ ] で囲みます。

詳細についてはフィールドの構文を参照してください。

[Category]

演算子

+, -, *, /, %, ==, =, >, <, >=, <=, !=, <>, ^, AND, OR, NOT, ( ).

Tableau 計算で使用可能な演算子型と、計算式で実行される演算順序については、「演算子の構文」を参照してください。

[Price]*(1-[discount])

リテラル式

数値リテラルは数字で記述されます。

文字列リテラルは引用符で囲んで記述されます。

日付リテラルは記号 # を使用して記述されます。

ブール値リテラルは true または false として記述されます。

Null リテラルは null として記述されます。

詳細については、リテラル式の構文を参照してください。

1.3567

"Unprofitable"

#August 22, 2005#

true

Null

パラメーター

計算では、フィールドと同じように、パラメーターは角かっこ [ ] で囲まれます。詳細については、パラメーターの作成を参照してください。

[Bin Size]

コメント

計算にコメントを入力するには、2 個のスラッシュ // を入力します。詳細については、計算にコメントを追加するを参照してください。

複数行のコメントを追加するには、/ *を入力してコメントを開始し、* /を入力してコメントを終了します。

SUM([Sales]) / SUM([Profit])

/*John's calculation

To be used for profit ratio

Do not edit*/

計算の構文の詳細

次のセクションでは、Tableau 計算のさまざまなコンポーネントの詳細について、およびこれらを Tableau で書式設定する方法について説明します。

関数の構文

関数は、計算の主要コンポーネントであり、さまざまな目的に使用することができます。

Tableau のすべての関数は特定の構文で記述する必要があります。たとえば、次の計算では、LEN と LEFT という 2 つの関数と、いくつかの論理演算子 (IF、THEN、ELSE、END、および >) を使用しています。

IF LEN([Name])> 5 THEN LEFT([Name],5) ELSE [Name] END

  • LEN は、LEN([Name]) のように引数を 1 つ取り、[名前] フィールドの各値の文字数 (つまり、長さ) を返します。
  • LEFT は、LEFT([Name], 5) のようにフィールドと数値という 2 つの引数を取り、[名前] フィールドの各値の左から最初の 5 文字を返します。
  • 論理演算子 IF、THEN、ELSE、END が連携して論理テストを作成します。

この計算では名前の長さが評価され、名前が 5 文字を超える場合は最初の 5 文字のみが返されます。それ以外の場合は、名前全体を返します。

計算エディターでは、関数は青色で表示されます。

計算エディターの参照ペインを使用する

特定の関数の使用方法や書式設定は、いつでも検索可能です。Tableau で関数のリストを開くには次のようにします。

  1. [分析] > [計算フィールドの作成] を選択します。
  2. 計算エディターが開きます。エディターの右端の展開 (三角形) のアイコンをクリックします。

    関数のリストが表示され、ここから検索できます。リストから関数を選択すると、右端のセクションが更新され、その関数に必要な構文 (1)、説明 (2)、1 つまたは複数の例 (3) の情報が表示されます。

1 つの計算で複数の関数を使用する

計算では複数の関数を使用できます。例:

ZN(SUM([Order Quantity])) - WINDOW_AVG(SUM([Order Quantity]))

この計算には ZN、SUM、および WINDOW_AVG の 3 つの関数が使用されています。ZN 関数と WINDOW_AVG 関数は、減算演算子 (-) を使用して区切ります。

ある関数を別の関数の一部にする (ネストする) こともできます。たとえば、上記の例の ZN(SUM([Order Quantity])) の部分がこれにあたります。この場合、[Order Quantity] (注文高) の SUM はかっこで囲まれているため、ZN 関数より先に計算されます。この理由について詳しくはかっこを参照してください。

フィールドの構文

計算にはフィールドを挿入することができます。多くの場合、関数の構文から、計算のどの場所にフィールドを挿入すべきかがわかります。例: SUM(expression)

フィールド名にスペースが含まれるか一意でない場合、フィールド名は、角かっこ [ ] で囲んで計算に入れる必要があります。たとえば、[Sales Categories] とします。

使用する関数の型によって使用するフィールドの型が決まります。たとえば、SUM 関数の場合、数値のフィールドは挿入できますが、日付のフィールドは挿入できません。詳細については、計算のデータ型を理解するを参照してください。

また、計算の目的によって、計算に含めるフィールドが異なります。たとえば、利益率を計算したい場合は、次のようにデータ ソースの [Sales and Profit] フィールドを計算に使用します。

SUM([Sales])/SUM([Profit])

計算にフィールドを追加するには、次のいずれかを実行してください。

  • [データ] ペインまたはビューからフィールドをドラッグして計算エディターにドロップする。
  • 計算エディターでフィールド名を入力する。注: 計算エディターでフィールド名のオートコンプリート入力が試行されます。

Tableau 計算では、フィールドはオレンジ色で表示されます。

演算子の構文

計算を作成するには、Tableau でサポートされている演算子について理解している必要があります。このセクションでは、利用可能な基本的な演算子とその実行順序 (優先順位) について説明します。

Tableau 式では演算子は黒色で表示されます。

+ (加算)

演算子 + は、数値に適用される場合は加算を意味し、文字列に適用される場合は連結を意味します。日付に適用される場合は、日数を日付に加算するために使用できます。

例:

  • 7 + 3
  • Profit + Sales
  • 'abc' + 'def' = 'abcdef'
  • #April 15, 2024# + 15 = #April 30, 2024#

– (減算)

演算子 - は、数値に適用される場合は減算を意味し、式に適用される場合は符号反転を意味します。日付に適用される場合は、日数を日付から減算するために使用できます。そのため、2 つの日付の日数差を計算するためにも使用できます。

例:

  • 7 - 3
  • Profit - Sales
  • -(7+3) = -10
  • #April 16, 2024# - 15 = #April 1, 2024#
  • #April 15, 2024# - #April 8, 2024# = 7

* (乗算)

演算子 * は数値の乗算を意味します。

例: 5 * 4 = 20

/ (division)

演算子 / は数値の除算を意味します。

例: 20 / 4 = 5

% (剰余)

% 演算子は、除算演算の余りを返します。Modulo は整数のみを演算できます。

例: 9 % 2 = 1。(これは、9 を 2 で割ると 4 余り 1 になるためです)

==、=、>、<、>=、<=、!=、<> (比較)

式で使用できる基本的な比較演算子です。それらの意味は次のとおりです。

  • == または = (等しい)
  • > (より大きい)
  • < (未満)
  • >= (以上)
  • <= (以下)
  • != または <> (等しくない)

各演算子は 2 つの数値、日付、または文字列を比較して、TRUE、FALSE、または NULL のいずれかを返します。

^ (べき乗)

この記号は POWER 関数に相当します。指定された回数、数値を掛け合わせます。

例: 6^3 = 216

AND

論理演算子です。演算子の両側に式またはブール値を置く必要があります。

例: IIF(Profit =100 AND Sales =1000, "High", "Low")

詳細については、論理関数AND を参照してください。

OR

論理演算子です。演算子の両側に式またはブール値を置く必要があります。

例: IIF(Profit =100 OR Sales =1000, "High", "Low")

詳細については、論理関数OR を参照してください。

NOT

論理演算子です。別のブール値または式を符号反転するために使用できます。例は次のとおりです。

IIF(NOT(Sales = Profit),"Not Equal","Equal")

その他の演算子

CASE、ELSE、ELSEIF、IF、THEN、WHEN、END も論理関数に使用される演算子です。

演算子の優先順位

計算ではすべての演算子が特定の順序で評価されます。たとえば、2*1+2 は 4 に等しく、6 には等しくありません。これは乗算を加算より前に演算するためです (演算子 * は常に演算子 + より前に評価されます)。

2 つの演算子の優先順位が同じである場合 (加算と減算 (+) (-) など)、これらの演算子は式の中の位置に基づいて、左から右の順に評価されます。

かっこを使用すると優先順位を変更することができます。詳細については、かっこのセクションを参照してください。

優先順位演算子
1– (符号反転)
2^ (べき乗)
3*, /, %
4+, –
5==, >, <, >=, <=, !=、<>
6NOT
7AND
8OR

かっこ

かっこは、必要に応じて優先順位を強制的に変更するために使用できます。かっこで囲まれた演算子は、かっこの外にある演算子の前に評価され、一番内側のかっこから順に外側に向かって評価されます。

たとえば、(1 + (2*2+1)*(3*6/3)) = 31 のようになります。これは、最も内側のかっこ内の演算子が最初に実行されるためです。この計算は次の順序で行われます。

  1. (2*2+1) = 5
  2. (3*6/3) = 6
  3. (1+ 5*6) = 31

リテラル式の構文

このセクションは、Tableau 計算で使用するリテラル式の適切な構文について説明します。リテラル式とは、文字どおりに表された定数値のことです。関数を使用する場合は、リテラル式を使用して数値、文字列、日付などを表す必要が生じることがあります。

たとえば、日付を入力としてもつ関数があるとします。この場合、文字列と解釈される “May 1, 2005” と入力するのではなく、#May 1, 2005# と入力します。こうすると、引数を文字列から日付に変換する date 関数の演算と等価になります (日付関数 を参照してください)。

Tableau 計算では、数値、文字列、日付、ブール値、および null のリテラルを使用できます。次に、それぞれの型と書式設定方法について説明します。

Tableau 計算では、リテラル式は黒色と灰色で表されます。

数値リテラル

数値リテラルは数字で記述されます。たとえば、数字の 1 を数値リテラルとして入力する場合は、1 と入力します。数字の 0.25 を数値リテラルとして入力する場合は、0.25 と入力します。

文字列リテラル

文字列リテラルは、一重引用符または二重引用符を使用して記述できます。

文字列内に一重引用符または二重引用符が含まれている場合は、最も外側の文字列リテラルにもう一方のオプションを使用します。

たとえば、文字列 "cat" を文字列リテラルとして入力する場合は、'"cat"' と入力します。'cat' の場合は、"'cat'" と入力します。文字列を She's my friend を文字列リテラルとして入力する場合は、"She's my friend." のようにリテラルに二重引用符を使用します。

日付リテラル

日付リテラルはポンド記号 (#) で表されます。日付の “August 22, 2005” を日付リテラルとして入力する場合は、ISO フォーマットの日付である #2005-08-22# を入力します。

ブール値リテラル

ブール値リテラルは true または false として記述されます。“true” をブール値リテラルとして入力する場合は、true と入力します。

Null リテラル

Null リテラルは Null として記述されます。“Null” を Null リテラルとして入力する場合は、Null と入力します。

計算にパラメーターを追加する

パラメーターは、定数値の代わりに計算に挿入できるプレースホルダー変数です。計算でパラメーターを使用している場合は、ビューまたはダッシュボード内にパラメーター コントロールを表示すると、ユーザーがその値を動的に変更できます。

詳細については、パラメーターの使用を参照してください。

Tableau 計算では、パラメーターは紫色で表されます。

計算にコメントを追加する

コメントを追加して計算またはその一部のメモを作成することができます。このコメントは計算処理に含まれないことに注意してください。

計算にコメントを追加するには、2 個のフォワード スラッシュ (//) 文字を入力します。

例:

SUM([Sales])/SUM([Profit]) //My calculation

この例では //My calculation がコメントです。

コメントは 2 個のフォワード スラッシュ (//) で始まり、行末で終わります。計算を続行するには、新規の行で始める必要があります。

複数行のコメントを記述する際は、フォワード スラッシュの後にアスタリスク (/*) を入力して開始し、終了する際はアスタリスクの後にフォワード スラッシュ (*/) を入力します。例:

SUM([Sales])/SUM([Profit])
/* This calculation is
used for profit ratio.
Do not edit */

Tableau 計算では、コメントは灰色で表されます。

計算のデータ型を理解する

計算フィールドを作成するには、計算に複数のデータ型(新しいウィンドウでリンクが開く)を使用して組み合わせる方法に関する知識が必要です。計算式を定義する際に使用できる多くの関数は、特定のデータ型に適用しないと機能しません。

たとえば、DATEPART() 関数が引数として受け入れることができるのは、日付/日付時刻データ型だけです。「DATEPART('year',#2024-04-15#)」と入力した場合の有効な結果は 2024 と期待できます。「DATEPART('year',"Tom Sawyer")」と入力しても、有効な結果は期待できません。実際には、この例では "Tom Sawyer" は文字列であり、日付/日付時刻ではないため、エラーが返されます。

: Tableau はすべての計算を完全に検証しようとしますが、データ型エラーの中には、クエリがデータベースに対して実行されるまで検出されないものもあります。これらの問題は、[計算] ダイアログ ボックスに表示されるのではなく、クエリの際にエラー ダイアログとして表示されます。

Tableau によってサポートされているデータ型は次のとおりです。データ型間の変換については、型変換を参照してください。

文字列

ゼロ個以上の連続した文字。たとえば、"Wisconsin"、"ID-44400"、および "Tom Sawyer" はすべて文字列です。文字列は一重引用符または二重引用符で認識されます。引用符そのものを文字列に含めることもできます。これを行うには、引用符を繰り返して入力します。たとえば、'O''Hanrahan' のように使用します。

日付/日付時刻

日付または日付と時刻。たとえば、"January 23, 1972" または「January 23, 1972 12:32:00 AM"日付を日付/日付時刻として解釈させるには、日付を # 記号で囲みます。たとえば、"January 23, 1972" は文字列データ型として処理されますが、#January 23, 1972# は日付/日付時刻データ型として処理されます。

数値

Tableau 内の数値は、整数または浮動小数点数のいずれかです。

浮動小数点数では、一部の集計結果は予測ほど正確ではない場合があります。たとえば、合計がぴったり 0 になるはずの数値フィールドで、SUM 関数が -1.42e-14 などの値を返すことがあります。これは、電気電子学会 (IEEE) 754 浮動小数点標準で、数値をバイナリ形式で保存することが求められていることに起因します。つまり、数値は極めて高い精度で丸められる場合があります。小数点以下の数桁をより少なくするように数値を書式設定することにより、このような障害の可能性を除外できます。詳細については、Tableau で利用可能な数値関数:の ROUND を参照してください。

同じ理由から、同等かどうか浮動小数点値をテストする操作は予期しない動作をする可能性があります。そのような比較は、詳細レベルの式をディメンションとして使用する場合、カテゴリーのフィルターリング、アドホック グループの作成、IN/OUTセットの作成、およびデータ ブレンドで発生します。

: 最大の符号付き 64 ビット整数は 9,223,372,036,854,775,807 です。新しいデータ ソースに接続する場合、データ型が [数値 (整数)] に設定されている列はこの上限値まで対応できます。それを超える数値の場合、[整数 (数値)] は浮動小数点を使用しないため、"Null" が表示されます。データ型が [数値 (小数)] に設定されている場合は、より大きな値を収容できます。

ブール値

TRUE または FALSE が含まれているフィールド。比較の結果が不明な場合は、不明な値が返されます。たとえば、式 7 > Null は不明な値を返します。不明なブール値は自動的に Null に変換されます。

関連項目

Tableau での計算を理解する

簡単な計算フィールドの作成

Tableau での計算の開始

フィードバックをありがとうございます。フィードバックは正常に送信されました。ありがとうございます!