スプレッドシートで「このセルに入っているのはTRUE/FALSEの論理値?それとも文字列?」と確認したくなったことはありませんか?
チェックボックスや条件式の結果が入る列で、想定外のデータが紛れると処理がうまくいかないことがありますよね。
そんなときに使えるのがISLOGICAL関数です。セルの値が論理値(TRUE/FALSE)かどうかをTRUE/FALSEで判定してくれます。
この記事では基本の書き方からIF関数との組み合わせまで紹介します。TRUE関数・FALSE関数との関係や、他のIS系関数との使い分けも解説しています。
ISLOGICAL関数とは?
ISLOGICAL関数(読み方: イズロジカル関数)は、指定した値が論理値かどうかを判定する関数です。
名前はIS(〜かどうか)+ LOGICAL(論理値)が由来です。
A1がTRUEやFALSEなら =ISLOGICAL(A1) はTRUEを返します。
引数はチェックしたい値の1つだけです。結果はTRUEかFALSEの2択なので、とてもシンプルですね。
ISLOGICAL関数にできることをまとめると、次のとおりです。
- セルの値が論理値(TRUE/FALSE)かどうかをTRUE/FALSEで判定する
- IF関数と組み合わせて論理値・それ以外で処理を分岐する
- チェックボックス列のデータ整合性を検証する
- 条件付き書式と組み合わせて論理値セルをハイライトする
NOTE
ISLOGICAL関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
ISLOGICAL関数の書き方(構文と引数)
基本構文
=ISLOGICAL(値)
カッコの中に論理値かどうかを判定したいセルや値を指定するだけです。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 論理値かどうかを確認したいセル参照や値(例: A1) |
引数は1つだけです。値が論理値(TRUE/FALSE)ならTRUE、それ以外ならFALSEを返します。
ISLOGICAL関数がTRUE/FALSEを返すパターン
どんな値がTRUE(論理値)と判定されるかを一覧にしました。
| データの種類 | 判定結果 |
|---|---|
| TRUE | TRUE(論理値) |
| FALSE | TRUE(論理値) |
| 数式の結果がTRUE/FALSE | TRUE(論理値) |
| チェックボックス(ON/OFF) | TRUE(論理値) |
| 整数・小数(100、3.14など) | FALSE |
| 文字列(”abc”、”TRUE”など) | FALSE |
| 日付・時刻 | FALSE |
| エラー値(#N/Aなど) | FALSE |
| 空白セル | FALSE |
特に注意したいポイントが2つあります。
まず、文字列の "TRUE" や "FALSE" はFALSEになります。見た目は同じでもダブルクォーテーションで囲まれた文字列は論理値ではありません。
もうひとつはチェックボックスです。スプレッドシートのチェックボックスはON=TRUE、OFF=FALSEの論理値を持つため、ISLOGICALはTRUEを返します。
TIP
文字列の
"TRUE"と論理値のTRUEを見分けるには、ISLOGICAL関数が便利です。論理値ならTRUE、文字列ならFALSEを返します。
ISLOGICAL関数の基本的な使い方
セルが論理値かどうかを判定する
もっともシンプルな使い方です。A1が論理値かどうかを確認します。
=ISLOGICAL(A1)
A1にTRUEやFALSEが入っていればTRUE、数値や文字列ならFALSEが返ります。
IF関数と組み合わせて表示を切り替える
ISLOGICAL関数はIF関数と組み合わせることが多いです。論理値のときとそうでないときで表示を変えます。
=IF(ISLOGICAL(B2), "論理値", "論理値以外")
B2がTRUEまたはFALSEなら「論理値」、それ以外なら「論理値以外」と表示します。
論理値以外のときだけ警告を出す
チェックボックス列に不正なデータが入っていないかチェックするパターンです。
=IF(ISLOGICAL(B2), "OK", "TRUE/FALSEを入力してください")
B2が論理値なら「OK」と表示します。文字列や数値が入っていたら入力を促すメッセージを出します。
複数セルの論理値チェック
複数のセルがすべて論理値かどうかを確認するパターンです。
=AND(ISLOGICAL(A2), ISLOGICAL(B2), ISLOGICAL(C2))
A2・B2・C2がすべて論理値ならTRUEです。1つでも論理値以外があればFALSEになります。
ISLOGICAL関数の実務活用パターン
チェックボックス列のデータ整合性チェック
スプレッドシートのチェックボックスは論理値(TRUE/FALSE)を持ちます。しかし、手動でセルを編集すると文字列や数値に変わってしまうことがあります。
=IF(ISLOGICAL(C2), "", "チェックボックスが壊れています")
C2が論理値以外になっていたら警告を出します。チェックボックスの破損を検出できます。
FILTER関数で論理値データだけを抽出する
FILTER関数とISLOGICAL関数を組み合わせると、論理値が入っている行だけを抽出できます。
=FILTER(A2:B, ISLOGICAL(B2:B))
B列が論理値の行だけをまとめて取り出します。
条件付き書式で論理値セルをハイライト
ISLOGICAL関数を条件付き書式のカスタム数式に使うと、論理値セルを色付けできます。
手順:
- チェックしたい範囲(例: B2:B20)を選択する
- 「表示形式」→「条件付き書式」を開く
- 「カスタム数式」を選び、次の数式を入力する
=ISLOGICAL(B2)
- 書式スタイルで背景色を緑などに設定する
これで論理値セルがひと目でわかります。データの種類が混在する列で便利です。
ArrayFormulaで全行一括判定
ISLOGICAL関数をARRAYFORMULA関数と組み合わせると、1つの数式で全行分を処理できます。
=ARRAYFORMULA(IF(A2:A="", "", IF(ISLOGICAL(A2:A), "論理値", "その他")))
A列にデータがある行だけを対象に、論理値かどうかを一括判定します。
ARRAYFORMULA関数を使えば数式を下方向にコピーする必要がなくなるので、行が追加されても自動対応です。
COUNTIF的な使い方で論理値の個数を数える
ISLOGICAL関数をSUMPRODUCTと組み合わせると、範囲内の論理値の個数を数えられます。
=SUMPRODUCT(ISLOGICAL(A2:A100)*1)
A2:A100の中にある論理値セルの個数を返します。チェックボックスが何個入っているかを確認するのに使えます。
文字列の”TRUE”を論理値のTRUEに変換する
インポートしたデータで文字列の "TRUE" "FALSE" が混在する場合があります。ISLOGICAL関数で判定してから変換します。
=IF(ISLOGICAL(A2), A2, IF(UPPER(A2)="TRUE", TRUE, IF(UPPER(A2)="FALSE", FALSE, "")))
すでに論理値ならそのまま返します。文字列の”TRUE”/”FALSE”なら論理値に変換します。
TRUE関数・FALSE関数との関係
ISLOGICAL関数は論理値を「判定」する関数ですが、論理値を「生成」する関数としてTRUE関数とFALSE関数があります。
| 関数 | 役割 | 戻り値 |
|---|---|---|
| ISLOGICAL | 値が論理値かどうかを判定する | TRUE/FALSE |
| TRUE | 論理値TRUEを返す | TRUE |
| FALSE | 論理値FALSEを返す | FALSE |
TRUE関数・FALSE関数は引数なしで呼び出します。
=TRUE()
=FALSE()
セルに直接 TRUE と入力しても論理値になりますが、TRUE関数を使うと数式であることが明示的になります。
ISLOGICAL関数でTRUE関数・FALSE関数の結果を判定するとTRUEです。
=ISLOGICAL(TRUE()) → TRUE
=ISLOGICAL(FALSE()) → TRUE
よくあるエラーと対処法
ISLOGICAL関数自体がエラーを返すことはほとんどありません。ただし「思った結果にならない」ケースがあります。
| 症状 | 原因 | 対処法 |
|---|---|---|
| “TRUE”なのにFALSEになる | 文字列の”TRUE”は論理値ではない | ダブルクォーテーションを外して入力する |
| 1や0なのにFALSEになる | 数値の1/0は論理値ではない | 論理値に変換するなら =IF(A1=1, TRUE, FALSE) |
| チェックボックスがFALSEになる | チェックボックスが壊れている | セルを選択→「挿入」→「チェックボックス」で再設定する |
| 空白セルがFALSEになる | ISLOGICALは空白をFALSEと判定する | 空白も含めるなら =OR(ISLOGICAL(A1), ISBLANK(A1)) |
| 数式結果なのにFALSEになる | 数式の結果が数値や文字列 | 数式がTRUE/FALSEを返すか確認する |
「チェックボックスなのにFALSE」の見分け方
チェックボックスがあるセルなのにISLOGICALがFALSEを返す場合があります。セルの内容が書き換えられている可能性があります。
=TYPE(A2)
結果が4なら論理値、1なら数値、2なら文字列です。
チェックボックスを再設定するには、セルを選択して「挿入」→「チェックボックス」を実行します。
似た関数との違い・使い分け
ISLOGICAL関数と関連する関数をまとめました。
| 関数 | 判定対象 | 戻り値 | 用途 |
|---|---|---|---|
| ISLOGICAL | 論理値かどうか | TRUE/FALSE | セルごとの論理値チェック |
| ISNUMBER | 数値かどうか | TRUE/FALSE | セルごとの数値チェック |
| ISTEXT | 文字列かどうか | TRUE/FALSE | セルごとの文字列チェック |
| TYPE | データ型の種類を取得 | 数値(型コード) | 詳細なデータ型判定 |
ISLOGICALとISNUMBERの違い
ISLOGICALは論理値だけをTRUEにします。ISNUMBERは数値だけをTRUEにします。
| データの種類 | ISLOGICAL | ISNUMBER |
|---|---|---|
| 論理値(TRUE/FALSE) | TRUE | FALSE |
| 数値(100) | FALSE | TRUE |
| 日付・時刻 | FALSE | TRUE |
| 文字列(”abc”) | FALSE | FALSE |
| 空白 | FALSE | FALSE |
論理値と数値は明確に区別されます。TRUEは数値の1ではなく、あくまで論理値です。
ISLOGICALとISTEXTの違い
ISLOGICALは論理値だけをTRUEにします。ISTEXTは文字列だけをTRUEにします。
| データの種類 | ISLOGICAL | ISTEXT |
|---|---|---|
| 論理値(TRUE/FALSE) | TRUE | FALSE |
| 文字列(”abc”) | FALSE | TRUE |
| 文字列の”TRUE” | FALSE | TRUE |
| 数値(100) | FALSE | FALSE |
| 空白 | FALSE | FALSE |
文字列の "TRUE" はISTEXTではTRUE、ISLOGICALではFALSEです。データ型の見分けに使えます。
ISLOGICALとTYPE関数の使い分け
TYPE関数はデータ型をより細かく分類できます。
| 型 | TYPE関数の戻り値 |
|---|---|
| 数値 | 1 |
| 文字列 | 2 |
| 論理値 | 4 |
| エラー | 16 |
| 配列 | 64 |
「論理値かどうか」だけ知りたい → ISLOGICAL関数がシンプルです。
「数値・文字列・エラーも区別したい」→ TYPE関数が向いています。
ISLOGICALと他のIS系関数
ISLOGICAL関数はIS系情報関数のひとつです。
| 関数 | 判定内容 |
|---|---|
| ISBLANK | 空白かどうか |
| ISNUMBER | 数値かどうか |
| ISTEXT | 文字列かどうか |
| ISLOGICAL | 論理値かどうか |
| ISERROR | エラーかどうか |
| ISFORMULA | 数式が入っているかどうか |
データの種類に応じたチェックをしたいときは、IS系関数を使い分けてみてください。
IS系関数の判定結果まとめ
各IS系関数がどのデータ型にTRUEを返すかを一覧にしました。
| データの種類 | ISLOGICAL | ISNUMBER | ISTEXT | ISBLANK | ISERROR |
|---|---|---|---|---|---|
| 論理値(TRUE/FALSE) | TRUE | FALSE | FALSE | FALSE | FALSE |
| 数値(100) | FALSE | TRUE | FALSE | FALSE | FALSE |
| 文字列(”abc”) | FALSE | FALSE | TRUE | FALSE | FALSE |
| 空白 | FALSE | FALSE | FALSE | TRUE | FALSE |
| エラー(#N/A) | FALSE | FALSE | FALSE | FALSE | TRUE |
| 日付・時刻 | FALSE | TRUE | FALSE | FALSE | FALSE |
各IS系関数は「自分の担当するデータ型だけTRUE、それ以外はFALSE」というシンプルなルールです。
まとめ
ISLOGICAL関数は、セルの値が論理値(TRUE/FALSE)かどうかをTRUE/FALSEで判定するシンプルな関数です。
ポイントをおさらいしましょう。
- 引数は1つ。論理値ならTRUE、それ以外はFALSE
- 文字列の”TRUE”はFALSE。見た目は同じでもデータ型が異なる
- チェックボックスはTRUE/FALSEの論理値を持つのでTRUEと判定される
- TRUE関数・FALSE関数は論理値を「生成」、ISLOGICALは論理値を「判定」
- ISNUMBER・ISTEXT・ISBLANKなど他のIS系関数と用途に応じて使い分ける
論理値判定やチェックボックスのデータ検証に、ぜひ活用してみてください。
関連記事
数値かどうかを判定するなら、ISNUMBER関数の使い方もあわせてどうぞ。
文字列かどうかを判定するなら、ISTEXT関数の使い方もチェックしてみてください。
文字列以外を判定するなら、ISNONTEXT関数の使い方を参考にしてください。
空白セルの判定には、ISBLANK関数の使い方が便利です。
エラー判定をしたいときは、ISERROR関数の使い方をご覧ください。
