Excelで特定の人の出勤日を一覧表示する方法|複数条件から名前と日付を抽出する実践解説

Excel

Excelで「誰が何日に出勤しているか」を管理していると、人数の集計はできても「特定の人がどの日に入っているか」を一覧で表示するのが難しい場面があります。本記事では、名前と日付が表形式で入力されたデータから、特定の人物の出勤日だけを抽出して一覧表示する方法を分かりやすく解説します。

やりたいことの整理:名前と日付の表構造

今回のケースでは、A列に名前、B列以降に日付ごとの出勤情報が入っている構成が想定されます。

例えば「B列=1日」「C列=2日」という形で横に日付が並び、それぞれのセルに「ABC」などの記号や勤務情報が入っている状態です。

この中から「Bの人は3日・7日・21日」というように、該当する日付だけを抽出したいというのが目的になります。

COUNTIFではできない理由

COUNTIF関数は「何件あるか」を数えることはできますが、「誰がいつ入っているか」という一覧化には向いていません。

例えば「3日に何人いるか」は分かっても、「その3日に誰がいるか」は取得できないのが制限です。

そのため、別の関数や配列処理を使う必要があります。

基本解決方法:FILTER関数を使う(Excel 365 / 2021以降)

最新のExcelではFILTER関数を使うことで簡単に抽出できます。

例:特定の名前(Bさん)の行から、値が入っている日付だけを抽出する方法です。

=FILTER(B1:AG1, B2:AG2=”ABC”)のように条件を設定することで、該当日だけを表示できます。

さらにMATCH関数と組み合わせることで、日付ラベルも一緒に表示可能になります。

旧バージョンExcelの場合の対応方法

FILTER関数が使えない場合は、INDEX・SMALL・IF関数を組み合わせて抽出します。

例えば配列数式を使うことで、「条件に一致する列番号」を取得し、その列の見出し(日付)を表示できます。

少し複雑ですが、関数だけで一覧化することが可能です。

見やすくするための実務的な工夫

実際の現場では、データ構造を改善することで処理が大幅に楽になります。

横持ちではなく「名前・日付・状態」の縦持ちデータにすることで、ピボットテーブルやFILTERが非常に使いやすくなります。

例えば「太郎・3日・出勤」「太郎・7日・出勤」という形式です。

まとめ

ExcelではCOUNTIFだけでは「誰がいつ」を一覧化することはできません。

FILTER関数や配列関数を使うことで、特定の人物の出勤日を抽出することが可能になります。

またデータ構造自体を縦持ちにすることで、よりシンプルかつ柔軟な管理ができるようになります。

コメント

タイトルとURLをコピーしました