「スプレッドシートに FALSE関数 ってあるけど、FALSEを返すだけの関数って何に使うの?」「=FALSE() と FALSE は何が違うの?」。論理関数を勉強していると、こんな素朴な疑問が浮かびますよね。
スプレッドシートのFALSE関数は、出番こそ多くありません。ですが、IF関数の初期値やVLOOKUPの完全一致指定など、論理値FALSEを使う場面は実務にも意外と多いんですよ。チェックボックスや初期フラグの管理にも顔を出します。
この記事ではFALSE関数の基本から、=FALSE() と FALSE と 0 の違いまでを順に解説します。VLOOKUPの第4引数やIFERRORとの組み合わせなど、実務的な活用テクニックも紹介していきますね。
スプレッドシートのFALSE関数とは?
スプレッドシートのFALSE関数(読み方: フォルス関数)は、論理値FALSEを返すだけのシンプルな関数です。論理値とは「TRUE(真)」か「FALSE(偽)」の2値だけを持つ特殊な値で、条件が成立しているかどうかを表します。
FALSE関数でできることは、次のとおりです。
- 論理値FALSEを明示的に数式の中に組み込む
- 他の表計算ソフトとの互換性を保つ
- IF関数やVLOOKUPの引数として論理値を指定する
実は、スプレッドシートでは =FALSE() と書かなくても大丈夫です。セルに直接 FALSE と入力すれば、論理値FALSEとして認識されます。FALSE関数は「関数として書く書き方も用意されている」というポジションなんですね。
NOTE
FALSE関数はGoogleスプレッドシートの全バージョンで使えます。Microsoft Excelとも完全互換なので、ファイルをやり取りしても挙動が変わりませんよ。
スプレッドシートのFALSE関数の書き方(構文と引数)
基本構文
=FALSE()
カッコの中には何も入れません。引数を取らない、ちょっと珍しいタイプの関数です。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| (なし) | — | FALSE関数は引数を取りません |
引数を渡すとエラーになります。=FALSE(0) のような書き方はできないので注意しましょう。
TIP
大文字・小文字は区別されません。
=false()でも=False()でも同じ結果になりますよ。
戻り値
FALSE関数の戻り値は、常に論理値FALSEです。セルに表示されるときは「FALSE」と表示されます。
FALSE関数の基本的な使い方
ここからは実際の数式でFALSE関数の使い方を見ていきましょう。
そのまま論理値FALSEを返す
一番シンプルな使い方です。セルに =FALSE() と入力してみてください。
=FALSE()
結果はセルに「FALSE」と表示されます。右寄せで表示されていれば論理値、左寄せで表示されていれば文字列です。見分けるポイントですよ。
IF関数の「条件不成立」の戻り値として使う
IF関数の第3引数(条件不成立時の戻り値)にFALSEを返したい場面があります。
=IF(A2>=80, TRUE(), FALSE())
A2が80以上ならTRUE、未満ならFALSEを返します。ただし、これは =IF(A2>=80, TRUE, FALSE) や =A2>=80 と同じ結果なんですよ。実務ではシンプルに後者で書くことが多いです。
フラグ管理の初期値として使う
タスク管理表で「完了フラグ」の初期値を一括設定するときにも使えます。
=FALSE()
A列の全行に =FALSE() を入れておけば、未完了の初期状態を作れます。チェックボックスを使う場合は、メニューの「挿入→チェックボックス」のほうが便利ですけれどね。
=FALSE() と FALSE と 0 の違い・使い分け
FALSE関数を学ぶうえで一番モヤッとするのが、この3つの違いです。表で整理してみましょう。
3パターン比較表
| 書き方 | 種類 | 数式内での扱い | セル表示 |
|---|---|---|---|
=FALSE() | 関数式 | 論理値FALSE | FALSE(右寄せ) |
FALSE | 論理値リテラル | 論理値FALSE | FALSE(右寄せ) |
0 | 数値 | 数値0 | 0(右寄せ) |
="FALSE" | 文字列 | 文字列 | FALSE(左寄せ) |
数式の中では FALSE だけで十分動きます。=FALSE() の関数形式は冗長ですが、間違いではありません。
使い分けの判断基準
迷ったときは次の基準で選んでみてください。
- 数式内で論理値を指定したい →
FALSEでOK - 他ソフトからのコピペで
=FALSE()がある → そのまま残してもOK - 数値の0として扱いたい →
0を直接書くか、FALSE*1で変換
実務では =FALSE() をわざわざ書く場面はほとんどありません。Excel由来の古い数式で見かけたら「ああ、FALSE関数ね」と理解できれば十分ですよ。
TIP
文字列の
"FALSE"(ダブルクォーテーション付き)は論理値ではなく文字列扱いです。=IF(A1=FALSE, "OK", "NG")の比較では別物になるので注意しましょう。
FALSE関数と論理値の応用テクニック
FALSE関数の真価は、論理値FALSEが数値の0として扱える性質にあります。
FALSE = 0、TRUE = 1 の性質を使う
論理値を数値演算に混ぜると、FALSEは0、TRUEは1として扱われます。
=FALSE()+TRUE() → 1
=FALSE()*5 → 0
=TRUE()-FALSE() → 1
この性質を使うと、条件を満たさない行を除外する数式が書けます。
条件を満たさない行数を数える
A列の数値が50以下の行数を数えたい場合の例です。
=SUMPRODUCT((A1:A10>50)*1)
A1:A10>50 は各セルごとにTRUE/FALSEを返します。TRUEが1、FALSEが0として扱われるので、合計すると条件を満たす行数が得られます。逆に「条件を満たさない行」を数えるなら、不等号を反転させましょう。
TIP
同じことはCOUNTIF関数でもできます。複数条件を一気に処理したいときはSUMPRODUCTが柔軟ですよ。
VLOOKUPの第4引数としてのFALSE(実務の定番)
VLOOKUP関数の第4引数に FALSE を指定すると、完全一致検索になります。実務でVLOOKUPを使うときは、ほぼこの書き方ですよ。
=VLOOKUP(A2, 商品マスタ!A:C, 2, FALSE)
- FALSE: 完全一致(ID検索など。実務の定番)
- TRUE: 近似一致(範囲別の判定に使う)
商品IDから商品名を引く、社員番号から氏名を引くなど、ID完全一致で検索したい場面ではFALSE一択です。TRUEを指定すると範囲検索になり、思わぬ値が返ってくることがあるので気をつけましょう。
NOTE
この第4引数の
FALSEは「FALSE関数」ではなく「論理値FALSEリテラル」です。混同されやすいですが、別物と理解しておきましょう。
IFERRORの代替値としてFALSEを返す
エラーが出たときに「該当なし」を表現したいときも便利です。
=IFERROR(VLOOKUP(A2, マスタ!A:B, 2, FALSE), FALSE)
検索でヒットしなかったらFALSEを返します。後続の数式で「FALSEなら未登録」と判定できるんですよ。
チェックボックスの未チェックを集計する
スプレッドシートのチェックボックス機能(挿入→チェックボックス)の値は、内部的にTRUE/FALSEで管理されています。未チェックの数を数えたいときに便利です。
=COUNTIF(A1:A10, FALSE)
タスク管理シートで「未完了タスク数」を把握したいときに活躍します。完了率を出すなら =COUNTIF(A1:A10, TRUE)/COUNTA(A1:A10) のように組み合わせましょう。
FALSE=0 を使いこなす実務テクニック
論理値FALSEが数値の0として扱われる性質は、応用範囲がとても広いんですよ。ここでは事務系の現場でよく使うFILTER関数や条件付き書式、ARRAYFORMULAでの落とし穴を順に見ていきましょう。
「なぜか数式が動かない」という相談の多くは、実はFALSEが返っていることが原因だったりします。仕組みを押さえておくと、トラブルを自分で解決できるようになりますよ。
FILTER関数の条件式とFALSEの関係
FILTER関数は、条件がTRUEの行だけを抽出してFALSEの行を除外する関数です。論理値FALSE=「除外」というイメージがとてもつかみやすい例ですよ。
=FILTER(A2:C10, B2:B10="東京")
B列が「東京」の行はTRUE、それ以外はFALSEと判定され、FALSEの行は結果から外れます。条件式が各行ごとにTRUE/FALSEの配列を作っている、と理解すると応用が効きます。
複数条件を組み合わせるときは、TRUE=1・FALSE=0の性質をそのまま使います。
=FILTER(A2:C10, (B2:B10="東京")*(C2:C10>=100))
*(アスタリスク)でつなぐとAND条件になります。両方TRUE(1×1=1)の行だけが残ります。片方でもFALSE(×0=0)なら除外される仕組みですね。OR条件にしたいときは +(プラス)でつなぎましょう。
TIP
FILTERの条件にAND関数やOR関数を直接書くと、配列がうまく展開されません。
*と+で組むのがスプレッドシートの定番テクニックですよ。
ARRAYFORMULAでAND・ORが効かない落とし穴
ARRAYFORMULAで複数条件を判定するとき、AND関数やOR関数を使うと全行が同じ結果になってしまいます。
=ARRAYFORMULA(IF(AND(A2:A10>0, B2:B10>0), "OK", "NG"))
これは想定どおりに動きません。AND関数は配列を受け取ると範囲全体をまとめて1つのTRUE/FALSEに評価してしまうため、全行に同じ判定が出てしまうんですね。
回避策は、ここでもFALSE=0の性質を使うことです。ANDの代わりに *、ORの代わりに + に置き換えます。
=ARRAYFORMULA(IF((A2:A10>0)*(B2:B10>0), "OK", "NG"))
(A2:A10>0) と (B2:B10>0) がそれぞれTRUE/FALSEの配列を返し、掛け算で行ごとにAND判定されます。両方TRUEの行だけが1になり、IFが「OK」を返すというわけです。
NOTE
配列処理ではAND関数・OR関数は「相性が悪い」と覚えておきましょう。算術演算子に置き換えるのが鉄則です。
条件付き書式のカスタム数式とFALSE
条件付き書式の「カスタム数式」は、TRUE(または0以外の数値)を返したセルにだけ書式が適用される仕組みです。逆に言えば、数式がFALSEや0を返すと書式は一切適用されません。
「カスタム数式を設定したのに色が付かない」というトラブルの大半は、数式がFALSEを返していることが原因なんですよ。
=$B2>=80
たとえば「B列が80以上の行に色を付ける」なら、上のように書きます。条件を満たす行はTRUE→書式適用、満たさない行はFALSE→未適用という動きです。色が付かないときは、対象セルにこの数式を一度入力してみて、FALSEが返っていないか確認すると原因がつかめますよ。
チェックボックスのカスタム値に注意
既存の集計テクニックは標準チェックボックスを前提にしていますが、もう1つ知っておきたい注意点があります。チェックボックスに「カスタム値」を設定している場合の話です。
チェックボックスは「データの入力規則」からカスタム値を指定できます。たとえばチェック時に「1」、未チェック時に「0」を返すよう設定するケースですね。この場合、チェックボックスの中身は論理値TRUE/FALSEではなく、設定した数値や文字列になります。
そのため、次の集計式は機能しません。
=COUNTIF(A1:A10, FALSE)
カスタム値が「0」なら、正しくは設定値に合わせてこう書きます。
=COUNTIF(A1:A10, 0)
標準チェックボックスかカスタム値かを見分けるには、チェックボックスのセルを選択して中身を確認してみてください。FALSE(右寄せの論理値)が入っていれば標準、0 などの数値や任意の文字列が入っていればカスタム値です。集計式を書く前に、一度この確認をしておくとミスが防げますよ。
TIP
完了率を出すときも同じです。標準なら
COUNTIF(範囲, TRUE)、カスタム値(チェック時=1)ならCOUNTIF(範囲, 1)と、設定に合わせて使い分けましょう。
よくある疑問とエラー対処
FALSE関数は単純な関数ですが、いくつか混乱しやすいポイントがあります。
疑問・エラー一覧
| 疑問・症状 | 原因 | 対処法 |
|---|---|---|
=FALSE() と FALSE どちらを使えばいい? | どちらも同じ結果 | 数式内では FALSE で十分 |
| セルに FALSE と入力したら自動で論理値になった | スプレッドシートの仕様 | 文字列にしたい場合は 'FALSE(アポストロフィ付き) |
| #N/A エラーが出る | FALSE関数に引数を渡している | =FALSE(0) → =FALSE() に修正 |
IF(A1="FALSE", ...) が動かない | 文字列と論理値の比較 | IF(A1=FALSE, ...) に修正 |
| VLOOKUPで意図しない値が返る | 第4引数のFALSE指定漏れ | VLOOKUP(..., FALSE) を明示する |
| 計算結果に0が混じる | FALSEを数値演算に使った結果 | 論理値として残したいときは *1 を外す |
文字列と論理値を混同しない
セルに FALSE と表示されていても、中身が論理値か文字列かで挙動が変わります。
- 右寄せ表示 → 論理値FALSE
- 左寄せ表示 → 文字列”FALSE”
文字列の場合は変換が必要です。=IF(A1="FALSE", FALSE, TRUE) のように書くと論理値に変換できます。
アポストロフィの罠
セルに 'FALSE と入力すると、アポストロフィが文字列化を指示する記号として働きます。その結果、論理値ではなく文字列として保存されてしまうんですよ。気づかずに論理演算するとうまくいかないので注意しましょう。
VLOOKUPの第4引数を省略するとどうなる?
VLOOKUPで第4引数を省略すると、初期値はTRUE(近似一致)扱いになります。完全一致を期待しているのに、勝手に近い値が返ってきて混乱するケースが多いんですね。VLOOKUPを書くときは、FALSEを明示する習慣をつけておきましょう。
FALSE関数に関するよくある質問(FAQ)
最後に、FALSE関数や論理値FALSEに関して質問の多いポイントをQ&A形式でまとめておきますね。
Q1. VLOOKUPをXLOOKUPに書き換えたら、FALSEはどこに書くの?
XLOOKUPでは、VLOOKUPの第4引数FALSE(完全一致)に相当するものを書く必要はありません。XLOOKUPは初期状態で完全一致検索になるからです。
明示的に一致方法を指定したい場合は、第5引数「一致モード」を数値で渡します。
=XLOOKUP(A2, 商品マスタ!A:A, 商品マスタ!B:B, "該当なし", 0)
末尾の 0 が完全一致を意味し、VLOOKUPのFALSEに対応します。XLOOKUPの一致モードはFALSE/TRUEではなく数値で指定する点が違いですよ。0(完全一致)・-1・1(近似)・2(ワイルドカード)から選びます。同様にMATCH関数の第3引数も数値(0=完全一致)で、FALSEは使いません。
Q2. AND関数の代わりに「掛け算」を使うのはなぜ動くの?
論理値TRUEが1、FALSEが0として扱われる性質を利用しているからです。
(A2>0)*(B2>0) のように条件式を掛け算すると、両方TRUE(1×1=1)のときだけ1になります。片方でもFALSE(×0=0)なら0になり、AND条件と同じ判定ができるわけですね。FILTERやARRAYFORMULAのように配列をまとめて処理する場面で特に役立ちます。OR条件にしたいときは足し算(+)を使い、合計が1以上ならいずれかがTRUEと判定します。
Q3. 論理値FALSEを「0」や「いいえ」と表示することはできる?
はい、表示だけを変えたいなら表示形式やIF関数で対応できます。
セルの中身は論理値FALSEのまま、表示だけ「いいえ」にしたい場合はIF関数でラベルを付けます。
=IF(A2, "はい", "いいえ")
A2がTRUEなら「はい」、FALSEなら「いいえ」を返します。一方、数値の0として計算に使いたいだけなら、A2*1 のように演算すればFALSEが0に変換されます。「見た目を変えたい」のか「計算に使いたい」のかで方法を選ぶのがポイントですよ。
Q4. FALSEを含むセルを並べ替えると、TRUEとどちらが上にくる?
昇順で並べ替えると、FALSEがTRUEより上(先)にきます。
スプレッドシートでは論理値FALSE=0、TRUE=1として扱われるため、数値の小さいFALSEが先に並びます。完了フラグ(TRUE/FALSE)で昇順ソートすると未完了(FALSE)が上に集まる、と覚えておくと作業がはかどりますよ。完了済みを上に出したいときは降順を選びましょう。
FALSE関数と関連する論理関数
スプレッドシートの論理関数には、FALSE以外にもよく使う仲間がいます。
実務で使用頻度が高いのはIF・AND・ORです。TRUE/FALSE単体は「論理値の仕組みを理解する基礎」として押さえておけば十分ですよ。
まとめ
スプレッドシートのFALSE関数は、論理値FALSEを返すだけのシンプルな関数です。
- 引数なしで
=FALSE()と書くと論理値FALSEを返す - 数式内では
FALSE(関数なし)と書けば同じ結果 - FALSEは数値の0、TRUEは1として扱える
- VLOOKUPの第4引数のFALSEは完全一致検索を意味する(実務の定番)
- チェックボックスの未チェック値もFALSE
FALSE関数そのものを書く機会は少ないかもしれません。ですが、論理値FALSEの仕組みを理解しておくと、VLOOKUPの完全一致指定やチェックボックス集計、IFERRORの代替値など幅広い場面で役立ちますよ。
FALSE関数とセットで覚えておきたいのがTRUE関数です。論理値TRUEを返す対の関数なので、両方を理解しておくと論理演算の基礎が一気に固まりますよ。
