|
▼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で試してみます
|
|