---
schema_version: "1"
id: 178e1c815c8746a22e6dce7bcdffe829c69e8d6bd87571b9bd2c045185c681b2
title: 論理関数
collection: tableau
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/tableau/current/ja-jp/pro/desktop/functions_functions_logical.md
canonical_url: https://help.tableau.com/current/pro/desktop/ja-jp/functions_functions_logical.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 6082c94e59983c871a614453cebc897725c32d968ef1a2cff53543a50b7424ef
description: Reference for Tableau logical functions such as IF, CASE, and AND.
---
[メイン コンテンツに進む](#main-content)

# 論理関数

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

## 論理計算を使用する理由

論理計算を使用すると、特定の条件が true か false かを判断できます (ブール論理)。たとえば、特定の限界値に基づいて値を分類したい場合があります。

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

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

## Tableau で利用可能な論理関数と演算子

### AND

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>&lt;expr1&gt; AND &lt;expr2&gt;</code>
                            </td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>2 つの式の論理積を実行します  (この論理計算は、両方が true の場合に true を返します)。</td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td>ブール値 (True または False)</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre>IF [Season] = "Spring" AND "[Season] = "Fall" <br>THEN "It's the apocalypse and footwear doesn't matter" <br>END</pre>
                                <p><i>「(季節 = 春) と (季節 = 秋) の両方が同時に真である場合は、「黙示録なので履き物は関係ありません」と返します。」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p>多くの場合、<a href="#IF" class="xref">IF</a> や <a href="#IIF" class="xref">IIF</a> とともに使用されます。<a href="#NOT" class="xref">NOT</a> と <a href="#OR" class="xref">OR</a> も参照してください。</p>
                                <p>両方の式が <code>TRUE</code> の場合 (つまり <code>FALSE</code> でも <code>NULL</code> でもない場合)、結果は <code>TRUE</code> になります。いずれかの式が <code>NULL</code> の場合、結果は <code>NULL</code> になります。それ以外の場合、結果は <code>FALSE</code> になります。</p>
                                <p><code>AND</code> 比較の結果がワークシートに表示される計算を作成すると、Tableau では <code>TRUE</code> や <code>FALSE</code> と表示されます。この設定を変更するには、書式設定ダイアログ ボックスの [書式設定] エリアを使用してください。</p>
                                <p class="note"><b>注</b>:&nbsp;<code>AND</code> 演算子は、<i>「短絡評価」</i>を採用しています。そのため、最初の式が <code>FALSE</code> として評価された場合、2 番目の式はまったく評価されません。このことは、最初の式が <code>FALSE</code> として評価されているときに、2 番目の式でエラーが発生した場合に役に立ちます。なぜならば、短絡評価が採用されている場合、2 番目の式は一度も評価されないからです。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### CASE

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code><b>CASE</b> &lt;expression&gt; 
                        <br>WHEN &lt;value1&gt; THEN &lt;then1&gt; 
                        <br>WHEN &lt;value2&gt; THEN &lt;then2&gt; 
                        <br>...
                        <br>[ELSE &lt;default&gt;]<br>END</code>
                            </td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td><code>&lt;then&gt;</code> の値のデータ型に応じて異なります。</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>
                                <p><code>expression</code> を評価し、指定されたオプション (<code>&lt;value1&gt;</code>、<code>&lt;value2&gt;</code> など) と比較します。<code>value</code> が式と一致した場合、CASE は対応する <code>return</code> を返します。一致しなかった場合は、(オプションの) 既定値を返します。既定値も一致した値もない場合は、Null を返します。</p>
                            </td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve"><code><b>CASE</b> [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br>END</code></pre>
                                <p><i>「[季節] フィールドを確認してください。値が「夏」の場合は、「サンダル」を返します。値が「冬」の場合は、「ブーツ」を返します。[季節] フィールドの内容が計算内の選択肢と一致しない場合は、「スニーカー」を返します。」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><a href="#IF" class="xref">IF</a> と <a href="#IIF" class="xref">IIF</a> も参照してください。</p>
                                <p><a href="#WHEN" class="xref">WHEN</a>、<a href="#THEN" class="xref">THEN</a>、<a href="#ELSE" class="xref">ELSE</a>、<a href="#END" class="xref">END</a> とともに使用されます。</p>
                                <blockquote><p>[!TIP]</p><p><b>ヒント</b>: 多くの場合、グループを使用して複雑な CASE 関数と同じ結果を取得したり、前の例のように CASE を使用してネイティブのグループ化機能を置き換えたりすることができます。自身のシナリオで、どちらの方がパフォーマンスがよいかを確認できます。</p></blockquote>
                            </td>
                        </tr>
                    </tbody>
                </table>

### ELSE

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>CASE &lt;expression&gt; 
							<br>WHEN &lt;value1&gt; THEN &lt;then1&gt; 
							<br>WHEN &lt;value2&gt; THEN &lt;then2&gt; 
							<br>...
						<br>[<b>ELSE</b> &lt;default&gt;]<br>END</code>
                            </td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td><code>IF</code> 式または <code>CASE</code> 式で、テスト結果がいずれも true でない場合に返す既定値を指定するためのオプションの部分。</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br><b>ELSE</b>&nbsp;'Sneakers'&nbsp;<br>END</pre><pre>CASE [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br><b>ELSE</b> 'Sneakers' <br>END</pre>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><a href="#CASE" class="xref">CASE</a>、<a href="#WHEN" class="xref">WHEN</a>、<a href="#IF" class="xref">IF</a>、<a href="#ELSEIF" class="xref">ELSEIF</a>、<a href="#THEN" class="xref">THEN</a>、<a href="#END" class="xref">END</a> とともに使用されます。</p>
                                <p><code>ELSE</code> は <code>CASE</code> と <code>IF</code> のオプションです。<code>ELSE</code> が指定されていない計算では、<code>&lt;test&gt;</code> がいずれも true でない場合、計算全体で Null が返されます。</p>
                                <p><code>ELSE</code> は条件 (<code>[Season] = "Winter"</code> など) を必要とせず、Null 処理の一種と考えることができます。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### ELSEIF

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>[<b>ELSEIF</b> &lt;test2&gt; THEN &lt;then2&gt;]</code>
                            </td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td><code>IF</code> 式のオプションの部分であり、最初の IF に一致しない場合に追加の条件を指定するために使用されます。</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">IF [Season] = "Summer" THEN 'Sandals' <br><b>ELSEIF</b> [Season] = "Winter" THEN 'Boots' <br><b>ELSEIF</b> [Season] = "Spring" THEN 'Sneakers' <br><b>ELSEIF</b> [Season] = "Autumn" THEN 'Sneakers'<br>ELSE 'Bare feet' <br>END</pre>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><a href="#IF" class="xref">IF</a>、<a href="#THEN" class="xref">THEN</a>、<a href="#ELSE" class="xref">ELSE</a>、<a href="#END" class="xref">END</a> とともに使用されます。</p>
                                <p><code>ELSEIF</code> は、追加の <code>IF</code> 句と考えることができます。<code>ELSEIF</code> はオプションであり、複数回繰り返すことができます。</p>
                                <p><code>ELSE</code> とは異なり、<code>ELSEIF</code> には条件が必要です (<code>[Season] = "Winter"</code> など)。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### END

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>定義</td>
                            <td><code>IF</code> 式または <code>CASE</code> 式を閉じるために使用されます。</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br><b>END</b></pre>
                                <p><i>「「季節」=「夏」の場合、「サンダル」を返します。そうでない場合は、次の式を確認します。「季節」=「冬」の場合、「ブーツ」を返します。どちらの式も true でない場合は、「スニーカー」を返します。」</i>
                                </p><pre>CASE [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br><b>END</b></pre>
                                <p><i><i>「[季節] フィールドを確認してください。値が「夏」の場合は、「サンダル」を返します。値が「冬」の場合は、「ブーツ」を返します。[季節] フィールドの内容が計算内の選択肢と一致しない場合は、「スニーカー」を返します。」</i></i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><a href="#CASE" class="xref">CASE</a>、<a href="#WHEN" class="xref">WHEN</a>、<a href="#IF" class="xref">IF</a>、<a href="#ELSEIF" class="xref">ELSEIF</a>、<a href="#THEN" class="xref">THEN</a>、<a href="#ELSE" class="xref">ELSE</a> とともに使用されます。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### IF

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code><b>IF</b> &lt;test1&gt; THEN &lt;then1&gt; <br>[ELSEIF &lt;test2&gt; THEN &lt;then2&gt;...]<br>[ELSE &lt;default&gt;] <br>END</code>
                            </td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td><code>&lt;then&gt;</code> の値のデータ型に応じて異なります。</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>
                                <p>一連の式をテストし、最初の真の <code>&lt;test&gt;</code> の <code>&lt;then&gt;</code> 値を返します。</p>
                            </td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br><b>END</b></pre>
                                <p><i>「「季節」=「夏」の場合、「サンダル」を返します。そうでない場合は、次の式を確認します。「季節」=「冬」の場合、「ブーツ」を返します。どちらの式も true でない場合は、「スニーカー」を返します。」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><a href="#IF" class="xref">IF</a> と <a href="#IIF" class="xref">IIF</a> も参照してください。</p>
                                <p><a href="#ELSEIF" class="xref">ELSEIF</a>、<a href="#THEN" class="xref">THEN</a>、<a href="#ELSE" class="xref">ELSE</a>、<a href="#END" class="xref">END</a> とともに使用されます。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### IFNULL

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>IFNULL(expr1, expr2)</code>
                            </td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td><code>&lt;expr&gt;</code> の値のデータ型に応じて異なります。</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>
                                <p>Null 以外の場合は <code>&lt;expr1&gt;</code> を返し、それ以外の場合は <code>&lt;expr2&gt;</code> を返します。</p>
                            </td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">IFNULL([Assigned Room], "TBD")</pre>
                                <p><i>「[割り当てられた部屋] フィールドが Null でない場合は、その値を返します。[割り当てられた部屋] フィールドが Null の場合は、代わりに「TBD」を返します。」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><a href="#ISNULL" class="xref">ISNULL</a> と比較します。<code>IFNULL</code> は常に値を返します。<code>ISNULL</code> はブール値 (True または False) を返します。</p>
                                <p><a href="#ZN" class="xref">ZN</a> も参照してください。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### IIF

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code><b>IIF</b>(&lt;test&gt;, &lt;then&gt;, &lt;else&gt;, [&lt;unknown&gt;])</code>
                            </td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td>式内の値のデータ型によって異なります。</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>条件が満たされているかどうかを確認し (<code>&lt;test&gt;</code>)、テストが true の場合は <code>&lt;then&gt;</code> を返し、テストが false の場合は <code>&lt;else&gt;</code> を返し、テストが Null の場合は <code>&lt;unknown&gt;</code> のオプションの値を返します。オプションの unknown (不明) が指定されていない場合は、<code>IIF</code> は Null を返します。</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">IIF([Season] = 'Summer', 'Sandals', 'Other footwear')</pre>
                                <p><i>「「季節」=「夏」の場合、「サンダル」を返します。そうでない場合は、「その他の履物」を返します。」</i>
                                </p><pre xml:space="preserve">IIF([Season] = 'Summer', 'Sandals', <br>   IIF('Season' = 'Winter', 'Boots',  'Other footwear')<br>)</pre>
                                <p><i>「「季節」=「夏」の場合、「サンダル」を返します。そうでない場合は、次の式を確認します。「季節」=「冬」の場合、「ブーツ」を返します。どちらも true でない場合は、「スニーカー」を返します。」</i>
                                </p><pre xml:space="preserve">IIF('Season' = 'Summer', 'Sandals', <br>   IIF('Season' = 'Winter', 'Boots',  <br>      IIF('Season' = 'Spring', 'Sneakers', 'Other footwear')<br>   )<br>)</pre>
                                <p><i>「「季節」=「夏」の場合、「サンダル」を返します。そうでない場合は、次の式を確認します。「季節」=「冬」の場合、「ブーツ」を返します。どちらの式も true でない場合は、「スニーカー」を返します。」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><a href="#IF" class="xref">IF</a> と <a href="#CASE" class="xref">CASE</a> も参照してください。</p>
                                <p><code>IIF</code> には、(<code>IF</code> のように) <code>ELSEIF</code> や、(<code>CASE</code> のように) 繰り返される <code>WHEN</code> 句に相当するものはありません。代わりに、<code>IIF</code> ステートメントを <code>&lt;unknown&gt;</code> 要素としてネストすることで、複数のテストを順番に評価できます。最初 (一番外側) の true が返されます。</p>
                                <p>つまり、以下の計算では、A=A が true と評価されるとすぐに式の評価をやめるため、結果はオレンジではなく赤になります。</p>
                                <p><code>IIF('A' = 'A', 'Red', IIF('B' = 'B', 'Orange',  IIF('C' = 'D', 'Yellow', 'Green')))</code>
                                </p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### IN

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>&lt;expr1&gt; IN &lt;expr2&gt;</code>
                            </td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td>ブール値 (True または False)</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td><code>&lt;expr1&gt;</code> の値が <code>&lt;expr2&gt;</code> のいずれかの値と一致する場合、<code>TRUE</code> を返します。</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">SUM([Cost]) IN&nbsp;(1000, 15, 200)</pre>
                                <p><i>「コスト フィールドの値は 1000、15、または 200 ですか?」</i>
                                </p><pre xml:space="preserve">[Field] IN&nbsp;[Set]</pre>
                                <p><i>「フィールドの値はセット内に存在しますか?」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><code>&lt;expr2&gt;</code> の値は、セット、リテラル値のリスト、または組み合わせフィールドにすることができます。</p>
                                <p><a href="#WHEN" class="xref">WHEN</a> も参照してください。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### ISDATE

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>ISDATE(string)</code>
                            </td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td>ブール値 (True または False)</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>指定された <code>&lt;string&gt;</code> が有効な日付の場合、true を返します。入力式は文字列 (テキスト) フィールドである必要があります。</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">ISDATE("2018-09-22")</pre>
                                <p><i>「文字列 2018-09-22 は適切にフォーマットされた日付ですか?」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p>有効な日付とみなされる日付は、計算を評価するシステムの<a href="https://help.tableau.com/current/server/ja-jp/lang_intro.htm" target="_blank">ロケール</a>によって異なります。例:</p>
                                <p>アメリカでは:</p>
                                <ul>
                                    <li><code>ISDATE("2018-09-22") = TRUE</code>
                                    </li>
                                    <li><code>ISDATE("2018-22-09") = FALSE</code>
                                    </li>
                                </ul>
                                <p>イギリスでは: </p><ul><li><code>ISDATE("2018-09-22") = FALSE</code></li><li><code>ISDATE("2018-22-09") = TRUE</code></li></ul><p></p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### ISNULL

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>ISNULL(expression)</code>
                            </td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td>ブール値 (True または False)</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>
                                <p><code>&lt;expression&gt;</code> が NULL の場合 (有効なデータが含まれていない場合)、true を返します。</p>
                            </td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">ISNULL([Assigned Room])</pre>
                                <p><i>「[割り当てられた部屋] フィールドは Null ですか?」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><a href="#IFNULL" class="xref">IFNULL</a> と比較します。<code>IFNULL</code> は常に値を返します。<code>ISNULL</code> はブール値を返します。</p>
                                <p><a href="#ZN" class="xref">ZN</a> も参照してください。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### MAX

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>MAX(expression)</code> または <code>MAX(expr1, expr2)</code></td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td>引数と同じデータ型、または引数の一部が Null の場合 <code>NULL&nbsp;</code>。</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>
                                <p>2 つの引数の最大値を返します (2 つの引数は同じ型でなければなりません)。</p>
                                <p><code>MAX</code> は集計として単一フィールドにも適用できます。</p>
                            </td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">MAX(4,7) = 7<br>MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021# <br>MAX([Name]) = "Zander"</pre>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><b>文字列の場合</b>
                                </p>
                                <p><code>MAX</code> は、通常、アルファベット順で最後に来る値です。</p>
                                <p class="note">データベースのデータ ソースでは、<code>MAX</code> の文字列値は、その列でデータベースが定義しているソート順が最も高い値です。</p>
                                <p><b>日付の場合</b>
                                </p>
                                <p>日付の場合、<code>MAX</code> は最新の日付です。<code>MAX</code> が集計の場合、結果には日付の階層がありません。<code>MAX</code> が比較の場合、結果には日付の階層が保持されます。</p>
                                <p><b>集計として</b>
                                </p>
                                <p><code>MAX(expression)</code> は集計関数であり、集計された単一の結果を返します。Viz では <code>AGG(expression)</code> と表示されます。</p>
                                <p><b>比較として</b>
                                </p>
                                <p><code>MAX(expr1, expr2)</code> は 2 つの値を比較し、行レベルの値を返します。</p>
                                <p><code><a href="#MIN" class="xref">MIN</a></code> も参照してください。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### MIN

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>MIN(expression)</code> または <code>MIN(expr1, expr2)</code></td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td>引数と同じデータ型、または引数の一部が Null の場合 <code>NULL&nbsp;</code>。</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>
                                <p>2 つの引数の最小値を返します (2 つの引数は同じ型でなければなりません)。</p>
                                <p><code>MIN </code> は集計として単一フィールドにも適用できます。</p>
                            </td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">MIN(4,7) = 4<br>MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#<br>MIN([Name]) = "Abebi"</pre>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><b>文字列の場合</b>
                                </p>
                                <p><code>MIN</code> は、通常、アルファベット順で最初に来る値です。</p>
                                <p class="note">データベースのデータ ソースでは、<code>MIN</code> の文字列値は、その列でデータベースが定義しているソート順が最も低い値です。</p>
                                <p><b>日付の場合</b>
                                </p>
                                <p>日付の場合、<code>MIN</code> は最も早い日付です。<code>MIN</code> が集計の場合、結果には日付の階層がありません。<code>MIN</code> が比較の場合、結果には日付の階層が保持されます。</p>
                                <p><b>集計として</b>
                                </p>
                                <p><code>MIN(expression)</code> は集計関数であり、集計された単一の結果を返します。Viz では <code>AGG(expression)</code> と表示されます。</p>
                                <p><b>比較として</b>
                                </p>
                                <p><code>MIN(expr1, expr2)</code> は 2 つの値を比較し、行レベルの値を返します。</p>
                                <p><code><a href="#MAX" class="xref">MAX</a></code> も参照してください。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### NOT

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>NOT&nbsp;&lt;expression&gt;</code>
                            </td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td>ブール値 (True または False)</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>1 つの式で論理否定を実行します。</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">IF <b>NOT</b> [Season] = "Summer" <br>THEN 'Don't wear sandals' <br>ELSE&nbsp;'Wear sandals'&nbsp;<br><b>END</b></pre>
                                <p><i>「季節が夏でない場合は、「サンダルを履かないでください」を返します。そうでない場合は、「サンダルを履いてください」と返します。」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p>多くの場合、<a href="#IF" class="xref">IF</a> や <a href="#IIF" class="xref">IIF</a> とともに使用されます。<a href="#top" class="xref">AND</a> と <a href="#OR" class="xref">OR</a> も参照してください。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### OR

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>&lt;expr1&gt; OR &lt;expr2&gt;</code>
                            </td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td>ブール値 (True または False)</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>2 つの式の論理和を実行します。</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">IF [Season] = "Spring"&nbsp;<b>OR</b>&nbsp;[Season] = "Fall" <br>THEN&nbsp;"Sneakers" <br>END</pre>
                                <p><i>「(「季節」=「春」) または (「季節」=「秋」) のいずれかが true の場合、「スニーカー」を返します。」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p>多くの場合、<a href="#IF" class="xref">IF</a> や <a href="#IIF" class="xref">IIF</a> とともに使用されます。<a href="#top" class="xref">AND</a> と <a href="#NOT" class="xref">NOT</a> も参照してください。</p>
                                <p>いずれかの式が <code>TRUE</code> の場合、結果は <code>TRUE</code> になります。両方の式が <code>FALSE</code> の場合、結果は <code>FALSE</code> になります。両方の式が <code>NULL</code> の場合、結果は <code>NULL</code> になります。</p>
                                <p><code>OR</code> 比較の結果がワークシートに表示される計算を作成すると、Tableau では TRUE や FALSE と表示されます。この設定を変更するには、書式設定ダイアログ ボックスの [書式設定] エリアを使用してください。</p>
                                <p class="note"><b>注</b>:&nbsp;<code>OR</code> 演算子は、<em>「短絡評価」</em>を採用しています。そのため、最初の式が <code>TRUE</code> として評価された場合、2 番目の式はまったく評価されません。このことは、最初の式が <code>TRUE</code> として評価されているときに、2 番目の式でエラーが発生した場合に役に立ちます。なぜならば、短絡評価が採用されている場合、2 番目の式は一度も評価されないからです。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### THEN

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>IF &lt;test1&gt; <b>THEN</b> &lt;then1&gt; 
							<br>[ELSEIF &lt;test2&gt; <b>THEN</b> &lt;then2&gt;...]
							<br>[ELSE &lt;default&gt;] 
						<br>END</code>
                            </td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td><code>IF</code>、<code>ELSEIF</code>、<code>CASE</code> の式の必須部分であり、特定の値またはテストが true の場合に返す結果を定義するために使用されます。</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;<b>THEN</b>&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;<b>THEN</b>&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br>END</pre>
                                <p><i>「「季節」=「夏」の場合、「サンダル」を返します。そうでない場合は、次の式を確認します。「季節」=「冬」の場合、「ブーツ」を返します。どちらの式も true でない場合は、「スニーカー」を返します。」</i>
                                </p><pre>CASE [Season] <br>WHEN 'Summer' <b>THEN</b> 'Sandals' <br>WHEN 'Winter' <b>THEN</b> 'Boots' <br>ELSE 'Sneakers' <br>END</pre>
                                <p><i><i>「[季節] フィールドを確認してください。値が「夏」の場合は、「サンダル」を返します。値が「冬」の場合は、「ブーツ」を返します。[季節] フィールドの内容が計算内の選択肢と一致しない場合は、「スニーカー」を返します。」</i></i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><a href="#CASE" class="xref">CASE</a>、<a href="#WHEN" class="xref">WHEN</a>、<a href="#IF" class="xref">IF</a>、<a href="#ELSEIF" class="xref">ELSEIF</a>、<a href="#THEN" class="xref">THEN</a>、<a href="#ELSE" class="xref">ELSE</a>、<a href="#END" class="xref">END</a> とともに使用されます。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### WHEN

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>CASE &lt;expression&gt; 
							<br><b>WHEN</b> &lt;value1&gt; THEN &lt;then1&gt; 
							<br><b>WHEN</b> &lt;value2&gt; THEN &lt;then2&gt; 
							<br>...
						<br>[ELSE &lt;default&gt;]<br>END</code>
                            </td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td><code>CASE</code> 式の必須部分。<code>&lt;expression&gt;</code> と一致する最初の <code>&lt;value&gt;</code> を見つけ、対応する <code>&lt;then&gt;</code> を返します。</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre>CASE [Season] <br><b>WHEN</b> 'Summer' THEN 'Sandals' <br><b>WHEN</b> 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br>END</pre>
                                <p><i>「[季節] フィールドを確認してください。値が「夏」の場合は、「サンダル」を返します。値が「冬」の場合は、「ブーツ」を返します。[季節] フィールドの内容が計算内の選択肢と一致しない場合は、「スニーカー」を返します。」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><a href="#CASE" class="xref">CASE</a>、<a href="#THEN" class="xref">THEN</a>、<a href="#ELSE" class="xref">ELSE</a>、<a href="#END" class="xref">END</a> とともに使用されます。</p>
                                <p><code>CASE</code> は次のような <code>WHEN IN</code> 構造もサポートします。</p><pre xml:space="preserve">CASE &lt;expression&gt; <br><b>WHEN IN</b> &lt;set1&gt; THEN &lt;then1&gt; <br><b>WHEN IN</b> &lt;combinedfield&gt; THEN &lt;then2&gt; <br>... <br>ELSE &lt;default&gt; <br>END</pre>
                                <p><code>WHEN IN</code> で比較される値は、セット、リテラル値のリスト、または組み合わせフィールドである必要があります。<a href="#IN" class="xref">IN</a> も参照してください。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### ZN

<table class="table--plain" style="width: 100%;">
                    <colgroup><col style="width: 20%;">
                    <col>
                    </colgroup><tbody>
                        <tr>
                            <td>構文</td>
                            <td><code>ZN(expression)</code>
                            </td>
                        </tr>
                        <tr>
                            <td>出力</td>
                            <td><code>&lt;expression&gt;</code> のデータ型によって異なります。または 0 です。</td>
                        </tr>
                        <tr>
                            <td>定義</td>
                            <td>Null でない場合は &lt;expression&gt; を返し、それ以外は 0 を返します。</td>
                        </tr>
                        <tr>
                            <td>例</td>
                            <td><pre xml:space="preserve">ZN([Test Grade])</pre>
                                <p><i>「テストの成績が Null でない場合は、その値を返します。テストの成績が Null の場合は、0 を返します。」</i>
                                </p>
                            </td>
                        </tr>
                        <tr>
                            <td>注</td>
                            <td>
                                <p><code>ZN</code> は <a href="#IFNULL" class="xref">IFNULL</a> の特殊なケースであり、式が Null の場合の代替値は計算で指定されるのではなく、常に 0 になります。</p>
                                <p><code>ZN</code> は、追加の計算を実行し、Null によって計算全体が Null になる場合に特に便利です。ただし、これらの結果を Null として解釈することは、必ずしも 0 と同義ではなく、欠損データを表す可能性があるので注意が必要です。</p>
                                <p><a href="#ISNULL" class="xref">ISNULL</a> も参照してください。</p>
                            </td>
                        </tr>
                    </tbody>
                </table>  

**注**: これらのうちいくつかは、実際には論理演算子であり、青ではなく黒で表示されます。詳細については、「[演算子の構文](https://help.tableau.com/current/pro/desktop/ja-jp/functions_operators.htm#Operators)」を参照してください。

CASE、IF、IIF に関する注

通常、CASE は IF または IIF より簡単に使用できます。多くの場合、IF、IIF、CASE は同じ意味で使用できます。CASE 文は常に IF 文として再記述できますが、一般的に CASE 関数の方が理解しやすく簡潔です。ただし、各 ELSEIF は別のフィールドを参照する可能性があるため、すべての IF 文を CASE 文として記述できるわけではありません。

**ヒント**: これら 3 つの関数で同じロジックを使用した例を比較してみましょう。  

<table style="width: 100%;" class="table--plain"><colgroup><col style="width: 33%;"><col style="width: 33%;"><col></colgroup><tbody><tr><td>CASE</td><td>IF</td><td>IIF</td></tr><tr><td><pre>CASE [Region]<br>WHEN 'West' THEN 1<br>WHEN 'East' THEN 2<br>WHEN 'South' THEN 3<br>WHEN 'North' Then 4<br>ELSE 5<br>END</pre></td><td><pre>IF [Region] = 'West' THEN 1<br>ELSEIF [Region] = 'East' THEN 2<br>ELSEIF [Region] = 'South' THEN 3<br>ELSEIF [Region] = 'North' THEN 4<br>ELSE 5<br>END</pre></td><td><pre>IIF([Region] = 'West', 1,<br> IIF([Region] = 'East', 2,<br>  IIF([Region] = 'South', 3,<br>   IIF([Region] = 'North', 4,<br>   5, 0)<br>  )<br> )<br>)</pre></td></tr><tr><td><p>CASE の構造は非常にシンプルで、記述しやすく、理解しやすいです。ただし、式 (ここでは [地域]) は、IF や IIF とは異なり、論理演算にすることはできません。</p><p>CASE の場合でも、Null は IF の場合と同様に処理されます。</p></td><td><p>IF THEN 構造では複数の ELSEIF 句が許可されるため、IIF よりも複数の評価がはるかに簡単になります。</p><p><b>Null 処理</b>: 不明な結果 (null) はすべて、同じ ELSE 句によって false の結果として処理されます。ここで、指定された 4 つ以外の地域 (null を含む) には値 5 が割り当てられます。</p></td><td><p>IIF 構造では、不明な結果を false の結果とは異なる方法で処理し、IF とは異なる構文を持ちます。具体的な Null 処理のトレードオフは、上記のように入れ子になるため、記述したり理解したりするのが難しくなる可能性があります。</p><p><b>Null 処理</b>: 指定された 4 つ以外の Null でない地域には値 5 が割り当てられますが、Null 値には 0 が割り当てられます。</p></td></tr></tbody></table>

**注**: 多くの場合、グループを使用すると、複雑な CASE 関数と同じ結果を得ることができます。どちらを選んだ方がパフォーマンスがよいか、試して確認してみてください。

### 例

CASE 関数は、次のようなシナリオに役立ちます。

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

または、[パラメーター](https://www.tableau.com/ja-jp/about/blog/2015/11/using-parameter-change-fields-45866)とともに使用する場合に、エンド ユーザーがグラフに表示するメジャーを選択できるようにします。

CASE \[Choose a Measure\]  
WHEN "Sales" THEN SUM(\[Sales\])  
WHEN "Profit" THEN AVG(\[Profit\])  
WHEN "Quantity" THEN COUNT(\[Quantity\])  
WHEN "Shipping Cost" THEN MEDIAN(\[Shipping Cost\])  
END

## 論理計算の作成

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

1. Tableau Desktop で、Tableau に付属のサンプル - スーパーストア保存済みデータ ソースに接続します。
2. ワークシートに移動します。
3. **\[データ\]** ペインから、"州" を \[行\] シェルフにドラッグします。
4. **\[データ\]** ペインから、"カテゴリ" を \[行\] シェルフにドラッグして、"State (州)" の右に配置します。
5. **\[データ\]** ペインから、"売上" を \[列\] シェルフにドラッグします。
6. \[分析\] > \[計算フィールドの作成\] を選択します。
7. 開いた計算エディターで、次の操作を実行します。
    - 計算フィールドに「KPI」と名前を付けます。
    - 次の式を入力します。
        
        SUM(\[Profit\]) > 0
        
        メンバーが 1 人以上いるかどうかをこの計算で簡単に確認できます。1 人以上いる場合は true、いない場合は false が返されます。
    - 終了したら、**\[OK\]** をクリックします。

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

9. **\[データ\]** ペインから **"KPI"** を \[マーク カード\] の **\[色\]** にドラッグします。
    
    これで、州ごとにどのカテゴリーの売上が落ちているかを確認できるようになりました。
    
    ![各州で損失が出ている製品カテゴリを強調表示するために、棒グラフに適用された論理関数。](/tableau/current/ja-jp/pro/desktop/ja-jp/Img/logicalfunctions1.png)

## 関連項目

[キー プログレス インジケーターの視覚化](https://help.tableau.com/current/pro/desktop/ja-jp/kpi.htm)

[Tableau で使用する関数](https://help.tableau.com/current/pro/desktop/ja-jp/functions.htm)

[Tableau 関数 (カテゴリ別)](https://help.tableau.com/current/pro/desktop/ja-jp/functions_all_categories.htm)

[Tableau 関数 (アルファベット順)](https://help.tableau.com/current/pro/desktop/ja-jp/functions_all_alphabetical.htm)