Excelでチェックリストを作るとき、項目を並べて横に「○」を手で書くだけでも記録はできます。ただ、それだと「あといくつ残っているか」「どれが残っているか」を毎回目で探すことになります。
この記事では、完了をチェックボックスかプルダウンで入力し、完了した行の色を変え、未完了の件数と行を自動で出すところまでを作ります。
先に表の形を決める
1行に1項目、1行目に見出しを置く形にします。例として、次の列で作ります。
| A | B | C | D | E | F |
|---|---|---|---|---|---|
| No | 項目 | 担当 | 期限 | 完了 | メモ |
- 見出しは1行だけにし、セルの結合はしない
- 件数や完了率などの集計は、表の外(表の上や右側、別のシート)に置く
範囲を選んで Ctrl + T でテーブルにしておくと、行を追加したときに書式や入力規則が引き継がれやすくなります。この記事の式は、わかりやすさのため2行目から51行目のセル範囲で書いています。
完了の入力方法を選ぶ
| 方法 | 特徴 | 向いている場面 |
|---|---|---|
| セル内のチェックボックス | セルの値がTRUE/FALSEになる。並べ替えても行と一緒に動く | Microsoft 365で、チェックボックスの機能が使える環境 |
| フォームコントロールのチェックボックス | セルの上に置く部品。1つずつリンク先のセルを設定する必要がある | 古いバージョンで、どうしても見た目をチェックボックスにしたい |
| プルダウン(入力規則) | 多くのバージョンで使える。「完了」「対象外」など3つ以上の状態も選べる | 共有する相手のExcelのバージョンがそろわない |
迷ったときは、どの環境でも同じように動くプルダウンを選ぶのが無難です。
方法1:プルダウンで完了を記録する
- 完了列の入力範囲(E2:E51)を選択する
- 「データ」→「データの入力規則」を開く
- 「入力値の種類」で「リスト」を選ぶ
- 「元の値」に
未完了,完了,対象外と入力する(区切りは半角カンマ) - 「OK」を押す
あわせて、項目を入れた行の完了列に「未完了」を最初から入れておきます。こうすると、空欄が「未入力」なのか「未完了」なのかで迷いません。
方法2:チェックボックスで完了を記録する
セル内のチェックボックス
- 完了列の範囲(E2:E51)を選択する
- 「挿入」タブの「チェックボックス」を押す
選んだセルにチェックボックスが入り、チェックするとTRUE、外すとFALSEになります。「挿入」タブに「チェックボックス」が見当たらない場合は、使っているバージョンや更新チャネルでこの機能が提供されていない可能性があります。その場合は、プルダウンかフォームコントロールを使ってください。
フォームコントロールのチェックボックス
- 「ファイル」→「オプション」→「リボンのユーザー設定」で「開発」にチェックを入れる
- 「開発」→「挿入」→「フォームコントロール」の「チェックボックス」を選び、セルの上に配置する
- チェックボックスを右クリック →「コントロールの書式設定」→「コントロール」タブの「リンクするセル」に、同じ行のセル(例:E2)を指定する
フォームコントロールはセルの上に浮いている部品です。行を並べ替えると、チェックボックスとリンクしたセルの対応がずれることがあります。並べ替えをよく使う表には向きません。
完了した行の色を変える
条件付き書式で、完了した行全体をグレーにします。
- 表のデータ部分(A2:F51)を選択する
- 「ホーム」→「条件付き書式」→「新しいルール」→「数式を使用して、書式設定するセルを決定」
- 数式を入力する
- プルダウンの場合:
=$E2="完了" - チェックボックスの場合:
=$E2=TRUE
- プルダウンの場合:
- 「書式」で塗りつぶしをグレーにする(必要なら文字に取り消し線も付ける)
$E2 のように列の前にだけ $ を付けると、どの列のセルもE列を見て判断し、行は1行ずつずれていきます。これで行全体の色が変わります。
期限を過ぎた未完了の行を赤くしたいときは、もう1つルールを追加します。
=AND($E2<>"完了",$D2<>"",$D2<TODAY())
チェックボックスの場合は、$E2<>"完了" を $E2=FALSE に置き換えます。
未完了の件数を数える
表の外のセルに、次の式を入れます。
プルダウンの場合
未完了の件数:=COUNTIF(E2:E51,"未完了")
完了列が空欄の行も未完了として数えたいときは、項目が入っている行のうち「完了」「対象外」以外を数えます。
=COUNTIFS(B2:B51,"<>",E2:E51,"<>完了",E2:E51,"<>対象外")
チェックボックスの場合
=COUNTIFS(B2:B51,"<>",E2:E51,FALSE)
完了率(「対象外」を分母から除く場合)
=COUNTIF(E2:E51,"完了")/(COUNTA(B2:B51)-COUNTIF(E2:E51,"対象外"))
セルの表示形式をパーセントにします。項目が1つも入っていないと分母が0になりエラーになるので、項目を入れてから確認してください。
未完了の行だけを表示する
フィルターで絞り込む
見出し行を選んで「データ」→「フィルター」を設定し、完了列で「未完了」だけ(チェックボックスならFALSEだけ)を表示します。もっとも手軽な方法です。
FILTER関数で一覧を作る
Microsoft 365やExcel 2021以降なら、FILTER関数を使って、未完了の行を別の場所に自動で並べられます。
=FILTER(A2:D51,(B2:B51<>"")*(E2:E51<>"完了")*(E2:E51<>"対象外"),"未完了なし")
チェックボックスの場合は、条件を (B2:B51<>"")*(E2:E51=FALSE) にします。結果は下と右に広がって表示されるので、空いている場所か別のシートに置いてください。
繰り返し使うときの運用
- 原本のシートを残す:完了列が空の状態のシートを原本として残しておきます。使うたびにシートをコピーし、シート名に日付や案件名を付けます。
- チェックを外すときの注意:セル内のチェックボックスは、Deleteキーを押すとチェックボックスごと消える場合があります。リセットするときは原本からコピーし直すほうが確実です。
- 壊されたくない列を守る:完了列とメモ列だけロックを外してからシートを保護すると、項目名や数式の書き換えを防げます(「セルの書式設定」→「保護」でロックを外し、「校閲」→「シートの保護」)。
- 集計の範囲を確認する:行を増やしたときは、件数の式や条件付き書式の範囲に新しい行が含まれているかを確認します。テーブルにしている場合でも、集計の式がセル範囲で書かれていれば自動では広がりません。
