解決済み
Excel初心者です 日当たりの仕事の依頼数を昼勤と夜勤それぞれ何件ずつか カレンダーのような表にしたいときどうしたらよいでしょうか?(依頼内容等はどうでもよく、昼夜それぞれの依頼件数のみをカレンダーにしたい。”カレンダーに”というのはその形が一番見やすいかと思っただけなのでもっといいのあったらそれでもいいです) 材料としては、過去の依頼データの表はありますが、1件ずつ依頼別に分けて表になっています。 (B2 依頼日(列のタイトル),B3~B○○に「2023/4/3 8:20:00」 のような書き方で依頼日時がズラーっと書いてある感じです) 昼勤の定義はAM4:46~PM17:15、PM17:16~AM4:45を夜勤とします 作成するにあたって足りないことがあれば初心者でもわかる聞き方で聞いていただけると嬉しいです。
75閲覧
マクロでよろしければ。。。 こんな感じでしょうか。 Option Explicit Sub sample() Dim i As Long, j As Long Dim minR As Long, maxR As Long Dim dat1, dat2, ary1(), ary2() Dim wb As Workbook, ws As Worksheet Application.ScreenUpdating = False dat1 = Range("B3:B" & Cells(Rows.Count, "B").End(xlUp).Row) dat2 = Range("B3:D" & Cells(Rows.Count, "B").End(xlUp).Row) For i = 1 To UBound(dat2) dat2(i, 2) = CLng(Int(dat2(i, 1))) dat2(i, 3) = dat2(i, 1) - dat2(i, 2) ReDim Preserve ary1(i - 1) ary1(i - 1) = dat2(i, 2) Next Set wb = Workbooks.Add Set ws = wb.Sheets(1) j = 1 minR = WorksheetFunction.Min(ary1) maxR = WorksheetFunction.Max(ary1) For i = minR To maxR j = j + 1 ws.Cells(j, 2) = i ReDim Preserve ary2(j - 2) ary2(j - 2) = i ws.Cells(j, 3) = Format(i, "aaa") Next For i = 1 To UBound(dat2) j = WorksheetFunction.Match(dat2(i, 2), ary2, 0) If dat2(i, 3) > #4:45:59 AM# And dat2(i, 3) < #5:15:01 PM# Then ws.Cells(j + 1, 4) = ws.Cells(j + 1, 4) + 1 ElseIf dat2(i, 3) < #4:45:01 AM# Then ws.Cells(j, 5) = ws.Cells(j, 5) + 1 Else ws.Cells(j + 1, 5) = ws.Cells(j + 1, 5) + 1 End If Next ws.Cells(1, 2) = "日付" ws.Cells(1, 3) = "曜日" ws.Cells(1, 4) = "昼勤" ws.Cells(1, 5) = "夜勤" ws.Columns(2).NumberFormatLocal = "yyyy/mm/dd" ws.Columns(2).ColumnWidth = 13 ws.Columns(3).ColumnWidth = 5 ws.Columns(3).HorizontalAlignment = xlCenter ws.Rows(1).HorizontalAlignment = xlCenter ws.Range("B1").CurrentRegion.Borders.LineStyle = xlContinuous Set ws = Nothing Set wb = Nothing Application.ScreenUpdating = True End Sub << 参考までに >> ① メニュー「開発」-「Visual Basic」 ② 「挿入」-「標準モジュール」 ③ コードの貼付け << 使い方 >> ① メニュー「開発」-「マクロ」 ② 「sample」-「実行」
なるほど:1
ありがとう:1
< 質問に関する求人 >
初心者(東京都)この条件の求人をもっと見る
求人の検索結果を見る
< いつもと違うしごとも見てみませんか? >
覆面調査に関する求人(東京都)この条件の求人をもっと見る