• ベストアンサー

エクセル2003で勤務シフト表を作成 退勤時刻を表示させる関数を探しています。

エクセル2003にて、職場の勤務シフト表を以下のように作成中です。   A   B   C   D   E   F   G   H   I   J   1     出   退   14   15  16   17  18  19  20 2山田  14  18   A   A   B   B 3佐藤  15  19       B   A   A   A 4鈴木  5福田  16  20           C   C   C   C 6             14   15  16   17  18  19  20 この様な形式です。 1.D2:J5セルには、ポジションの略称が入ります。  (例:2行の山田さんは14時~16時までAポジション、16時~18時までBポジション。4行の鈴木さんはこの日はお休み)  2.各時間帯の適正人数を考えながら、D2:J5セルにポジション略称でシフトを入力していきます。 3.上記2.の作業後、出勤時刻をB列に、退勤時刻をC列に自動的に表示されるようにしたいのです。   4.出勤時刻に関しては、なんとか自身で調べてB2セルの場合、   =IF(COUNTBLANK(D2:J2)=7,"",HLOOKUP("*",$D2:$J$6,7-ROW(),FALSE)) とすることで解決できました。 【ここから困っています。】 5.退勤時刻も同じように自動表示させたいのですが、ここで行き詰ってしまいました。   解決策をお教えいただけると助かります。   宜しくお願いいたします。        

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

  • ベストアンサー
回答No.1

ポジション指定の途中に空きがないなら、出勤時刻+ポジションのカ ウントでいいような気がします。もちろん、出勤時刻が空白なら空 白ですね。

nahctamok
質問者

お礼

ありがとうございます! 確かにそうですね。 解決しました!

その他の回答 (3)

noname#204879
noname#204879
回答No.4

B2: {=IF(COUNTA(D2:J2),SMALL((D2:J2<>"")*(D$1:J$1),COLUMNS(D2:J2)-COUNTA(D2:J2)+1),"")} C2: {=IF(COUNTA(D2:J2),MAX((D2:J2<>"")*(D$1:J$1))+1,"")}

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

質問は>勤務シフト表を作成 退勤時刻を表示させる関数を探しています。 だが標題としては勤務シフト表と関係あるものでなく、もっと一般的な表現が可能なものではないかな。 読者が一読だけした場合誤解するように思うが。 私が質問の真意を誤解してたらすみません。 下記は配列数式を使ってますが、どなたか、空白で無い初出列を捉える関数を使った回答を出してくれるかも知れない(期待)。 例データ A1:K6 A B C D E F G H I J K 1 出 退 13 14 15 16 17 18 19 20 2山田 14 18 A A B B 3佐藤 14 19 B A A A A 4鈴木 5福田 13 18 C C C C C B3の式 =IF(COUNTA(D3:K3)=0,"",INDEX($A$2:$K$2,1,MIN(IF(D3:K3<>"",COLUMN(D2:K3),"")))) と入れてSHIFT+CTRL+ENTERを3つ同時に押す。 下方向に式を複写 C3の式は =IF(COUNTA(D3:K3)=0,"",INDEX($A$2:$K$2,1,MAX(IF(D3:K3<>"",COLUMN(D3:K3),""))+1)) と入れてSHIFT+CTRL+ENTERを3つ同時に押す。 下方向に式を複写 結果 上表の B、C列

  • fufu01
  • ベストアンサー率31% (498/1603)
回答No.2

あまりスマートではないのですが、C2 に下記の式ではいかがでしょうか。 =IF(COUNTBLANK(D4:J4)=7,"",IF(LEN(J4)>0,20,IF(LEN(I4)>0,19,IF(LEN(H4)>0,18,IF(LEN(G4)>0,17,IF(LEN(F4)>0,16,IF(LEN(E4)>0,15,14)))))))

関連するQ&A

  • Excelでシフト表作成‥

    Excelで来年の基本シフト表(縦軸:日付・横軸:担当者)を作成しています。 月間労働時間177h、休日8日、1日のシフトパターン(A:7.45h・B:7.20h)の月で、 出勤時刻はA・B共に6:00~9:00の30分単位、 退勤時刻はシフトパターンと出勤時刻によって異なります。 シフトパターン列・出勤時刻列は、ドロップダウンリストからそれぞれ選択できるよう設定してあり、 できるだけ、担当者に入力の手間をかけないよう、 「シフトパターンと出勤時刻を選択すると、  退勤時刻列にシフトパターンと出勤時刻に応じた退勤時刻が設定される」 というようなことがしたいのですが、関数(数式)の設定で出来ますでしょうか? Excel特に関数や数式設定が苦手なので、何方かご教示いただけましたら幸いです。 バージョンはExcel2003です。よろしくお願いいたします。。

  • エクセル2011でシフト表を・・・

    出勤時間時間を”A列”に 退勤時間を”B列”にした時 ”C列”に実務時間(退勤時間から出勤時間を引いたもの)を ”D列”に超過勤務(9:00以上の勤務時間) A1=10:30、 B1=23:30 C1=B1-A1(=13:00) D1=C1-(9/24)でいいのですが・・・ 勤務時間が9:00に満たない場合、 表示したくはないのですが、 どのようにすればいいでしょうか? わかりづらくてすいません・・・

  • エクセル2011でシフト表を・・・

    出勤時間時間を”A列”に 退勤時間を”B列”にした時 ”C列”に実務時間(退勤時間から出勤時間を引いたもの)を表示したいのですが・・・ A1=19:30、 B1=23:30 C1=B1-A1(=4:00)でいいのですが、 出勤がない場合、A1、B1ともに空欄の場合、 C1が#VALUE!になってしまいます・・・ どうにかできませんか・・・

  • Excelで勤務表を作りたいのですが

    Excelで勤務表を作りたいのですが、なかなか関数がうまく使えません。 時間計算をご存知の方、教えて下さい。 入力列 A:出勤時刻 B:退勤時刻 C:勤務開始時間 *始業9:00のため、9時より以前の出勤時刻は9:00、9:00以降の出勤はその時刻を表示する。 D:休憩時間 E:実働時間(始:C/終:B/マイナス:D) F:時間内勤務(8時間まで) G:時間外勤務(8時間を超過したところから・22時迄) H:深夜残業(22時以降の勤務時間) このような説明でお分かり頂けるでしょうか。 よろしくお願いします。

  • エクセルでシフト表を作りたいのですが。

    エクセル初心者です。以下のように1ヶ月のシフト表を作ったのですが、時間帯別の人数を出したいと思っています。色々調べてみたのですがうまくいきません。 ちなみに12時~14時と18時~20時の稼働人数を出したいと思っております。 詳しい方おられましたら、よろしくお願い致します。    A列     B列     C列      D列     E列 ・ ・ ・ ・ BJ列   BK列 1          5/1              5/2               5/31 2         開始時刻  終了時刻   開始時刻  終了時刻   開始時刻  終了時刻 3  Aさん   8:30      17:00   4  Bさん   17:00     25:30  5  Cさん   12:00     21:00 ・   ・       ・        ・ ・   ・       ・        ・ ・   ・       ・        ・ 29 Dさん   18:00      23:00

  • エクセル2011でシフト管理表作ってますが・・・

    出勤時間時間を”A列”に 退勤時間を”B列”にした時 ”C列”に実務時間(退勤時間から出勤時間を引いて、一時間分の休憩を引いたもの) ”D列”に超過勤務(実務時間が9:00以上の勤務時間) A1=10:30、 B1=23:30  C1==IF(OR(B1="",A1="",AND(B1="",A1="")),"",B1-A1-(1/24)) ※=12:00 (※B1-A1-(1/24)は一時間休憩のため) D1の数式はどのようにしたらいいでしょうか? ※勤務時間が9:00に満たない場合、また=0のとき VALUE!、0:00を出さず、空欄表示にしたいのですが・・・ お願いいたします

  • Excelで シフト表作成中。(長文で

    Excelで、アルバイトのシフト表作りをしています。 あまり詳しくなくて、本を見たり このサイトで検索して作っていたのですが、 みなさんのお力を お借りできたらと思い、質問させていただきます。 今 作ってるのが、↓下のような シフト表なんですが、   A   B   C    D 1     2    3 ID       111   222 4 名前      梅   竹 5 1日  火   14   16 6 2日  水   16 7 3日  木       15 8 4日  金   14           この↑シートに それぞれの出勤時間を入力すると、 その入力した人だけを (別のシートの)その日付けの出勤表 (のセル)へ、自動的に データーが移るようにしたいと思っています。   A  B C D C 1 ID 2007年5月1日(火) 2 ( ) (     ) 3 ( ) (     ) うまく 説明出来ませんが すみません。 どなたか、アドバイスを よろしくお願いしたします。    

  • シフトを作るのに関数を教えてください

    バイト先のシフトを作るのに関数が分からないのでおしてえください。 日にちに記号(A~公)を入れると合計欄に実働時間の合計が出るように設定 したいのです! 宜しくお願いします。 記号 拘束時間 実働 A 10:00~19:00 9:00 B 09:30~15:30 5:30 C 10:00~17:00 6:00 D 11:00~22:00 8:00 公           0:00        1日 2日 3日 4日 5日  合計  月  火 水  木 金  山田 太郎 A  B  公  A  C  (29.50)    鈴木 花子 C  公  A  B  D  (28.50) ← と表示させたい

  • エクセルで2つの条件を満たした列をHLOOKUPで

    エクセルで、1行目と2行目の条件を満たした列をHLOOKUPで参照したいです。 人件費の表をつくっています。 給与明細の名前の欄をプルダウンで変更可能にし、名前を変えればその人の出勤時間が表示されるようにしたいです。 時間を記入するシート1は下のようになってます A     B     C     D 山田   山田   鈴木   鈴木 出勤   退勤   出勤   退勤 14    21    18    23 16    21    18    22 15    23    17    23 16    22    17    21 1行目が氏名 2行目が出勤か退勤か 3行目以降が時間記入欄です。 別シート2に給与明細がありまして A     B     C 氏名   山田 出退   出勤   退勤 1日   14    21 2日   16    21 3日   15    23 のように参照されています 氏名の「山田」の部分がプルダウンリストで選べるようになっていて この氏名の部分を「山田」から「鈴木」に変更すると自動的に出勤と退勤の時間が「鈴木」のものへ変更になるようにしたいです。 やりたいことは以下の事です シート2の氏名が「山田」であれば例のシート2のまま シート2の氏名の部分を「山田」から「鈴木」へ変更すれば B4、B5、B6セルは18、18、17に変わり C4、C5、C6セルは23、22,23に変化するようにしたいです。 関連しそうなIF,AND,MATCH,HLOOKUP等組み合わせてみましたが、どうもうまくいきません。 わかりづらいと思いますが、是非教えて頂ければ幸いですので宜しくお願いします。

  • Excelで勤務表の勤務記号をランダム作成するには

       1 2 3 4 5・・・・ 山田 A A 佐藤 C A 田中 D B 鈴木 B B =IF(D$6="","",IF(COUNTIF($AJ8:$AN8,D$6)>0,"休",SWITCH(RANDBETWEEN(1,5),1,"A",2,"B",3,"C",4,"D",5,"))) この式だと1日に同じ記号がダブったりします。(2の下のように) 上記のような勤務表でランダムに1日A~Dが各1回しか出ないようにしたいのですが、その様にするにはどうすればいいでしょうか? (1の下のように) 説明が分かりにくく申し訳ございません。

専門家に質問してみよう