Excelで名簿を管理しているとき、「まだ当番をしていない人」や「特定のイベントに参加していない人」をパッと抽出したいことはありませんか?
今回は、COUNTIF関数とFILTER関数を組み合わせて、リストの中から「未経験者」だけを自動で絞り込む方法を解説します。さらに、エラー表示を消して見た目を整えるテクニックも併せてご紹介します。
ステップ1:COUNTIF関数で参加回数をカウントする
まず、各生徒がこれまでに何回当番をしたかを計算します。ここで重要なのは、当番経験者のリストの中に名前が何回出てくるかを数えることです。
=COUNTIF(当番経験者の列, 生徒名)
ソースによれば、このとき指定する範囲は少し多めに取っておくのがポイントです。これで、各個人の参加回数が数字で表示されます(0なら未経験、1以上なら経験者)。
ステップ2:FILTER関数で「0回」の人だけを抽出する
次に、先ほどのカウント結果が「0」の人だけを表示させるために、FILTER関数を追加します。
=FILTER(生徒名の範囲, COUNTIF(範囲, 条件)=0)
これにより、名簿の中からまだ当番をしていない人の名前だけが自動的に返されます。
ステップ3:表示をきれいに整える(TOCOLとIFERROR)
抽出した結果、不要な「0」が表示されたり、全員が当番を終えたときにエラーが出てしまうのを防ぎます。
1. 空白や0を無視する(TOCOL関数)
TOCOL関数は配列を1列に並べる関数ですが、引数に「1」を指定することで空白を無視して表示できます。
=TOCOL(FILTER関数の式, 1)
2. 該当者なしの場合の処理(IFERROR関数)
全員が当番を経験し、未経験者がいなくなった場合にエラーが表示されないよう、IFERROR関数で「なし」と表示させます。
=IFERROR(これまでの数式, "なし")
まとめ:完成した数式のイメージ
最終的には、以下のような組み合わせの数式になります。
=IFERROR(TOCOL(FILTER(生徒名範囲, COUNTIF(当番範囲, 生徒名範囲)=0), 1), “なし”)
この数式を使えば、当番経験者のリストを更新するだけで、リアルタイムに「次の当番候補(未経験者)」が誰なのかを一目で確認できるようになります。ぜひ活用してみてください。

