「このセルの値って本当にTRUE/FALSEなの?」と気になったことはありませんか。見た目は TRUE でも、文字列の “TRUE” が入っているだけかもしれません。そんなときに頼れるのがISLOGICAL関数です。
この記事では、ISLOGICAL関数の基本から実務で役立つ活用パターンまでまとめて紹介します。
この記事は次のような人におすすめ
– セルの値が本当に論理値(TRUE/FALSE)か確認したい
– 文字列の “TRUE” と論理値の TRUE を区別したい
– IF関数やデータ入力規則と組み合わせて使いたい
ISLOGICAL関数とは?
ISLOGICAL(いず ろじかる)関数は、指定した値が論理値(TRUE または FALSE)かどうかを判定する関数です。logical は「論理的な」という意味の英単語です。
対象が論理値であれば TRUE を返します。それ以外(数値・文字列・空白・エラー値など)はすべて FALSE になります。
IS系(情報関数)の1つで、セルに入っているデータの種類を確認するための関数ファミリーに属しています。
NOTE
ISLOGICAL関数は Excel 2003 以降のすべてのバージョンで使用できます。
ISLOGICAL関数の書き方(構文と引数)
基本構文
=ISLOGICAL(テストの対象)
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| テストの対象 | 必須 | 論理値かどうか判定したい値またはセル参照 |
引数は1つだけです。省略はできません。セル参照・直接値・数式の結果のいずれも指定できます。
ISLOGICAL関数の基本的な使い方
まずはシンプルな例で動きを確認してみましょう。
値の種類ごとの判定結果
さまざまなデータを ISLOGICAL 関数で判定すると、次のような結果になります。
=ISLOGICAL(TRUE)
結果: TRUE(論理値のTRUEなので TRUE)
=ISLOGICAL(FALSE)
結果: TRUE(論理値のFALSEなので TRUE)
=ISLOGICAL("TRUE")
結果: FALSE(文字列の “TRUE” なので FALSE)
=ISLOGICAL(1)
結果: FALSE(数値なので FALSE)
=ISLOGICAL("")
結果: FALSE(空文字列なので FALSE)
セル参照で判定する
セル参照を使えば、特定のセルの値が論理値かどうかを確認できます。
=ISLOGICAL(A1)
A1 に TRUE が入っていれば TRUE、100 や "完了" が入っていれば FALSE です。
TIP
空白セルを指定した場合も FALSE になります。空白かどうかの判定には [[2022-04-06-excel-function-howto-use-isblank|ISBLANK関数]] を使いましょう。
数式の結果を判定する
ISLOGICAL 関数の引数に数式を直接入れることもできます。
=ISLOGICAL(A1>100)
A1>100 の結果は TRUE か FALSE(論理値)なので、この数式は常に TRUE を返します。比較演算子の結果は必ず論理値になるためです。
ISLOGICAL関数の実務活用パターン
パターン1: IF関数と組み合わせてデータ種別を表示する
セルの内容が論理値かどうかに応じて処理を分けたい場面で使えます。
=IF(ISLOGICAL(B2),"論理値です","論理値ではありません")
B2 が TRUE や FALSE なら「論理値です」と表示します。それ以外なら「論理値ではありません」と表示します。
アンケートの回答欄やチェックボックスの結果など、TRUE/FALSE が入るべきセルの検証に便利です。
パターン2: 文字列 “TRUE” と論理値 TRUE を区別する
CSV ファイルをインポートすると、論理値だったはずの TRUE が文字列 “TRUE” に変わることがあります。見た目は同じでも中身が違うため、計算に使えません。
=ISLOGICAL(C2)
論理値の TRUE なら TRUE、文字列の “TRUE” なら FALSE が返ります。この結果で問題のあるセルを特定できます。
文字列の “TRUE” を論理値に変換したい場合は、次のように書きます。
=EXACT(C2,"TRUE")*1=1
あるいは、もっとシンプルに =C2=TRUE でも判定できます。ただし、この式は文字列 “TRUE” でも TRUE を返す場合があるため、厳密な判定にはISLOGICAL関数が確実です。
パターン3: データ入力規則(バリデーション)に使う
特定の列に論理値のみを入力させたいときに活用できます。
データの入力規則(データタブ → データの入力規則)で、「ユーザー設定」の数式に次のように入力します。
=ISLOGICAL(D2)
この設定をすると、D2 に論理値以外の値を入力した場合にエラーメッセージが表示されます。チェックリストのような TRUE/FALSE だけが入るべき列の入力制限に使えます。
パターン4: SUMPRODUCT と組み合わせて論理値の個数を数える
範囲内に論理値がいくつ含まれるかを数えるには、SUMPRODUCT 関数と組み合わせます。
=SUMPRODUCT(ISLOGICAL(A2:A20)*1)
ISLOGICAL(A2:A20) が各セルに対して TRUE/FALSE の配列を返します。*1 で数値に変換し、SUMPRODUCT で合計すると論理値のセル数がわかります。
パターン5: 条件付き書式で論理値セルを色分けする
論理値が入っているセルだけをハイライトしたい場合に使えます。
- 対象範囲を選択します
- 「ホーム」タブ →「条件付き書式」→「新しいルール」を選択します
- 「数式を使用して、書式設定するセルを決定」を選びます
- 数式欄に
=ISLOGICAL(A1)と入力します - 好きな書式(塗りつぶし色など)を設定します
これで論理値が入っているセルだけが色分けされます。データクレンジングの際に「論理値が入るべき列に文字列が混ざっていないか」を視覚的に確認できます。
よくあるエラーと対処法
ISLOGICAL関数自体がエラーを返すことはほとんどありません。ただし「思った結果にならない」ケースがあるので確認しておきましょう。
| 症状 | 原因 | 対処法 | |
|---|---|---|---|
| 文字列 “TRUE” で FALSE が返る | セルに論理値ではなく文字列が入っている | CSVインポート後のデータを確認。=C2=TRUE で再変換するか、[[2022-01-16-excel-function-howto-use-if | IF関数]]で条件処理する |
| チェックボックスの値で FALSE が返る | チェックボックスのリンクセルを参照していない | チェックボックスのプロパティでリンクセルを設定し、そのセルを参照する | |
| 空白セルで FALSE が返る | 空白は論理値ではない | 空白判定には [[2022-04-06-excel-function-howto-use-isblank | ISBLANK関数]] を使う |
| 数値の 0 や 1 で FALSE が返る | 0/1 は数値であり論理値ではない | 論理値に変換するには =A1=1 のように比較式を使う | |
| 数式が入っているセルで TRUE が返る | 数式の結果が論理値である | ISLOGICAL関数はセルの内容ではなく結果を判定する。数式かどうかの判定には [[2022-04-05-excel-function-howto-use-isformula | ISFORMULA関数]] を使う |
IS系12関数の違い・使い分け
IS系関数は、セルに入っているデータの種類を判定するファミリーです。用途に合わせて使い分けましょう。
| 関数名 | 判定内容 | TRUE になる例 | |
|---|---|---|---|
| [[2022-04-06-excel-function-howto-use-isblank | ISBLANK]] | 空白セルか | 未入力のセル |
| [[2022-04-11-excel-function-howto-use-iserror | ISERROR]] | 任意のエラー値か | #N/A, #VALUE!, #REF! など |
| [[2022-04-12-excel-function-howto-use-iserr | ISERR]] | #N/A 以外のエラー値か | #VALUE!, #REF!, #DIV/0! など |
| [[2022-04-08-excel-function-howto-use-isna | ISNA]] | #N/A エラーか | #N/A のみ |
| ISLOGICAL(この記事) | 論理値(TRUE/FALSE)か | TRUE, FALSE | |
| [[2022-03-31-excel-function-howto-use-isnumber | ISNUMBER]] | 数値か | 100, 3.14, 日付のシリアル値 |
| [[2022-04-01-excel-function-howto-use-istext | ISTEXT]] | 文字列か | “東京”, “123”(文字列型) |
| [[2022-04-02-excel-function-howto-use-isnontext | ISNONTEXT]] | 文字列以外か | 100, TRUE, 空白 |
| [[2022-04-05-excel-function-howto-use-isformula | ISFORMULA]] | 数式が入っているか | =SUM(A1:A10) が入ったセル |
| [[2022-04-07-excel-function-howto-use-isref | ISREF]] | 有効なセル参照か | A1, Sheet2!B3 |
| [[2022-04-04-excel-function-howto-use-iseven | ISEVEN]] | 偶数か | 2, 4, 100 |
| [[2022-04-03-excel-function-howto-use-isodd | ISODD]] | 奇数か | 1, 3, 99 |
TIP
エラー判定には [[2022-03-28-excel-function-howto-use-iferror|IFERROR関数]] のほうが実務では便利です。ISERROR関数は TRUE/FALSE を返すだけですが、IFERROR関数はエラー時の代替値をそのまま指定できます。
まとめ
ISLOGICAL関数は、セルの値が論理値(TRUE/FALSE)かどうかを判定するシンプルな関数です。
- 引数は1つだけ。論理値なら TRUE、それ以外なら FALSE
- 文字列の “TRUE” と論理値の TRUE を区別できる
- IF関数やデータ入力規則と組み合わせるのが実務での定番パターン
- SUMPRODUCT との組み合わせで論理値の個数カウントも可能
IS系関数ファミリーの中でも使用頻度は高くありませんが、CSV インポート後のデータ検証やチェックリストの入力制限など、ここぞという場面で役立ちます。
関連記事
- [[2022-04-06-excel-function-howto-use-isblank|ISBLANK関数の使い方|空白セルを判定する方法]]
- [[2022-03-31-excel-function-howto-use-isnumber|ISNUMBER関数の使い方|数値かどうかを確認する方法]]
- [[2022-04-01-excel-function-howto-use-istext|ISTEXT関数の使い方|文字列かどうかを確認する方法]]
- [[2022-04-11-excel-function-howto-use-iserror|ISERROR関数の使い方|エラー値を判定する方法]]
- [[2022-04-05-excel-function-howto-use-isformula|ISFORMULA関数の使い方|数式が入っているか確認する方法]]
- [[2022-03-28-excel-function-howto-use-iferror|IFERROR関数の使い方|エラーを非表示にする方法]]
- [[2022-01-16-excel-function-howto-use-if|IF関数の使い方|条件分岐の基本]]
- [[2022-03-16-excel-function-howto-use-countblank|COUNTBLANK関数の使い方|空白セルを数える方法]]
- [[2022-02-19-excel-function-list-by-function|Excel関数一覧(機能別)]]
