アルバイトなどの仕事では、以下のような2軸のシフト表を作成することが多いです。このような表形式はわかりやすいのですが、備考などの情報追加がしにくいです。

そこで、今回はシフト表に基づいて担当者名を自動入力されるようにし、以下のようなシフト一覧を作成したいと思います。

「コンサル流実務で役立つExcelテクニック」では、コンサルタントとして様々なプロジェクトに従事してきた著者が、実務において実際に活用したExcelのテクニックを紹介します。特に次のような業務に従事されている方に役立つテクニックを多く掲載しています。
- データの集計や分析
- 分析したデータの可視化
- 顧客リストの作成・管理
- スケジュールやWBS(Work Breakdown Structure)の作成・管理
- 成績などに基づくランキングの作成
- 従業員の年齢・入社歴の管理
- 事業計画の作成
今ならkindle unlimitedで無料で読むことができます。
「デキる社員の100のコンピテンシー」では、マインドセットとスキルセットに分けて、どのような時代、どのような場所においても通用するコンピテンシーを紹介しています。
マインドセットでは、仕事に対する考え方や信念、価値観などの、思考や行動の基盤となる心の持ち方を解説しています。また、スキルセットについては、仕事を遂行するために必要な能力・技術を解説しています。
INDEX関数、MATCH関数とは
今回はINDEX関数とMATCH関数を使って、担当者名のデータを取得したいと思います。役割を簡単に説明すると、INDEX関数は値を取得し、MATCH関数は取得するセルの場所を示します。
INDEX関数
INDEX関数は、指定した範囲内のセルと行を指定してその値を取得することができます。
関数 | 役割 |
---|---|
INDEX(配列,行番号,[列番号]) | 範囲内のセルと行を指定してその値を取得する |
MATCH関数
MATCH関数は、指定した範囲の中で、指定した値がある位置を取得することができます。
関数 | 役割 |
---|---|
MATCH(検索値,検索範囲,[照合の種類]) | 範囲内のセルと行を指定してその値を取得する。照合の種類は「1」以下、「0」完全一致、「-1」以上から選択することができる。 |
INDEX関数、MATCH関数を使ってシフト表を一覧化する方法
今回はシフト表から担当者名を取得して、シフト一覧に表示させたいので、セルC3に以下の数式を入力します。
=INDEX($H$3:$L$6,MATCH($B3,$G$3:$G$6,0),MATCH($A3,$H$2:$L$2,0))

数式 | 役割 |
---|---|
INDEX($H$3:$L$6 | セルH4~L12の範囲を検索する。シフト表の担当者名が記載されている部分を選択します。 |
MATCH($B3,$G$3:$G$6,0) | 一つ目のMATCH関数は行番号を示します。セルB3「9時~12時」が、セルG3~G6の「時間」の何行目にあるかを確認します。 「9時~12時」は1行目なので、「1」を返します。 |
MATCH($A3,$H$2:$L$2,0) | 二つ目のMATCH関数は列番号を示します。セルA3「月」がセルH2~L2の「曜日」の何列目にあるかを確認します。 「月」は1列目なので、「1」を返します。 |
MATCH関数が返す値を数字にすると以下のように、INDEX関数で1行目・1列目の値を表示する数式になっています。
=INDEX($H$3:$L$6,1,1)
セルC3の数式を下にコピー&ペーストすれば、以下のように「曜日」と「時間」に応じた担当者がシフト表から取得することができます。

シフト表の名前を変更すれば、シフト一覧の名前も更新されます。

このように一覧化すれば、備考欄を設けて情報を付加したりすることができます。

シフト表とシフト一覧を運用する場合は、このようにシフト表から名前を取得すれば効率的です。
コメント