dポイントプレゼントキャンペーン実施中!

日付で区切って合計時間を算出するマクロを教えて下さい。
添付ファイルのB2セルからC9セルには2020/3/2分の作業の開始と終了時間が
入力されています。このそれぞれの時間がK列に表示されているのですが
3/2分であればK2セルかK9セルまでの時間足してその時間をM9セルに表示したいと思っています。

同じように3/3分ならK10からK17セルの合計をM17セルに

という形で、B列の最下部まで、日にち事に上記のような処理を繰り返したいです。

宜しくお願い致します。

「VBA 日付ごとに時間の合計を算出したい」の質問画像

A 回答 (3件)

一例です。



ちなみにB列が昇順でなかった場合、一番下に来る日付の行に合計がはいります。(昇順であれば気になる事ではありませんけど)

Sub megu()
Dim myDic As Object
Dim r As Range, str As String
Dim key, v

Set myDic = CreateObject("Scripting.Dictionary")

For Each r In Range("B2", Cells(Rows.Count, "B").End(xlUp))
str = Format(r.Value2, "yyyy/m/d")

If Not myDic.Exists(str) Then
myDic.Add str, Array(r.Range("L1").Address, r.Range("J1").Value2)
Else
v = myDic(str)
v(0) = r.Range("L1").Address
v(1) = v(1) + r.Range("J1").Value2
myDic(str) = v
End If

Next

For Each key In myDic.Keys
v = myDic(key)
Range(v(0)).Value = Format(v(1), "hh:mm")
Next

Set myDic = Nothing

End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。望み通りの事が行えました。
本当にありがとうございました。

お礼日時:2020/03/23 10:11

M2でした


=SUMPRODUCT((TEXT($B$2:$B$50000,"yyyy/mm/dd")=TEXT(B2,"yyyy/mm/dd"))*$K$2:$K$50000)
を入れて下にコピーでは
    • good
    • 0
この回答へのお礼

ありがとうございます。
関数式でもできるんですね。勉強になりました。
今回かVBAで操作が行いたかったので№3の方をBAにさせて頂きます。
ありがとうございます。

お礼日時:2020/03/23 10:09

B2


=SUMPRODUCT((TEXT($B$2:$B$50000,"yyyy/mm/dd")=TEXT(B2,"yyyy/mm/dd"))*$K$2:$K$50000)
を入れて下にコピーでは
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!