• 締切済み

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 ( ) (     ) うまく 説明出来ませんが すみません。 どなたか、アドバイスを よろしくお願いしたします。    

みんなの回答

  • gokigen4
  • ベストアンサー率37% (3/8)
回答No.4

シート1        シート2    A   B   C    A      B       C 1 2007年5月1日(火) 1 =シート1!A1 2  ID   時間    2 ID      名前      時間 3  111  14      3 =シート1!A3 =vlookup(略) =シート1!C3                    (梅と表示)  (14と表示) 4 222  16     4 =シート1!A4 =vlookup(略) =シート1!C4                    (竹と表示)  (16と表示) 5 ・・ ・・ ・・   5 ・・    ・・     ・・  という答えを求めておられるのですか?それなら、vlookup関数で検索する表を作って関数で関連づければすみますが、もっと高度なことをお考えなのでしょうか?(表がうまくできないですね。ごめんなさい)  それから、私の場合はCONCATENATE関数は結合する文字列が増える場合に用いますが、年月日(曜)程度なら○○&△△&××を使うようにしています。  何はともあれ、頑張ってくださいね。ゴキゲンヨウ。

-kuroneko-
質問者

お礼

お返事が 遅くなりまして、申し訳ありませんでした。 私がしようとしてることは、少し高度なものなのかもしれませんね。 とりあえず、この教えていただいた表を参考にしながら、 もういちど 頑張ってみようと思います。ありがとうございました。

  • fx70_2150
  • ベストアンサー率57% (123/213)
回答No.3

日付は、シリアル値で入力されているものとします。 ID =CONCATENATE(YEAR(Sheet1!A5),"年",MONTH(Sheet1!A5),"月",DAY(Sheet1!A5),"日","(",Sheet1!B5,")") 時間 =CONCATENATE("(",Sheet1!C3,")") =CONCATENATE("(",Sheet1!C4,")") =CONCATENATE("(",Sheet1!C5,")") =CONCATENATE("(",Sheet1!D3,")") =CONCATENATE("(",Sheet1!D4,")") =CONCATENATE("(",Sheet1!D5,")")

-kuroneko-
質問者

補足

せっかく教えて頂いてるのに、理解できず 申し訳ありません。 うまくいかなくて、とりあえず Sheet1で勤務時間を入力する代わりに ● という記号を使って 色々とためしてみました。 【例】  2007年5月1日(火)   A       B        C 1 ID  2 ( ) (  名前  )  ( 時間 ) 3 ( ) (      ) B2のセルに、 ={IF(COUNTIF(OFFSET('Sheet1'!$A$4,1,1,1,80),"●")<ROW($B1),"",OFFSET('Sheet1'!$A$4,0,SMALL(IF(OFFSET('Sheet1'!$A$4,1,1,1,81)="●",COLUMN('Sheet1'!$B$4:$BI$4),""),ROW($B1))-1,1,1))} としたところ、なんとか B行に名前が表示されるようになったんですが、 出来れば ● ではなく、1(時)~24(時)を入力して、 Sheet2の B行に名前、c行に 出勤時間を表示させたいと思っています。 引き続き、アドバイスの方を よろしくお願いいたします。

  • fx70_2150
  • ベストアンサー率57% (123/213)
回答No.2

A B C D E 1 ID =Sheet1!A5 =B1+1 =C1+1 =D1+1 2 =Sheet1!B3 =Sheet1!B5 =Sheet1!B6 =Sheet1!B7 =Sheet1!B8 3 =Sheet1!C3 =Sheet1!C5 =Sheet1!C6 =Sheet1!C7 =Sheet1!C8

-kuroneko-
質問者

お礼

具体的な回答、ありがとうございます。 うまく説明できなくて、本当に すみません。 質問内容の補足をさせてください。 sheet1に、       A   B    C    D 1     2    3 ID       111   222 4 名前      梅    竹 5 1日  火   14    16 6 2日  水   16 7 3日  木        15 8 4日  金   14         というアルバイト表を作っています。  例:ID番号111の 梅さんが 1日に14時から出勤します。    5行目の 梅さんの列の 1日に 14と入力した場合。 sheet2の 5月1日の予定表の()欄のシートに自動的にデーターが移るようにしたいんです。   A  B             C    1 ID 2007年5月1日(火)   時間 2 (111) ( 梅   )      (14) 3 (  ) (     ) 他の人も同じように、sheet1の それぞれの人欄に時間を入力したときに、 sheet2の 予定表に、入力した人の名前と時間が、上から順番に入るように作りたいと思っています。 アドバイス、よろしくお願いいたします。

  • gokigen4
  • ベストアンサー率37% (3/8)
回答No.1

 ウーン、わかりきったこと、頓珍漢な内容で貴方の意が理解できていないことを記していたら勘弁してください。  入力値を別のセルにも表示させるだけなら、VLOOKUPとかHLOKUPといったデータ検索関数を使うとか、最も原始的な方法なら、(例)セルA1に数字5を入れておき、セルB10に移って、=を入力したままセルA1をクリックしてリターンを押すとセルB10に5が表示されますから、それらを逆手にとって、簡単なシステムを組むことができるはずです。

参考URL:
http://www.kenzo30.com/index.htm
-kuroneko-
質問者

お礼

VLOOKUPとかHLOKUPとかを使ってためしているんですが、 組み方が間違っているようで うまくできないんです。 もう少し 色々と調べて頑張ってみます。 ありがとうございました。

関連するQ&A