Tableau にて論理演算子(AND、OR、NOT)を組み合わせて利用する際の注意点

TableauでAND、OR、NOTの論理関数を一つの計算フィールドで組み合わせて利用した時にエラーが表示され困ったことはありませんか?

Tableauの論理関数を調べているとAND、OR、NOT単体の記事は複数有りますが、同時利用に関する記事はあまりなく、解決するのに苦労しました。

本記事では、AND、OR、NOTの組み合わせ利用の際の注意点をサンプルスーパー・ストアのデータを利用して説明していきたいと思います。

下記条件に当てはまる売上を把握したい。

 オーダー日:2016年以降を含まない
 顧客区分:大企業
 出荷モード:ファースト クラス OR セカンド クラス
 地域:九州 OR 関東地方 OR 関西地方

下記式で目的の売上が把握できるような気がしますが、実際には計算エラーとなります。

なぜエラーが表示されてしまうのか?
これは設定されている演算子の優先順位を無視して論理関数を記載しているためだと考えられます。
tableauでは演算子が計算される優先順位が以下のように決定されており、この優先順位を理解した上で計算式を記載する必要があります。

※Tableau での計算の書式設定の情報をもとに筆者修正

演算子で最初に計算されるのは ()かっこ となり、次にNOT、AND、ORとの順で計算されていきます。演算子の優先順位を理解した上で先程の計算式を書き換えると以下のようになります。

()かっこで最初に計算させたいグループを作り、次にNOTを論理関数の一番TOPに配置、ANDでその他のフィルタリングしたい要素をつなげるといった構成になっています。
検算するときちんと計算されていることが確認できます。

()かっこ が最初に計算されそれぞれグループのようなものが構成され、次にNOT、AND、ORの順で各グループ間で計算が実施されていきます。異なる論理演算子を一つの計算フィール内で組み合わせて利用する場合は、演算子の実行順序を考える必要があるため、式の組み立てが複雑になります。NOT、AND、ORを組み合わせて利用する際には、NOT、AND、ORそれぞれの条件が評価される順序を確実に制御するため、明示的に()かっこを挿入するのがおすすめです。

この記事が気に入ったらサポートをしてみませんか?