Tableau Desktop 使い方 関数(4) 〜論理関数

Tableauでは様々な計算が関数として標準で用意されているので、それらを利用して集計をすることができます。

本ページでは、Tableauの論理関数の中からよく利用するIF、CASE、AND、OR、ZN関数を紹介します。

IF THEN ELSE

IF文は条件式に敵う場合に指定の値を返す動きをする構文で、次のように記述します。

IF <expr> THEN <then>
[ELSEIF <expr2> THEN <then2>…]

[ELSE <else>]
END

exprtrueの際にthenを返す、expr2trueの際にthen2を返すという一連の式を実行し、それに当てはまらない場合にはelseを実行します。

スーパーストアのデータを利用した例をみてみましょう。

やってみよう!

利益を大きさに応じて注文を「利益」「損失」「トントン」の3種類に分類してみましょう。

利益が300より大きければ「利益」、-100より小さければ「損失」、-100以上300以下ならば「トントン」に分類するIF文を計算フィールドで定義し「損益」という名称で保存します。
論理関数IFを利用した計算

計算結果を確認してみましょう。
データペインの「オーダーId」と作成した「損益」を行、「利益」をマークのテキストにドラッグ&ドロップします。
論理関数IFを利用した計算式の結果
利益を大きさに応じて注文を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文字との一致を条件に日本語の曜日名を割り振る計算式を定義し「曜日」という名称で保存します。
論理関数CASEを利用した計算

日付を英語の曜日名に変換するDATENAME関数と最初のn文字を取り出すLEFT関数を併用しています。

計算結果を確認してみましょう。
データペインから作成した「曜日」を行、「売上」をマークのテキストにドラッグ&ドロップします。
論理関数CASEを利用した計算式の結果
曜日毎に売上合計が算出されていることが分かります。

AND

ANDは2つ以上の式の論理積を計算し、次のように記述します。

(<expression1>) AND (<expression2>) AND (<expression3>) 

ANDで繋がった一連の式expression1expression2expression3…を評価してすべてTRUEの場合はTRUEを返し、そうれなければFALSEを返します。

スーパーストアのデータを利用した例をみてみましょう。

やってみよう!

売上があり利益も黒字のオーダーを表示してみましょう。

売上と利益の条件を両方満たす場合には「good」そうでなければ「not good」を返す計算式を定義し「AND」という名称で保存します。

計算結果を確認してみましょう。
データペインから「オーダーid」「売上」「利益」を行、作成した「AND」をマークのテキストにドラッグ&ドロップします。
TableauでANDを適用
売上と利益の条件を両方満たすオーダーが優良注文として表示されています。

YouTubeでも紹介していますのでご視聴ください。(5:58〜 )

OR

ORは2つ以上の式の論理和を計算し、次のように記述します。

(<expression1>) OR (<expression2>) OR(<expression3>) 

ORで繋がった一連の式expression1expression2expression3…を評価していずれかがTRUEの場合はTRUEを返し、すべてFALSEであればFALSEを返します。

スーパーストアのデータを利用した例をみてみましょう。

やってみよう!

売上が10万円以上もしくは利益が3万円以上のオーダーを表示してみましょう。

数量と利益の条件のいずれかを満たす場合には「large order」そうでなければ「normal」を返す計算式を定義し「OR」という名称で保存します。

計算結果を確認してみましょう。
データペインから「オーダーid」「オーダー日」「売上」「利益」を行、作成した「OR」をマークのテキストにドラッグ&ドロップします。
TableauでOR関数を適用
売上と利益の条件のうちどちらかを満たすオーダーが大口注文として表示されています。

YouTubeでも紹介していますのでご視聴ください。(4:35〜 )

ZN

ZNは条件式がNULLがあれば0を返す関数で次のように記述します。

ZN(<expression>)

expressionがNULLでない場合はexpressionを返し、NULLの場合には0を返します。

例えば以下のようなNULLを含むデータをTableauで集計してみたいと思います。
サンプルデータの読み込み

売上「Sales」を入力として処理するZN関数を定義して、「ZN_Sales」という名称で作成します。
論理関数ZNを利用した計算

計算結果を確認してみましょう。
データペインの「Product」を行、「メジャーネーム」を列、「メジャーバリュー」をマークのテキストにドラッグ&ドロップします。
論理関数ZNを利用した計算式の結果
ZN関数を利用すると、「null」表記が0に変換されていることが分かります。

条件式がNULLであればTRUE、そうでなければFALSEを返すISNULL文もあります。

本ページではTableauの論理関数の中からよく利用するIF、CASE、AND、OR、ZN関数を紹介しました。

タイトルとURLをコピーしました