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

エクセル関数でシフト表を作成する方法

このQ&Aのポイント
  • エクセル関数を使用して、シフト表を作成する方法を教えてください。シフト表は、日付と勤務者名を含んだ表であり、出勤日には記号が入力されます。また、最初に出勤した日と最後に出勤した日を表示させたいという要望があります。
  • シフト表は、【Sheet1】に作成されます。日付は連続した日付であり、出勤日には記号が入力されます。種類によって記号は異なるため、詳細は質問文章をご参照ください。
  • 【Sheet2】に勤務者名を入力すると、最初に出勤した日と最後に出勤した日を表示させたいという要望がありますが、具体的な方法については記述されていません。

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

  • ベストアンサー
noname#204879
noname#204879
回答No.4

添付図参照 Sheet2 おける式(何れも配列数式)は次のとおり。 B2: {=IF(A2="","",MIN(IF(OFFSET(Sheet1!$A$1,MATCH(A2,Sheet1!$A:$A,0)-1,1,,31)="",10^7,OFFSET(Sheet1!$A$1,,1,,31))))} C2: {=IF(A2="","",MAX(IF(OFFSET(Sheet1!$A$1,MATCH(A2,Sheet1!$A:$A,0)-1,1,,31)="",0,OFFSET(Sheet1!$A$1,,1,,31))))}

katkarapu
質問者

お礼

お礼が遅くなり申し訳ありません。 見本の表も添付していただき大変分かりやすかったです。 ありがとうございました!

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

>2行目は出勤日に記号を入力します。 既出回答でも指摘されていますが,出勤日に記号を手入力していて,出勤していない日はホントに何も入ってない数式も入ってないただの空セルになっているなら 最初の出勤日: =IF(COUNTA(Sheet1!B2:IV2),INDEX(Sheet1!B$1:IV$1,MATCH("*",B2:IV2,0)),"") 最後の出勤日: =IF(COUNTA(Sheet1!B2:IV2),INDEX(Sheet1!B$1:IV$1,MATCH("",B2:IV2,-1)),"") 実際に何列から何列までの表になっているのかご相談が手抜きですが,ちゃんと実際のセル範囲に合わせて数式を直してから使ってください。

katkarapu
質問者

お礼

説明不足ですみませんでした。 ご回答いただきありがとうございました!

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 その関数を考える際に、出勤していない日は何と入力されているのか知る必要がありますので、補足等でお教え願います。  もし、出勤していない日には何も入力されていない場合には、その事をお教え願います。

katkarapu
質問者

補足

説明不足ですみません。 休日は一斉にとるので、表に反映させていません。 ということで、B列以降は何らかの記号が入っていることになります。 よろしくお願いします。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

一例ですが 最小=MIN(IF($B2:$BA2="",”2099/12/31"*1,$B$1:$BA$1)) と入力してCtrl+Shift+Enterで配列数式に 最小=MAX(IF($B2:$BA2="",0,$B$1:$BA$1)) と入力してCtrl+Shift+Enterで配列数式に

katkarapu
質問者

お礼

ご回答ありがとうございます。 なぜか最小も最大もエラーが出てしまうのですが・・・ もう一度範囲など確認して試してみます。

関連するQ&A