| 
    
     |  | ▼amatsuno さん: >▼マナ さん:
 >>▼amatsuno さん:
 >>
 >>>vlookupなどを使用する感じでしょうか?
 >>
 >>はい。
 >
 >
 >すいません。
 >正確にはこのような感じです
 >
 >シート1:
 >カラムA,カラムB,カラムC
 >
 >NAME-1,00:22:22
 >NAME-1.00:33:33
 >NAME-2,AAAA
 >NAME-3,00:12:34
 >NAME-4,00:23:33
 >NAME-5,00:55:16
 >NAME-5,00:17:27
 >NAME-5,00:55:16
 >NAME-6,HHHHH
 >
 >シート2: ⇒シート1から抽出
 >カラムA,カラムB
 >
 >NAME-1,00:55:55
 >NAME-3,00:12:34
 >NAME-4,00:23:33
 >NAME-5,02:07:59
 >
 >※カラムAはシート1のカラムCが時間を持っているユーザ
 >※カラムBはシート1のカラムCの合計値
 >
 >実行結果
 >シート3:
 >カラムA,カラムB
 >
 >NAME-1,00:55:55
 >NAME-2,23:59:58
 >NAME-3,00:12:34
 >NAME-4,00:23:33
 >NAME-5,03:30:30
 >NAME-6,02:07:59
 >
 >
 >1)シート3のA列(NAME-*)は、シート1と同じ並びで出力させたいです
 >2)シート3のB列(**:**:**)は、シート2で存在しているユーザーはシート2のB列を、シート2に存在していないユーザーは、「23:59:58」を入れたいと考えています
 >
 >
 >お手数であはありますが、お分かりになられる方、よろしくお願いいたします
 
 
 で、上記の条件に対して
 
 With Worksheets("シート1")
 For i3 = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
 vK2 = .Cells(i3, "A").Value
 dic2(vK2) = dic2(vK2) + .Cells(i3, "B")
 Next
 End With
 
 ReDim vA3(1 To dic2.Count, 1 To 2)
 i3 = 0
 For Each vK2 In dic2.Keys
 i3 = i3 + 1
 vA3(i3, 1) = vK2
 vA3(i3, 2) = dic2(vK2)
 Next
 
 Application.ScreenUpdating = False
 With Worksheets("シート2")
 With .Range("A1").Resize(i3, 2)
 .EntireColumn.ClearContents
 .Value = vA3
 .Columns(2).NumberFormatLocal = "h:mm:ss"
 Application.Goto .Cells(1), True
 End With
 End With
 Application.ScreenUpdating = True
 
 Rows(1).Insert
 
 まで実施しました。
 このときのシート1にあってシート2にいないユーザの追加の箇所でとまりました
 
 とりあえずvlookupで試してみます
 
 |  |