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