機能
スプレッドシートのチェックボックスの使い方
チェックボックスは、セルに ON / OFF のスイッチを置く機能です。
Excelでは図形として扱われ、セルとの紐付けが面倒でしたが、スプレッドシートではセルの値そのものになります。この違いが集計のしやすさを生みます。

このページの中身(26項目)
作り方
セルを選択して「挿入 → チェックボックス」。これだけです。
範囲を選択してから実行すれば、まとめて挿入できます。
削除するときは、セルを選択して Delete キーではなく、「データ → データの入力規則 → 削除」から行ってください。Delete だとチェックが外れるだけで、ボックス自体は残ります。
中身は TRUE / FALSE
ここが最も重要です。
チェックボックスの実体は、TRUE か FALSE という論理値です。図形ではなく、セルの値です。
=A2 → TRUE または FALSE
=IF(A2, "済", "未") → チェック済みなら「済」
IF(A2 = TRUE, ...) と書く必要はありません。IF(A2, ...) で足ります。
この性質のおかげで、そのまま計算に使えます。

チェック数を数える
=COUNTIF(A2:A100, TRUE)
TRUE はクォートで囲みません。文字列ではなく論理値だからです。
未チェックを数えるなら次の形です。
=COUNTIF(A2:A100, FALSE)
進捗率を出すなら割ります。
=COUNTIF(A2:A100, TRUE) / COUNTA(A2:A100)
セルの表示形式を「パーセント」にすれば、進捗率が自動で更新されるタスクリストになります。
チェックした行だけ集計する
SUMIF の条件に使えます。
=SUMIF($A$2:$A$100, TRUE, $C$2:$C$100)
チェックが入っている行の金額だけを合計します。買い物リストや経費精算で使えます。
複数条件なら SUMIFS です。
=SUMIFS(C:C, A:A, TRUE, B:B, "食費")
チェックした行だけ抽出する
FILTER の条件にそのまま渡せます。
=FILTER(B2:D100, A2:A100)
= TRUE を書く必要はありません。 論理値をそのまま条件にできます。
逆にチェックが入っていない行なら、NOT を使います。
=FILTER(B2:D100, NOT(A2:A100))
条件付き書式と連動させる
チェックした行にグレーの背景を付けて、完了を視覚化できます。
「表示形式 → 条件付き書式 → カスタム数式」に次を入れます。
=$A2 = TRUE
範囲を A2:E1000 にすれば、行全体に色が付きます。
列だけを $ で固定するのがポイントです。行を固定($A$2)すると、全行がA2の値で判定されてしまいます。
打ち消し線を付けたいなら、書式で「取り消し線」を選んでください。完了したタスクが視覚的に消えるので、リストとして使いやすくなります。
チェックの値を変更する
既定は TRUE / FALSE ですが、別の値に変えられます。
「データ → データの入力規則 → チェックボックス → カスタムのセル値を使用する」
チェック時を 完了、未チェック時を 未着手 にする、といった設定ができます。
ただし、これをやると COUNTIF(A:A, TRUE) が動かなくなります。 集計する予定があるなら、既定の TRUE / FALSE のままにしておくほうが確実です。
一括操作
全部チェックする/外すには、範囲を選択して Space キーを押します。
数式で制御することはできません。チェックボックスのセルに数式を入れると、チェックボックスが消えます。 手動入力専用と考えてください。
「条件に応じて自動でチェックを入れたい」という要件は、チェックボックスでは実現できません。別のセルに IF で判定を出すか、Google Apps Script が必要になります。
プルダウンとの使い分け
チェックボックスは1クリックで切り替わるのが最大の利点です。プルダウンは開いて選ぶ2動作が必要になります。
タスクリストのように頻繁に切り替えるものは、チェックボックスのほうが圧倒的に速くなります。
実用例:進捗管理シート
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 完了 | タスク | 担当 | 期限 |
| 2 | ☑ | 資料作成 | 山田 | 4/10 |
| 3 | ☐ | レビュー | 鈴木 | 4/15 |
進捗率
=COUNTIF(A2:A100, TRUE) / COUNTA(B2:B100)
未完了かつ期限切れの件数
=COUNTIFS(A2:A100, FALSE, D2:D100, "<"&TODAY())
条件付き書式(完了はグレー+取り消し線)
=$A2 = TRUE
条件付き書式(未完了かつ期限切れは赤)
=AND($A2 = FALSE, $D2 <> "", $D2 < TODAY())
$D2 <> "" を入れているのは、期限が未入力の行を赤くしないためです。空欄は0として扱われ、TODAY より小さくなるので、これがないと未入力の行が全部赤くなります。
よくある問題
チェックボックスが消えた
セルに数式や値を直接入力すると消えます。「挿入 → チェックボックス」でやり直してください。
COUNTIFで数えられない
"TRUE"(クォート付き)で書いている → クォートを外す- カスタムのセル値に変更している → その値で数える
条件付き書式が全行に適用される
参照が $A$2 になっています。$A2 にしてください。
Deleteしてもボックスが残る
「データ → データの入力規則 → 削除」から消してください。
Excelとの違い
扱いが根本的に違います。
| Excel | スプレッドシート | |
|---|---|---|
| 実体 | 図形(フォームコントロール) | セルの値 |
| セルとの紐付け | リンクセルの設定が必要 | 不要 |
| 集計 | リンクセルを参照 | そのまま参照 |
| 挿入 | 開発タブが必要 | 挿入メニューから |
Excelではチェックボックスが図形なので、値を使うには「リンクするセル」を設定する手間がありました。
スプレッドシートはセルの値そのものなので、COUNTIF や FILTER にそのまま渡せます。 この点はスプレッドシートのほうが圧倒的に扱いやすくなっています。
中身は真偽値であるという理解
チェックボックスは、見た目は四角い枠ですが、セルの中身は真か偽の値です。この理解があると、他の関数との組み合わせが自然にできるようになります。
チェックが入っている状態は真、入っていない状態は偽です。したがって、条件式でそのまま判定できます。チェックの有無で処理を分けたいなら、そのセルを条件にするだけで済みます。
さらに、真偽値は内部的に一と零として扱われます。つまり、チェックが入っている個数を数えたいなら、その範囲を合計するだけで済みます。件数を数える関数を使う必要はありません。
この性質を使うと、進捗率の計算も簡単になります。チェックの合計を、全体の件数で割ればよいだけです。作業の進み具合を数値で表示できます。
また、値を変更することもできます。既定は真と偽ですが、設定でカスタムの値を指定できます。チェックが入ったら特定の文字が入る、という形にもできます。ただし、この設定にすると数値としての計算ができなくなるので、集計に使うなら既定のままが便利です。
条件付き書式と組み合わせる
チェックが入った行に色を付ける、あるいは取り消し線を引く。この処理は、作業リストの見た目を大きく改善します。
設定は単純で、条件付き書式の条件にチェックボックスのセルを指定するだけです。行全体に適用したい場合は、列だけを固定して行は固定しません。
取り消し線を引く場合は、書式で文字飾りを指定します。完了した項目が視覚的に区別できるので、残りの作業が一目で分かります。
文字色を薄くする方法もあります。完了した項目を目立たなくすることで、未完了の項目に注意が向きます。
背景色を塗る方法もありますが、行数が多いと画面が色で埋まって見にくくなります。作業リストでは、取り消し線か文字色の変更のほうが実用的です。
なお、条件付き書式は表示のたびに評価されます。行数が多い場合は、適用範囲をデータのある部分に絞ってください。
一括で操作する
チェックボックスが多くなると、すべてを外す作業が面倒になります。効率的な方法があります。
範囲を選択して削除キーを押すと、すべてのチェックが外れます。チェックボックス自体は残ります。
すべてにチェックを入れたい場合は、一つにチェックを入れてからコピーし、範囲に貼り付けます。
全体を制御するチェックボックスを作ることもできます。上部に一つ置いて、そこにチェックが入ったら全部を真にする、という動きです。ただし、これは数式では実現できません。数式は自分のセルにしか値を書けないためです。実現するには、簡単な処理を書く必要があります。
代替として、全体の状態を表示するだけなら数式でできます。すべてにチェックが入っているか、一つでも入っているか、といった判定です。これだけでも進捗の把握には十分役立ちます。
作業リストとしての設計
チェックボックスを使った作業リストを作る場合、いくつか設計の要点があります。
項目、担当、期限、完了。この四列があれば、たいていの用途で足ります。ここに完了日を自動で記録したくなりますが、数式では実現できません。チェックを入れた日を記録するには、処理を書く必要があります。
進捗率は、チェックの合計を件数で割って表示します。パーセント表示にすると分かりやすくなります。
期限が近い未完了の項目を目立たせる設定も有効です。チェックが入っていない、かつ期限が近い、という二つの条件を組み合わせます。完了したものは対象外になるので、注意すべき項目だけが色付きます。
並べ替えをする場合は、チェックボックスの列も一緒に動くことを確認してください。範囲の選択が正しくないと、チェックだけが取り残されて対応が崩れます。
フィルタで未完了だけを表示する運用も便利です。チェックが偽のものだけを表示すれば、残りの作業に集中できます。
「機能」の関数を全体から見る
機能は表そのものの扱いに関わる項目です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに4本あります。
このカテゴリで共通するつまずき
環境によって使えるものと使えないものがあります。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。
どれを使うかの決め方
共有先が決まっていないなら、対応範囲の広い方法を選んでください。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。
迷ったときは
→ 全関数の一覧 に目的別の索引があります。
数式を書く前の手順
書き始める前に決めておくことがあります。ここが曖昧なまま書くと、途中で行き詰まります。
1. 出したい結果を一文で書く
「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。
2. 元データの型を確認する
環境によって使えるものと使えないものがあります。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。
3. 空欄と0の扱いを決める
未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。
4. 条件の数を数える
共有先が決まっていないなら、対応範囲の広い方法を選んでください。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。
5. 共有先の環境を確認する
新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。
6. 1行だけ書いて確認する
全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。
どの関数でも共通する確認
関数を問わず、結果がずれる原因は限られています。この5つを確認すれば、大半が解決します。
参照を固定したか
下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。
範囲の行数が揃っているか
複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。
型が揃っているか
=ISNUMBER(A2)
数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。
前後に空白が入っていないか
=LEN(A2)&" / "&LEN(TRIM(A2))
数が違えば、余分な空白が入っています。見た目では判別できません。
別の方法で検算したか
同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。
最終行まで確認したか
一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。
引き継ぐときに残すこと
数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。
何を出している数式か
一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。
どの表を参照しているか
参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。
該当しないときの扱い
空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。
触ってはいけない場所
列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。
使った関数の対応環境
新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。
確定した期間は値にする
締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。
このサイトの収録状況
現在、201本の記事をカテゴリ別に整理しています。関数名が分からない場合は、カテゴリから探してください。
| カテゴリ | 記事数 |
|---|---|
| 目的別 | 51本 |
| 集計 | 47本 |
| 文字列 | 31本 |
| 日付 | 19本 |
| 検索・参照 | 15本 |
| 条件 | 15本 |
| 機能 | 12本 ←この記事 |
| 配列・抽出 | 10本 |
| 関数一覧 | 1本 |
探し方の順番
関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。
記事の構成
どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。
よくある質問
Q. チェックの数を数えたいのですが
範囲を合計してください。真が一として扱われるため、合計が個数になります。
Q. 進捗率を出したいのですが
チェックの合計を全体の件数で割ってください。パーセント表示にすると読みやすくなります。
Q. 全部を一度に外したいのですが
範囲を選択して削除キーを押してください。チェックボックス自体は残ります。
Q. チェックした日を記録できますか
数式ではできません。簡単な処理を書く必要があります。
Q. チェックで行に色を付けたいのですが
条件付き書式でそのセルを条件にしてください。行全体に付ける場合は、列だけを固定します。
Q. 値を変更できますか
設定でカスタムの値を指定できます。ただし数値としての集計はできなくなります。
Q. 並べ替えると対応が崩れます
範囲の選択が正しくありません。チェックボックスの列も含めて選択してください。
Q. 印刷すると表示されますか
表示されます。不要なら、印刷前に列を非表示にしてください。
まとめ
- 「挿入 → チェックボックス」で作る
- 実体は
TRUE/FALSEの論理値。そのまま計算に使える - 数えるのは
=COUNTIF(A:A, TRUE)。クォートは付けない - FILTER の条件にそのまま渡せる(
= TRUE不要) - 条件付き書式は
=$A2 = TRUE(列だけ固定) - 数式で自動チェックはできない。手動入力専用
関連ページ
- プルダウンの作り方 — 3択以上ならこちら
- 条件付き書式の使い方 — 色分けの詳細
- COUNTIF — チェック数の集計
- FILTER — チェックした行の抽出
チェックがずれる・消えるとき
並べ替えたらチェックが別の行に付いた
チェックボックスはセルの値なので、並べ替えれば一緒に動きます。 ずれたように見えるなら、並べ替えの範囲にチェック列が入っていなかったはずです。 表全体を選んでから並べ替えるか、フィルタを表全体に掛けてください。
行を挿入したらチェックボックスが無い
挿入した行は空のセルです。上の行からコピーして貼り付けると付きます。 毎回起きるなら、列全体にあらかじめ挿入しておくほうが楽です。
他の人に触られたくない
「データ → シートと範囲を保護」で、チェック列だけ編集できるようにします。 逆に、集計側の列を保護しておけば、数式を壊されることもありません。
チェック数が合わない
=COUNTIF(B2:B100,TRUE) が合わないときは、
チェックボックスではない TRUE という文字列が混ざっています。
=COUNTIF(B2:B100,"TRUE")(引用符付き)と結果を比べると分かります。
両方に件数があれば、混在しています。
チェックを記録として残す
チェックした日時を残したい、という要望はよく出ます。
数式では書けないので、列を1本足して Ctrl+; で日付を手で入れるのが確実です。
自動化したいなら Apps Script が要ります。
数式で =IF(B2,TODAY(),"") と書くと、
TODAY は毎日変わるので記録になりません。