論理関数

この記事では、論理関数と Tableau での用途について紹介します。また、例を使用して論理計算を作成する方法を示します。

論理計算を使用する理由

論理計算を使用して、特定の条件が true か false かを判断できます (ブール論理)。たとえば、商品を販売する国ごとの売上が特定のしきい値を上回っているか下回っているかをすばやく確認したいとします。

論理計算は次のようになります。

SUM(Sales) > 1,000,000

Tableau で利用可能な論理関数:

関数

構文

説明

IN<expr1> IN <expr2>

<expr1> の値が <expr2> の任意の値と一致する場合、TRUE を返します。

<expr2> の値は、Set、リテラル値のリスト、または組み合わせフィールドです。

例:

SUM([Cost]) IN (1000, 15, 200)

[Field] IN [SET]

AND

IF <expr1> AND <expr2> THEN <then> END

2 つの式で論理積を実行します。

例:

IF (ATTR([Market]) = "New Business" AND SUM([Sales]) > [Emerging Threshold] )THEN "Well Performing"

CASECASE <expression> WHEN <value1> THEN <return1> WHEN <value2> THEN <return2> ... ELSE <default return> END

論理テストを実行し、適切な値を返します。CASE 関数は expressionを評価し、value1value2 などの連続した値と比較して、その結果を返します。expression と一致する値が見つかった場合、CASE は対応する戻り値を返します。一致が見つからない場合は、既定の return 式が使用されます。既定の return がなく、一致した値がない場合は、Null が返されます。

CASE は、次のような WHEN IN 構造もサポートしています。

CASE <expression> WHEN IN <set1> THEN <return1> WHEN IN <combinedfield> THEN <return2> ... ELSE <default> END

WHEN IN で比較される値は、Set、リテラル値のリスト、または組み合わせフィールドである必要があります。

その他の注意事項

  • CASE と IF: 通常、CASE は IIF または IF THEN ELSE より簡単に使用できます。一般的に、IF 関数は連続した任意のテストを実行し、CASE 関数は式に対する一致を検索します。しかし、CASE 関数は常に IF 関数として再記述できますが、一般的に CASE 関数の方が簡潔です。
  • CASE とグループ: 通常は、グループを使用して、複雑な CASE 関数と同じ結果を得ることができます。自身のシナリオで、どちらのパフォーマンスが高いかを確認する必要がある場合があります。

例:

CASE [Region] WHEN 'West' THEN 1 WHEN 'East' THEN 2 ELSE 3 END

CASE LEFT(DATENAME('weekday',[Order Date]),3) WHEN 'Sun' THEN 0 WHEN 'Mon' THEN 1 WHEN 'Tue' THEN 2 WHEN 'Wed' THEN 3 WHEN 'Thu' THEN 4 WHEN 'Fri' THEN 5 WHEN 'Sat' THEN 6 END

ELSEIF <expr> THEN <then> ELSE <else> END

最初の true <expr> に対して <then> 値を返す、一連の式をテストします。

例:

If [Profit] > 0 THEN 'Profitable' ELSE 'Loss' END

ELSEIFIF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END

最初の true <expr> に対して <then> 値を返す、一連の式をテストします。

例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

ENDIF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END

最初の true <expr> に対して <then> 値を返す、一連の式をテストします。式の末尾に配置する必要があります。

例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

IFIF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END

最初の true <expr> に対して <then> 値を返す、一連の式をテストします。

例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

IFNULLIFNULL(expr1, expr2)

NULL でない場合は <expr1> を返し、それ以外は <expr2> を返します。

例:

IFNULL([Profit], 0)

IIFIIF(test, then, else, [unknown])

条件を満たしているかどうかを確認し、TRUE の場合と FALSE の場合で異なる値を返します。不明な場合は任意の 3 番目の値もしくは NULL を返します。

例:

IIF([Profit] > 0, 'Profit', 'Loss')

ISDATEISDATE(string)

指定された文字列が有効な日付の場合、true を返します。

例:

ISDATE("2004-04-15") = True

ISNULLISNULL(expression)

式が NULL の場合 (有効なデータが含まれていない場合) は true を返します。

例:

ISNULL([Profit])

MAXMAX(expression) または Max(expr1, expr2)

すべてのレコードで単一式の最大値を返すか、各レコードに対して 2 つの式の最大値を返します。

例:

MAX([Sales])

MINMIN(expression) または MIN(expr1, expr2)

すべてのレコードで単一式の最小値を返すか、各レコードに対して 2 つの式の最小値を返します。

例:

MIN([Profit])

NOTIF NOT <expr> THEN <then> END

1 つの式で論理否定を実行します。

例:

IF NOT [Profit] > 0 THEN "Unprofitable" END

ORIF <expr1> OR <expr2> THEN <then> END

2 つの式で論理和を実行します。

例:

IF [Profit] < 0 OR [Profit] = 0 THEN "Needs Improvement" END

THENIF <expre> THEN <then> [ELSEIF ,expr2> THEN <then2>...] [ELSE <else>] END

最初の true <expr> に対して <then> 値を返す、一連の式をテストします。

例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Break even' ELSE 'unprofitable' END

WHENCASE <expr> WHEN <Value1> THEN <return1> ... [ELSE <else>] END

<expr> と一致する最初の <value> を検索し、対応する <return> を返します。

例:

CASE [RomanNumberal] WHEN 'I' THEN 1 WHEN 'II' THEN 2 ELSE 3 END

ZNZN(expression)

NULL でない場合は <expression> を返し、それ以外は 0 を返します。

例:

ZN([Profit])


: これらのうちいくつかは、実際には論理演算子であり、青ではなく黒で表示されます。詳細については、「演算子の構文」を参照してください。

論理計算の作成

次の手順に従って、論理計算の作成方法を学習してください。

  1. Tableau Desktop で、Tableau に付属のサンプル - スーパーストア保存済みデータ ソースに接続します。

  2. ワークシートに移動します。

  3. [データ] ペインから、"州"[行] シェルフにドラッグします。

  4. [データ] ペインから、"カテゴリ"[行] シェルフにドラッグして、"State (州)" の右に配置します。

  5. [データ] ペインから、"売上"[列] シェルフにドラッグします。

  6. [分析] > [計算フィールドの作成] を選択します。

  7. 開いた計算エディターで、次の操作を実行します。

    • 計算フィールドに "KPI" と名前を付けます。

    • 次の式を入力します。

      SUM([Profit]) > 0

      メンバーが 1 人以上いるかどうかをこの計算で簡単に確認できます。1 人以上いる場合は true、いない場合は false が返されます。

    • 終了したら、[OK] をクリックします。

      新しい計算フィールドが [データ] ペインの [メジャー] の下に表示されます。他のフィールドと同様に、このフィールドを 1 つ以上のビジュアライゼーションで使用できます。

  8. [データ] ペインから "KPI" を [マーク カード] の [色] にドラッグします。

    これで、州ごとにどのカテゴリーの売上が落ちているかを確認できるようになりました。

関連項目

キー プログレス インジケーターの視覚化

Tableau で使用する関数

Tableau 関数 (カテゴリ別)

Tableau 関数 (アルファベット順)

ありがとうございます!