みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Excelでの日別ガントチャート作成方法作成

Excel2007を使用してシート1では以下のような月次勤務表を作成しております。このシート1の月次の勤務表は縦軸に30人ほどの氏名、横軸に日にちを展開しております。この表をもとに、8/1に勤務するものをピックアップして、シート2でガントチャートを作成したいのですが
どなたかご教授いただけないでしょうか?
なお、月次勤務表の横軸の日付と曜日は、月が変われば、自動で変わるように作成しております。

月次勤務表例(シート1)

     A列   B列  C列      D列   E列    F列    G列・・・・・・・・・AG列
1行目 2012年8月

3行目 No氏名 種別1234・・・・・・・・・・・・31
4行目         水木金土
5行目 1 A氏   出勤    9:00          11:00
6行目         退社17:00      16:00
7行目        休憩0.50.25
8行目        実働7.50.004.750.00
9行目 2       B氏   出勤    9:00    10:00      
・             退社17:0015:00      
・           休憩1.00.25
・           実働7.004.750.000.00

この月次シートから、別シートに例えば、8/1に勤務するものと、その時間帯をガントチャート形式
で表示するための関数をご教授いただければ幸いです。

投稿日時 - 2012-08-08 00:36:16

QNo.7632646

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

 確認したいのですが、その日に休憩した総時間のデータは在っても、何時から休憩を開始したかというデータが無いという事は、ガントチャートには休憩時間を表示しなくとも良いと考えれば宜しいのですね?(データが無いため表示のしようがありません)

 それでも宜しいのでしたら、次の様な方法は如何でしょうか?

 まず、Sheet1のD3セルに次の関数を入力して下さい。

=IF(ISNUMBER(1/(DAY($A$1-1+COLUMNS($D:D))=COLUMNS($D:D))),$A$1-1+COLUMNS($D:D),"")

 次に、Sheet1のD3セルをコピーして、Sheet1のD4セルに貼り付けて下さい。
 次に、以下の操作を行って下さい。

Sheet1のD3セルにカーソルを合わせてから、マウスを右クリック
  ↓
現れた選択肢の中にある[セルの書式設定]をクリック
  ↓
現れた「セルの書式設定」ダイアログボックスの中の[表示形式]タブをクリック
  ↓
「分類」欄の中にある[ユーザー定義]をクリック
  ↓
「種類」欄に

d

と入力
  ↓
現れた「セルの書式設定」ダイアログボックスの中の[OK]ボタンをクリック
  ↓
Sheet1のD4セルにカーソルを合わせてから、マウスを右クリック
  ↓
現れた選択肢の中にある[セルの書式設定]をクリック
  ↓
現れた「セルの書式設定」ダイアログボックスの中の[表示形式]タブをクリック
  ↓
「分類」欄の中にある[ユーザー定義]をクリック
  ↓
「種類」欄に

aaa

と入力
  ↓
現れた「セルの書式設定」ダイアログボックスの中の[OK]ボタンをクリック

 次に、Sheet1のD3~D4の範囲をコピーして、Sheet1のE3~AH4の範囲に貼り付けて下さい。

 次に、Sheet2のA1~F1の範囲のセルを結合し、その中に次の関数を入力して下さい。

=IF(ISNUMBER(Sheet1!$D$3),TEXT(Sheet1!$A$1,"yyyy年m月"),"")

 次に、Sheet2のG1~H1の範囲のセルを結合して下さい。
 次に、Sheet2の
I1セルに  日
A3セルに  No.
B3セルに  氏名
と入力して下さい。
 次に、Sheet2のC3~F3の範囲のセルを結合し、その結合したセルの文字の左右方向の配置を[中央揃え]にしてから、以下の操作を行って下さい。

Sheet1のD3セルにカーソルを合わせてから、マウスを右クリック
  ↓
現れた選択肢の中にある[セルの書式設定]をクリック
  ↓
現れた「セルの書式設定」ダイアログボックスの中の「表示形式」タブをクリック
  ↓
「分類」欄の中にある[ユーザー定義]をクリック
  ↓
「種類」欄に

[h]:mm

と入力
  ↓
「セルの書式設定」ダイアログボックスの中の[OK]ボタンをクリック

 次に、先程結合したSheet2のC3~F3の範囲をコピーして、Sheet2のG3~J3の範囲に貼り付けて下さい。
 次に、Sheet2のC3セルに

0:00

と入力して下さい。
 次に、Sheet2のG3セルに次の関数を入力して下さい。

=C3+"1:00"

 次に、Sheet2のG3~J3の範囲をコピーして、Sheet2のK3~CX3の範囲に貼り付けて下さい。
 次に、Sheet2のA4~A6の範囲のセルを結合し、その結合したセルに

1

と入力して下さい。
 次に、Sheet2のB4~B6の範囲のセルを結合し、その結合したセルに次の関数を入力して下さい。

=IF(AND($A4="",COUNTIF(Sheet1!$A:$A,$A4)=0),"",VLOOKUP($A4,Sheet1!$A:$B,2,FALSE)&"")

 次に、以下の操作を行って下さい。

Sheet2のE5セルをセルにカーソルを合わせてから、マウスをクリック
  ↓
Excelウィンドウの[ホーム]タブをクリック
  ↓
「スタイル」グループの中にある[条件付き書式]ボタンをクリック
  ↓
現れた選択肢の中にある[新しいルール]をクリック
  ↓
現れた「新しい書式ルール」ダイアログボックス内の「ルールの種類を選択してください」欄の中にある[数式を使用して、書式設定するセルを決定]をクリック
  ↓
現れた「次の数式を満たす場合に値を書式設定」欄に次の数式を入力

=AND(INDEX(Sheet1!$D:$AH,MATCH($B4,Sheet1!$B:$B,0)+3,MATCH((TEXT(Sheet1!$A$1,"yyyy/m/")&$G$1)+0,Sheet1!$D$3:$AH$3,0))>0,$C$3+(COLUMNS($E:E)-0.5)*"0:15">INDEX(Sheet1!$D:$AH,MATCH($B4,Sheet1!$B:$B,0),MATCH((TEXT(Sheet1!$A$1,"yyyy/m/")&$G$1)+0,Sheet1!$D$3:$AH$3,0)),$C$3+(COLUMNS($E:E)-0.5)*"0:15"<INDEX(Sheet1!$D:$AH,MATCH($B4,Sheet1!$B:$B,0)+1,MATCH((TEXT(Sheet1!$A$1,"yyyy/m/")&$G$1)+0,Sheet1!$D$3:$AH$3,0)))

  ↓
「新しい書式ルール」ダイアログボックス内の[書式]ボタンをクリック
  ↓
現れた「セルの書式設定」ダイアログボックスの[塗りつぶし]タブをクリック
  ↓
適当な色の四角形をクリック
  ↓
「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック
  ↓
「新しい書式ルール」ダイアログボックスの[OK]ボタンをクリック

 次に、Sheet2のE5セルをコピーして、Sheet2のE5~CV5の範囲に貼り付けて下さい。
 次に、Sheet2のA4~CX6の範囲をコピーして、同じ列の7行目以下に貼り付けて下さい。

 以上です。

投稿日時 - 2012-08-08 13:23:28

あなたにオススメの質問