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