Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


43670 / 76732 ←次へ | 前へ→

【38107】Re:時間帯別利用率の算出
回答  ハト  - 06/5/26(金) 14:50 -

引用なし
パスワード
   こんにちわ
Sheet1のデータを集計し、Sheet2へ表出力するところまで作ってみました
表の体裁、グラフへの出力は考えてませんのでそこはカスタマイズしてください


Sub Test()

Dim i As Integer
Dim j As Integer
Dim k As Integer

Dim TCnt() As Long

Dim SDate As Date
Dim EDate As Date

Dim MDate

Dim OnDate
Dim OfDate

Dim OnTime
Dim OfTime

Dim TM As Long

Dim ws As Worksheet

Const RCNT As Integer = 3  '総部屋数、ここでは仮に3としている

  Set ws = ThisWorkbook.Worksheets("Sheet1")
  
  SDate = Application.WorksheetFunction.Min(ws.Range(ws.Range("C2"), ws.Range("C65535").End(xlUp)))
  EDate = Application.WorksheetFunction.Max(ws.Range(ws.Range("E2"), ws.Range("E65535").End(xlUp)))

  MDate = DateDiff("d", SDate, EDate)

  ReDim TCnt(MDate, 23)


  For i = 2 To ws.Range("C65535").End(xlUp).Row
    
    OnDate = DateDiff("d", SDate, ws.Cells(i, 3))
    OfDate = DateDiff("d", SDate, ws.Cells(i, 5))
    
    For j = OnDate To OfDate
      
      If j = OnDate Then
        OnTime = Hour(ws.Cells(i, 4))
      Else
        OnTime = 0
      End If
      
      If j = OfDate Then
        OfTime = Hour(ws.Cells(i, 6))
      Else
        OfTime = 23
      End If
      
      For k = OnTime To OfTime
        
        If OnDate = OfDate And OnTime = OfTime Then
          TM = Minute(ws.Cells(i, 6)) - Minute(ws.Cells(i, 4))
        ElseIf j = OnDate And k = OnTime Then
          TM = Minute(ws.Cells(i, 4))
        ElseIf j = OfDate And k = OfTime Then
          TM = Minute(ws.Cells(i, 6))
        Else
          TM = 60
        End If
       
        TCnt(j, k) = TCnt(j, k) + TM
      
      Next k
       
    Next j
        
  Next i

  Set ws = Nothing
  Set ws = ThisWorkbook.Worksheets("Sheet2")
  
  For j = 0 To MDate
    ws.Cells(j + 2, 1) = DateAdd("d", j, SDate)
    For k = 0 To 23
      ws.Cells(j + 2, k + 2) = TCnt(j, k) / (60 * RCNT) * 100
    Next k
  Next j

  Set ws = Nothing
  
End Sub
2 hits

【38087】時間帯別利用率の算出 あい 06/5/26(金) 9:38 質問
【38094】Re:時間帯別利用率の算出 lespoir2 06/5/26(金) 10:40 回答
【38095】Re:時間帯別利用率の算出 neptune 06/5/26(金) 10:44 発言
【38102】Re:時間帯別利用率の算出 あい 06/5/26(金) 13:26 発言
【38106】Re:時間帯別利用率の算出 neptune 06/5/26(金) 14:47 回答
【38101】Re:時間帯別利用率の算出 あい 06/5/26(金) 13:23 質問
【38103】Re:時間帯別利用率の算出 M 06/5/26(金) 14:06 発言
【38110】Re:時間帯別利用率の算出 Kein 06/5/26(金) 16:04 回答
【38107】Re:時間帯別利用率の算出 ハト 06/5/26(金) 14:50 回答
【38181】Re:時間帯別利用率の算出 sin 06/5/29(月) 12:09 発言
【38198】Re:時間帯別利用率の算出 ハト 06/5/29(月) 15:16 発言
【38203】Re:時間帯別利用率の算出 sin 06/5/29(月) 17:44 発言
【38204】Re:時間帯別利用率の算出 あい 06/5/29(月) 17:50 お礼
【38108】Re:時間帯別利用率の算出 再送 ichinose 06/5/26(金) 14:59 発言
【38109】Re:時間帯別利用率の算出 再送 追伸 ichinose 06/5/26(金) 15:09 発言
【38205】Re:時間帯別利用率の算出 再送 あい 06/5/29(月) 17:52 お礼

43670 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free