Excelで生年月日や性別などの条件に応じてデータを抽出したい場面は少なくありません。特に学校やスポーツの記録管理では、4~9月生まれの男子、10~3月生まれの男子、女子など複数のグループに分けて集計したいことがあります。しかしExcel2019にはExcel365のFILTER関数がないため、少し工夫が必要です。この記事では、生年月日を「4.09」のように入力しているデータから、4~9月生まれの男子を抽出する方法をわかりやすく解説します。
Excel2019ではFILTER関数が使えない
Excel365やExcel2021ではFILTER関数で簡単に条件抽出できますが、Excel2019では利用できません。
そのため、補助列を作成して条件に合うデータを抽出する方法が現実的です。
元データの構成例
| A列 | B列 | C列 | D列 |
|---|---|---|---|
| 生年月日 | 身長 | 体重 | 性別 |
| 4.09 | 130 | 30 | 男 |
| 11.15 | 135 | 34 | 男 |
| 6.20 | 128 | 28 | 女 |
今回は「4~9月生まれの男子」をF~H列へ抽出する例で説明します。
補助列を使って対象者を判定する
まずE列を補助列として使用します。
E2セルに次の式を入力します。
=IF(AND(INT(A2)>=4,INT(A2)<=9,D2=”男”),ROW(),””)
この式は、生年月日の月部分が4~9であり、かつ性別が男の場合に行番号を返します。
その後、下方向へコピーします。
抽出用の行番号を取得する
次にF列以降で条件に合うデータを順番に取り出します。
F2セルに次の式を入力します。
=IFERROR(INDEX($A:$A,SMALL($E$2:$E$100,ROW(A1))),””)
これで条件に合う生年月日が表示されます。
G2セルには身長を表示するため、次の式を入力します。
=IF($F2=””,””,INDEX($B:$B,SMALL($E$2:$E$100,ROW(A1))))
H2セルには体重を表示するため、次の式を入力します。
=IF($F2=””,””,INDEX($C:$C,SMALL($E$2:$E$100,ROW(A1))))
F2~H2を下方向へコピーすると、対象者だけが一覧表示されます。
4つの集団へ分ける方法
最終的に次の4グループへ分ける場合は、それぞれ専用の補助列を作ると管理しやすくなります。
| グループ | 条件 |
|---|---|
| 4~9月生まれ男子 | 月が4~9かつ男 |
| 10~3月生まれ男子 | 月が10~12または1~3かつ男 |
| 4~9月生まれ女子 | 月が4~9かつ女 |
| 10~3月生まれ女子 | 月が10~12または1~3かつ女 |
条件式の性別や月の範囲を変更するだけで、同じ仕組みを利用できます。
より簡単な方法はフィルター機能
抽出結果を数式で常時表示する必要がない場合は、Excel標準のオートフィルターを利用する方法もあります。
性別を「男」で絞り込み、生年月日の月部分で4~9月を選択すれば簡単に対象者だけを表示できます。
データ件数が少ない場合は、関数よりもフィルター機能の方が管理しやすいケースもあります。
まとめ
Excel2019ではFILTER関数が使えないため、条件付き抽出には補助列とINDEX関数・SMALL関数を組み合わせる方法が便利です。今回のような4~9月生まれ男子の抽出だけでなく、10~3月生まれや女子のグループ分けにも応用できます。今後データ件数が増える場合は、補助列を活用した抽出方法を覚えておくと集計作業が大幅に効率化できます。


コメント