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

計算の構成ブロック

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

  • 関数 - フィールド内の値やメンバーの変換に使用するステートメント。

  • フィールド - データ ソースのディメンションやメジャー。

  • 演算子 - 演算の意味を持つ記号。

  • リテラル式 - "Profitable" (高収益) や "Unprofitable" (低収益) など、「文字どおりの意味を表す」定数値。

    たとえば、次のような計算があるとします。

    IF [Profit per Day] > 000 THEN "Highly Profitable"
    ELSEIF [Profit per Day] <= 0 THEN "Unprofitable"
    ELSE "Profitable"
    END

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

    関数: IF、THEN、ELSEIF、ELSE、END

    フィールド: 1 日あたりの利益

    演算子: > および <=

    リテラル式:

    • 文字列リテラル: "Highly Profitable"、"Unprofitable"、"Profitable"
    • 数値リテラル: 2000 および 0

    すべての計算に 4 つのすべてのコンポーネントを含める必要はありません。たとえば、SUM([Sales])/SUM([Cost]) という計算のようにリテラル式を含まない計算があります。ここには関数 SUM、除算演算子 (/)、フィールド "Sales and Cost (売上とコスト)" のみが含まれています。

さらに、計算には次が含まれる場合があります。

  • パラメーター - 定数値を置換するために計算に挿入可能なプレースホルダー変数です。

  • コメント - 計算またはその一部についてのメモで、計算の演算処理に含まれません。

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

計算の構文一覧

コンポーネント構文

関数

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

SUM (expression)

フィールド

多くの場合、計算ではフィールドを角かっこ [ ] で囲みます。詳細についてはフィールドの構文を参照してください。

[Sales]

演算子

+, -, *, /, %, ==, =, >, <, >=, <=, !=, <>, ^, AND, OR, NOT, ( ).Tableau 計算で使用可能な演算子型と、計算式で実行される演算順序については、「演算子の構文」を参照してください。

[Profit] - [Sales]

リテラル式

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

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

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

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

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

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

1.3567 または 27

"Unprofitable"

#August 22, 2005#

true または false

Null

パラメーター

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

[Profit Bin Size]

コメント

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

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

SUM([Sales])/SUM([Profit]) //John's calculation

//To be used for profit ratio

//Do not edit

計算の構文の詳細

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

関数の構文

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

Tableau 計算では、関数は青色で表示されます。

Tableau のすべての関数は特定の構文で記述する必要があります。たとえば、SUM 関数には次のような構文が必要です: SUM(expression) (例: SUM([Sales]))。一方、PERCENTILE 関数では次の構文が必要です: PERCENTILE(expression, number) (例: PERCENTILE([Sales],0.90))。

特定の関数の使用方法や書式設定は、いつでも検索可能です。

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, 2004# + 15 = #April 30, 2004#

– (減算)

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

7 - 3

Profit - Sales

-(7+3) = -10

#April 16, 2004# - 15 = #April 1, 2004#

#April 15, 2004# - #April 8, 2004# = 7

* (乗算)

演算子 * は数値の乗算を意味します。たとえば、5 * 4 = 20 のようになります。

/ (division)

演算子 / は数値の除算を意味します。たとえば、20 / 4 = 5 のようになります。

% (剰余)

演算子 % は 除算演算の 剰余を返します。たとえば、9 % 2 は 1 を返します。これは、9 を 2 で割ると 4 余り 1 になるためです。Modulo は整数のみを演算できます。

==, =, >, <, >=, <=, !=, <>(comparisons)

式で使用できる基本的な比較演算子です。各演算子の意味は次のとおりです。== または = (等しい)、> (より大きい)、<(より小さい)、>= (以上)、<= (以下)、!= および <> (等しくない)

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

^ (べき乗)

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

例:

6^3 = 216

AND

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

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

両方の式が TRUE である場合 (つまり、FALSENULL のいずれでもない場合)、結果は TRUE になります。いずれかの式が NULL である場合、結果は NULL になります。それ以外の場合、結果は FALSE です。

AND 比較の結果がワークシートに表示される計算を作成すると、Tableau では TRUE と FALSE が表示されます。この設定を変更するには、書式設定ダイアログ ボックスの [書式設定] エリアを使用してください。

AND 演算子は、"短絡評価" を採用しています。そのため、最初の式が FALSE として評価された場合、2 番目の式は全く評価されません。これは、最初の式が FALSE として評価され、2 番目の式でエラーが発生した場合に有用です。なぜなら、短絡評価が採用されている場合、2 番目の式が評価されることはないからです。

OR

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

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

いずれかの式が TRUE である場合、結果は TRUE になります。両方の式が FALSE の場合、結果は FALSE になります。両方の式が NULL の場合、結果は NULL になります。

OR 比較の結果がワークシートに表示される計算を作成すると、Tableau では TRUE と FALSE が表示されます。この設定を変更するには、書式設定ダイアログ ボックスの [書式設定] エリアを使用してください。

OR 演算子は、"短絡評価" を採用しています。そのため、最初の式が TRUE として評価された場合、2番目の式はまったく評価されません。このことは、最初の式が TRUE として評価されているときに、2 番目の式でエラーが発生した場合に役に立ちます。なぜならば、短絡評価が採用されている場合、2 番目の式は一度も評価されないからです。

NOT

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

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

演算子の優先順位

計算ではすべての演算子が特定の順序で評価されます。たとえば、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 と入力します。

文字列リテラル

文字列リテラルは、一重引用符または二重引用符を使用して記述できます。文字列に一重引用符または二重引用符が含まれている場合は、引用符を 2 回続けて入力してください。たとえば、文字列の “cat” を文字列リテラルとして入力する場合は、'cat' または "cat" と入力します。

さらに、文字列 “She’s my friend.” を文字列リテラルとして入力する場合は、'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 計算では、パラメーターは紫色で表されます。

: Web でのビューの編集時にパラメーターを作成することはできません。

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

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

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

例:

SUM([Sales])/SUM([Profit]) //John’s calculation

この例では、//John’s calculation がコメントです。

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

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

SUM([Sales])/SUM([Profit]) /* John's calculation
To be used for profit ratio
Do not edit */

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

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

Tableau では、文字列、日付/日付時刻、数値、ブール値の各データ型がサポートされています。計算フィールドを作成するには、計算に複数のデータ型を使用して組み合わせる方法に関する知識が必要です。計算式を定義する際に使用できる多くの関数は、特定のデータ型に適用しないと機能しません。

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

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

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

STRING

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

DATE/DATETIME

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

NUMBER

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

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

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

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

BOOLEAN

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

関連項目

Tableau での計算を理解する

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

Tableau での計算の開始

ありがとうございます!