スプレッドシートのISLOGICAL関数の使い方|論理値判定

スポンサーリンク

スプレッドシートで「このセルに入っているのは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(論理値)と判定されるかを一覧にしました。

データの種類判定結果
TRUETRUE(論理値)
FALSETRUE(論理値)
数式の結果がTRUE/FALSETRUE(論理値)
チェックボックス(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関数を条件付き書式のカスタム数式に使うと、論理値セルを色付けできます。

手順:

  1. チェックしたい範囲(例: B2:B20)を選択する
  2. 「表示形式」→「条件付き書式」を開く
  3. 「カスタム数式」を選び、次の数式を入力する
=ISLOGICAL(B2)
  1. 書式スタイルで背景色を緑などに設定する

これで論理値セルがひと目でわかります。データの種類が混在する列で便利です。

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にします。

データの種類ISLOGICALISNUMBER
論理値(TRUE/FALSE)TRUEFALSE
数値(100)FALSETRUE
日付・時刻FALSETRUE
文字列(”abc”)FALSEFALSE
空白FALSEFALSE

論理値と数値は明確に区別されます。TRUEは数値の1ではなく、あくまで論理値です。

ISLOGICALとISTEXTの違い

ISLOGICALは論理値だけをTRUEにします。ISTEXTは文字列だけをTRUEにします。

データの種類ISLOGICALISTEXT
論理値(TRUE/FALSE)TRUEFALSE
文字列(”abc”)FALSETRUE
文字列の”TRUE”FALSETRUE
数値(100)FALSEFALSE
空白FALSEFALSE

文字列の "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を返すかを一覧にしました。

データの種類ISLOGICALISNUMBERISTEXTISBLANKISERROR
論理値(TRUE/FALSE)TRUEFALSEFALSEFALSEFALSE
数値(100)FALSETRUEFALSEFALSEFALSE
文字列(”abc”)FALSEFALSETRUEFALSEFALSE
空白FALSEFALSEFALSETRUEFALSE
エラー(#N/A)FALSEFALSEFALSEFALSETRUE
日付・時刻FALSETRUEFALSEFALSEFALSE

各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関数の使い方をご覧ください。

タイトルとURLをコピーしました