[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『担当別の稼動期間カレンダーを作りたい』(たぬき)
カレンダーを作成し、担当者の稼動状況を確認できる表を作成したいと思っています。
シートは、「予定表一覧」と「カレンダー」の2つ。
予定一覧表の『担当者』『開始日』『終了日』『現場名』の4つのデータをカレンダーに反映させたいです。
【sheet1「予定一覧」】
a b c d
1 担当者 現場名 開始日 終了日
2 佐々木 東京 7/20 8/3
3 藤田 名古屋 7/25 8/15
4 島田 北海道 8/20 9/25
5 藤田 東京 8/20 9/15
6 佐々木 千葉 7/25 8/20
・
・
・
【sheet2「カレンダー」】
a b c
1 担当者 7/1 7/2 7/3・・・
2 佐々木
3 藤田
4 島田
「予定一覧」から対象担当と期間をさがし、カレンダーの該当期間に色(または印)をつけ、開始日のセルに「現場名」を表示したいです。
例えば、『佐々木』の行は、7/20〜8/20のカレンダーに色(または印)がついていて、7/20の列のセルには「東京」、7/25の列のセルには「千葉」と表示したいです。
その様なことは、エクセルで可能なのでしょうか?
よろしくお願いします。
こんばんは〜♪
こんな表の場合です。。。
Sheet1 ↓
┌─┬────┬────┬────┬────┬────┐ │ │ A │ B │ C │ D │ E │ ├─┼────┼────┼────┼────┼────┤ │ 1│担当者 │現場名 │開始日 │終了日 │ │ ├─┼────┼────┼────┼────┼────┤ │ 2│佐々木 │東京 │ 7/20│ 8/3│ │ ├─┼────┼────┼────┼────┼────┤ │ 3│藤田 │名古屋 │ 7/25│ 8/15│ │ ├─┼────┼────┼────┼────┼────┤ │ 4│島田 │北海道 │ 8/20│ 9/25│ │ ├─┼────┼────┼────┼────┼────┤ │ 5│藤田 │東京 │ 8/20│ 9/15│ │ ├─┼────┼────┼────┼────┼────┤ │ 6│佐々木 │千葉 │ 7/25│ 8/20│ │ ├─┼────┼────┼────┼────┼────┤ │ 7│ │ │ │ │ │ └─┴────┴────┴────┴────┴────┘
Sheet2 ↓
┌─┬────┬────┬────┬────┐ │ │ A │ B │ C │ D │ ├─┼────┼────┼────┼────┤ │ 1│担当者 │ 7/1│ 7/2│ 7/3│ ├─┼────┼────┼────┼────┤ │ 2│佐々木 │ │ │ │ ├─┼────┼────┼────┼────┤ │ 3│藤田 │ │ │ │ ├─┼────┼────┼────┼────┤ │ 4│島田 │ │ │ │ ├─┼────┼────┼────┼────┤ │ 5│ │ │ │ │ └─┴────┴────┴────┴────┘
>カレンダーに色(または印)がついていて
★期間へ色付けする方法です。。 条件付書式を使いますが、シートをまたいでは数式が使えないので 式を名前定義します。。
(順序その1) B2セルを選択して。。挿入→名前→定義から
名前→ 期間 参照範囲 ↓
=SUM((IF(Sheet1!$A$2:$A$10=$A2,Sheet1!$C$2:$C$10,10^7)<=B$1)*(IF(Sheet1!$A$2:$A$10=$A2,Sheet1!$D$2:$D$10,0)>=B$1))
この式は、配列数式になりますから この式をコピーして、参照範囲へ Ctrl+V キーで貼り付け後 Ctrl+Shift+Enter キーを同時押し。。
(順序その2) B2セルから右(カレンダーの日付のある列まで) と下(担当者のある行まで)の範囲を選択して、
条件付書式から 数式が → =期間 パターン→ お好きな色を選びます。
期間の色塗り終了。。。
>、7/20の列のセルには「東京」、7/25の列のセルには「千葉」と表示したいです。
★期間の最初の日に、現場名を入れます。。
(順序その3)
B2セルへ =IF(SUMPRODUCT((Sheet1!$A$2:$A$10=$A2)*(Sheet1!$C$2:$C$10=B$1)), INDEX(Sheet1!$B:$B,SUMPRODUCT((Sheet1!$A$2:$A$10=$A2)*(Sheet1!$C$2:$C$10=B$1)*ROW($2:$10))),"")
右と下へコピー。。。
以上ですが、
>カレンダーに色(または印)がついていて
の印にしたかったのですが、提示した2つの式を繋げると 長〜い式になってしまうので、色塗りにしました。。
ただ、データ数が多いとこの式では重くなるかもです。。
ご参考にどうぞ。。。
。。。Ms.Rin〜♪♪
A B C D E F G H I J K L M N O 1 担当者 現場名 開始日 終了日 1 2 3 4 5 6 7 8 9 10 11 2 佐々木 東京 7/20 8/3 3 藤田 名古屋 7/25 8/15 4 島田 北海道 8/20 9/25 5 藤田 東京 8/20 9/15 6 佐々木 千葉 7/25 8/20 O P Q R S T U V W X Y Z A B C D E 1 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2 東京 3 名古屋 4 5 6 千葉
E2=IF($C2=E$1,$B2,"") セルに数式 E2=(E$1>=$C2)*(E$1<=$D2) 条件付書式 でパターン色設定 (PPPO)
1ページで C列選択でウィンドウ枠固定が便利かな! セル対応横棒グラフにも応用できます。
条件付書式の数式??? =SUM((IF(Sheet1!$A$2:$A$10=$A2,Sheet1!$C$2:$C$10,10^7)<=B$1)*(IF(Sheet1!$A$2:$A$10=$A2,Sheet1!$D$2:$D$10,0)>=B$1)) 条件分岐まで必要ないのでは 簡単な数式でいけますよ。(配列数式でなく) =(E$1>=$C2)*(E$1<=$D2) 2シート対処なら シート名を付ければ (zzz)
マクロで考えてみました。 (SHIOJII) sheet1に
A B C D 1 担当者 現場名 開始日 終了日 2 佐々木 東京 7月21日 8月3日 3 藤田 名古屋 7月25日 8月15日 4 島田 北海道 8月20日 9月25日 5 藤田 東京 8月20日 9月15日 6 佐々木 千葉 7月25日 8月20日
のようなデータがあるとして Sub test() Dim dayMIN As Date, dayMAX As Date Dim myR As Range, r As Range Dim i As Long Dim FR, FR2, myV Dim WS1 As Worksheet, WS2 As Worksheet
Set WS1 = Sheets("Sheet1") Set WS2 = Sheets("Sheet2") With WS1 dayMIN = Application.Min(.Range("C2", .Range("D" & Rows.Count).End(xlUp))) dayMAX = Application.Max(.Range("C2", .Range("D" & Rows.Count).End(xlUp))) Set myR = .Range("A2", .Range("A" & Rows.Count).End(xlUp)) End With
With WS2 .Cells.Clear .Rows("1:1").NumberFormatLocal = "m/d" .Range("A1").Resize(myR.Count + 1).Value = _ WS1.Range("A1").Resize(myR.Count + 1).Value For i = 1 To dayMAX - dayMIN With .Range("B1") .Value = dayMIN .Offset(, i) = dayMIN + i End With Next
For Each r In myR myV = r.Offset(, 1).Resize(, 3).Value FR = Application.Match(CDbl(myV(1, 2)), .Rows("1:1"), 0) FR2 = Application.Match(CDbl(myV(1, 3)), .Rows("1:1"), 0) If Not IsError(FR) And Not IsError(FR2) Then .Cells(r.Row, FR).Value = myV(1, 1) .Range(.Cells(r.Row, FR).Offset(, 1), .Cells(r.Row, FR2)).Interior.ColorIndex = 3 End If Next .Columns.AutoFit End With End Sub
おはようございます。。。♪
zzzさんへ >条件分岐まで必要ないのでは >簡単な数式でいけますよ。(配列数式でなく)
PPPOさんの表の様に担当者が重複していても それぞれの行で色付けするのでしたら おっしゃるとおりですね。。
質問者の提示されたSheet2の担当者名は、重複がありません。 ですから、2つの期間(例題では)を1行に色付けするために 配列数式になりました。
でもよく考えてみたら この方法では、2つの期間が重複しているばあい、 重複期間の部分のセルが 同じ色で色付けされるので、最初の期間の終了日がわかりませんネ!!。。
担当者名が現場を持つのが、3つまでなら条件付き書式で 重複期間を色でわける事はできますけれど。。。
ただしその場合も、もし2つの現場の開始日が同じ時は 2つの現場名を1つのセルに、入れるのはちょっと大変。。。 こういう場合が、なければいいですが。。。
そう考えてみると 皆さんが回答された様に、担当者名が重複していても それぞれの行で、色付けした方がいいかもしれませんネ!! 式も簡単ですし。。
でした。。。ジャン!!ジャン!!!
。。。Ms.Rin〜♪♪
いろいろと試してみています。
すごく助かりました。
本当にありがとうございました!!
(たぬき)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.