- ベストアンサー
Excel関数でシフト表を作成する方法
- Excelを使用してシフト表を作成する方法について教えてください。
- シフト表の各日に誰が出勤するか、また、記号別の各日に誰が出勤したかを表示する方法を教えてください。
- どのような関数を使用すれば、シフト表を要件通りに作成できるか教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
分かり易く簡単な方法は例えば作業用のシートを別に作って対応する方法です。 シート1にはお示しの表が有るとしてB1セルから右横には日付が、B2セルから右横には曜日が入力されているとします。 また、名前はA3セルから下方に入力され、それぞれの人のデータが横の列や行に入力されているとします。 そこでシート2は作業用のシートとしてB1セルには次の式を入力して横方向にドラッグコピーしたのちに2行目まで下方にドラッグコピーします。これによってシート1と同じ日付や曜日が表示されます。 =IF(Sheet1!B1="","",Sheet1!B1) A3セルには次の式を入力して下方にドラッグコピーします。 =IF(Sheet1!A3="","",Sheet1!A3) B3セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(OR($A3="",B$1=2),"",IF(Sheet1!B3="","",Sheet1!B3&"/"&COUNTIF(Sheet1!B$3:B3,Sheet1!B3))) シート3にお求めの表を作るとしてB1セルには次の式を入力して横方向にドラッグコピーしたのちに2行目まで下方にドラッグコピーします。これによってシート1と同じ日付や曜日が表示されます。 A3セルから下方には(1),(1),1,(2),(2)・・・などを入力します。 B3セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IFERROR(INDEX(Sheet2!$A:$A,MATCH($A3&"/"&COUNTIF($A$3:$A3,$A3),Sheet2!B:B,0)),"") 又は =IF(ISERROR(INDEX(Sheet2!$A:$A,MATCH($A3&"/"&COUNTIF($A$3:$A3,$A3),Sheet2!B:B,0))),"",INDEX(Sheet2!$A:$A,MATCH($A3&"/"&COUNTIF($A$3:$A3,$A3),Sheet2!B:B,0)))