• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル関数をご伝授お願いします)

Excel関数でシフト表を作成する方法

このQ&Aのポイント
  • Excelを使用してシフト表を作成する方法について教えてください。
  • シフト表の各日に誰が出勤するか、また、記号別の各日に誰が出勤したかを表示する方法を教えてください。
  • どのような関数を使用すれば、シフト表を要件通りに作成できるか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.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)))

関連するQ&A