• 締切済み

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

Excel2007を使用してシート1では以下のような月次勤務表を作成しております。このシート1の月次の勤務表は縦軸に30人ほどの氏名、横軸に日にちを展開しております。この表をもとに、8/1に勤務するものをピックアップして、シート2でガントチャートを作成したいのですが どなたかご教授いただけないでしょうか? なお、月次勤務表の横軸の日付と曜日は、月が変われば、自動で変わるように作成しております。 月次勤務表例(シート1)      A列   B列  C列      D列   E列    F列    G列・・・・・・・・・AG列 1行目 2012年8月 3行目 No 氏名 種別 1 2 3 4・・・・・・・・・・・・31 4行目           水 木 金 土 5行目 1  A氏   出勤    9:00          11:00 6行目          退社 17:00       16:00 7行目         休憩 0.5 0.25 8行目         実働 7.5 0.00 4.75 0.00 9行目 2       B氏   出勤    9:00    10:00       ・              退社 17:00 15:00       ・            休憩 1.0 0.25 ・            実働 7.00 4.75 0.00 0.00 この月次シートから、別シートに例えば、8/1に勤務するものと、その時間帯をガントチャート形式 で表示するための関数をご教授いただければ幸いです。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.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行目以下に貼り付けて下さい。  以上です。