Tableauでは様々な計算が関数として標準で用意されているので、それらを利用して集計をすることができます。
本ページでは、Tableauの論理関数の中からよく利用するIF、CASE、AND、OR、ZN関数を紹介します。
IF THEN ELSE
IF文は条件式に敵う場合に指定の値を返す動きをする構文で、次のように記述します。
IF <expr> THEN <then>
[ELSEIF <expr2> THEN <then2>…]
[ELSE <else>]
END
exprがtrueの際にthenを返す、expr2がtrueの際にthen2を返すという一連の式を実行し、それに当てはまらない場合にはelseを実行します。
スーパーストアのデータを利用した例をみてみましょう。
利益が300より大きければ「利益」、-100より小さければ「損失」、-100以上300以下ならば「トントン」に分類するIF文を計算フィールドで定義し「損益」という名称で保存します。
計算結果を確認してみましょう。
データペインの「オーダーId」と作成した「損益」を行、「利益」をマークのテキストにドラッグ&ドロップします。
利益を大きさに応じて注文を3種類に分類できていることが分かります。
条件式を満たすかどうか評価してTRUEの場合とFALSEの場合に指定の値を返すIIF文もあります。
(ex.)利益が正ならば「黒字」、負ならば「赤字」を返す
IIF([利益] > 0, ‘黒字’, ‘赤字’)
YouTubeでも紹介していますのでご視聴ください。(0:33〜 IF THEN ELSE、2:50〜 ELSEIF、3:53〜 IFの入れ子、6:50〜 IIF)
CASE WHEN ELSE
CASE文は指定する式の値が条件に一致する場合に指定の値を返す動きをする構文で、次のように記述します。
CASE <expression>
WHEN <value1> THEN <return1>
WHEN <value2>THEN <return2>
…
ELSE <default return>
END
expressionを評価してvalue1と一致する場合にはreturn1を返し、value2と一致する場合にはreturn2を返すという一連の式を実行し、それらに当てはまらない場合にはreturn式が使用されます。
スーパーストアのデータを利用した例をみてみましょう。
オーダー日の英語の曜日名を取得して、曜日の先頭3文字との一致を条件に日本語の曜日名を割り振る計算式を定義し「曜日」という名称で保存します。
計算結果を確認してみましょう。
データペインから作成した「曜日」を行、「売上」をマークのテキストにドラッグ&ドロップします。
曜日毎に売上合計が算出されていることが分かります。
AND
ANDは2つ以上の式の論理積を計算し、次のように記述します。
(<expression1>) AND (<expression2>) AND (<expression3>) …
ANDで繋がった一連の式expression1、expression2、expression3…を評価してすべてTRUEの場合はTRUEを返し、そうれなければFALSEを返します。
スーパーストアのデータを利用した例をみてみましょう。
売上と利益の条件を両方満たす場合には「good」そうでなければ「not good」を返す計算式を定義し「AND」という名称で保存します。
計算結果を確認してみましょう。
データペインから「オーダーid」「売上」「利益」を行、作成した「AND」をマークのテキストにドラッグ&ドロップします。
売上と利益の条件を両方満たすオーダーが優良注文として表示されています。
YouTubeでも紹介していますのでご視聴ください。(5:58〜 )
OR
ORは2つ以上の式の論理和を計算し、次のように記述します。
(<expression1>) OR (<expression2>) OR(<expression3>) …
ORで繋がった一連の式expression1、expression2、expression3…を評価していずれかがTRUEの場合はTRUEを返し、すべてFALSEであればFALSEを返します。
スーパーストアのデータを利用した例をみてみましょう。
数量と利益の条件のいずれかを満たす場合には「large order」そうでなければ「normal」を返す計算式を定義し「OR」という名称で保存します。
計算結果を確認してみましょう。
データペインから「オーダーid」「オーダー日」「売上」「利益」を行、作成した「OR」をマークのテキストにドラッグ&ドロップします。
売上と利益の条件のうちどちらかを満たすオーダーが大口注文として表示されています。
YouTubeでも紹介していますのでご視聴ください。(4:35〜 )
ZN
ZNは条件式がNULLがあれば0を返す関数で次のように記述します。
ZN(<expression>)
expressionがNULLでない場合はexpressionを返し、NULLの場合には0を返します。
例えば以下のようなNULLを含むデータをTableauで集計してみたいと思います。
売上「Sales」を入力として処理するZN関数を定義して、「ZN_Sales」という名称で作成します。
計算結果を確認してみましょう。
データペインの「Product」を行、「メジャーネーム」を列、「メジャーバリュー」をマークのテキストにドラッグ&ドロップします。
ZN関数を利用すると、「null」表記が0に変換されていることが分かります。
条件式がNULLであればTRUE、そうでなければFALSEを返すISNULL文もあります。
本ページではTableauの論理関数の中からよく利用するIF、CASE、AND、OR、ZN関数を紹介しました。