- 締切済み
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に勤務するものと、その時間帯をガントチャート形式 で表示するための関数をご教授いただければ幸いです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
確認したいのですが、その日に休憩した総時間のデータは在っても、何時から休憩を開始したかというデータが無いという事は、ガントチャートには休憩時間を表示しなくとも良いと考えれば宜しいのですね?(データが無いため表示のしようがありません) それでも宜しいのでしたら、次の様な方法は如何でしょうか? まず、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行目以下に貼り付けて下さい。 以上です。