この記事では、論理関数と Tableau での用途について紹介します。また、例を使用して論理計算を作成する方法を示します。
論理計算を使用する理由
論理計算を使用して、特定の条件が true か false かを判断できます (ブール論理)。たとえば、商品を販売する国ごとの売上が特定のしきい値を上回っているか下回っているかをすばやく確認したいとします。
論理計算は次のようになります。
SUM(Sales) > 1,000,000
Tableau で利用可能な論理関数:
関数 |
構文 |
説明 |
IN |
<expr1> IN <expr2>
|
例:
|
AND |
IF <expr1> AND <expr2> THEN <then> END
|
2 つの式で論理積を実行します。 例:
|
CASE |
CASE <expression> WHEN <value1> THEN <return1> WHEN
<value2> THEN <return2> ... ELSE <default return> END
|
論理テストを実行し、適切な値を返します。CASE 関数は 通常、CASE は IIF または IF THEN ELSE より簡単に使用できます。 一般的に、IF 関数は連続した任意のテストを実行するために使用し、CASE 関数は式に対する一致を検索するために使用します。しかし、CASE 関数は常に IF 関数として再記述できますが、一般的に CASE 関数の方が簡潔です。 通常は、グループを使用して、複雑な CASE 関数と同じ結果を得ることができます。 例:
|
ELSE |
IF <expr> THEN <then> ELSE <else> END
|
最初の true <expr> に対して <then> 値を返す、一連の式をテストします。 例:
|
ELSEIF |
IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END
|
最初の true <expr> に対して <then> 値を返す、一連の式をテストします。 例:
|
END |
IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END
|
最初の true <expr> に対して <then> 値を返す、一連の式をテストします。式の末尾に配置する必要があります。 例:
|
IF |
IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END
|
最初の true <expr> に対して <then> 値を返す、一連の式をテストします。 例:
|
IFNULL |
IFNULL(expr1, expr2)
|
NULL でない場合は <expr1> を返し、それ以外は <expr2> を返します。 例:
|
IIF |
IIF(test, then, else, [unknown])
|
条件を満たしているかどうかを確認し、TRUE の場合と FALSE の場合で異なる値を返します。不明な場合は任意の 3 番目の値もしくは NULL を返します。 例:
|
ISDATE |
ISDATE(string)
|
指定された文字列が有効な日付の場合、true を返します。 例:
|
ISNULL |
ISNULL(expression)
|
式が NULL の場合 (有効なデータが含まれていない場合) は true を返します。 例:
|
MAX |
MAX(expression) または Max(expr1, expr2) |
すべてのレコードで単一式の最大値を返すか、各レコードに対して 2 つの式の最大値を返します。 例:
|
MIN |
MIN(expression) または MIN(expr1, expr2) |
すべてのレコードで単一式の最小値を返すか、各レコードに対して 2 つの式の最小値を返します。 例:
|
NOT |
IF NOT <expr> THEN <then> END
|
1 つの式で論理否定を実行します。 例:
|
OR |
IF <expr1> OR <expr2> THEN <then> END
|
2 つの式で論理和を実行します。 例:
|
THEN |
IF <expre> THEN <then> [ELSEIF ,expr2> THEN <then2>...] [ELSE <else>] END
|
最初の true <expr> に対して <then> 値を返す、一連の式をテストします。 例:
|
WHEN |
CASE <expr> WHEN <Value1> THEN <return1> ... [ELSE <else>] END
|
<expr> と一致する最初の <value> を検索し、対応する <return> を返します。 例:
|
ZN |
ZN(expression)
|
NULL でない場合は <expression> を返し、それ以外は 0 を返します。 例:
|
論理計算の作成
次の手順に従って、論理計算の作成方法を学習してください。
-
Tableau Desktop で、Tableau に付属の "Sample - Superstore (サンプル - スーパーストア)" 保存済みデータ ソースに接続します。
-
ワークシートに移動します。
-
[データ] ペインから、"State (州)" を [行] シェルフまでドラッグします。
-
[データ] ペインから、"Category (カテゴリー)" を [行] シェルフにドラッグして、"State (州)" の右に配置します。
-
[データ] ペインから、"Sales (売上高)" を [列] シェルフまでドラッグします。
-
[分析] > [計算フィールドの作成] を選択します。
-
開いた計算エディターで、次の操作を実行します。
-
計算フィールドに "KPI" と名前を付けます。
-
次の式を入力します。
SUM([Profit]) > 0
メンバーが 1 人以上いるかどうかをこの計算で簡単に確認できます。1 人以上いる場合は true、いない場合は false が返されます。
-
終了したら、[OK] をクリックします。
新しい計算フィールドが [データ] ペインの [メジャー] の下に表示されます。他のフィールドと同様に、このフィールドを 1 つ以上のビジュアライゼーションで使用できます。
-
[データ] ペインから "KPI" を [マーク カード] の [色] にドラッグします。
これで、州ごとにどのカテゴリーの売上が落ちているかを確認できるようになりました。