返回列表 上一主題 發帖

[發問] 自動篩選後,如何利用vba計算符合篩選之時間加總

[發問] 自動篩選後,如何利用vba計算符合篩選之時間加總

時間(hh:mm):放在A1資料~A10資料
          TYPE   TIME
A1    YES    00:30
A2    YES    10:20
A3    YES    05:30
A4    YES    12:20
A5    YES    03:50
A6    NO     00:20
A7    YES    00:30
A8    YES    02:20
A9    YES    00:30
A10  NO     02:20

如何利用自動篩選功能,TYPE只選擇YES的資料,
再利用vba計算符合YES的TIME加總時間(hh:mm)

謝謝

本帖最後由 GBKEE 於 2010-10-26 12:02 編輯

回復 1# app4000
VBA
Format(Application.SumIf(Range("A1:A10"), "YES", Range("B2")), "HH:MM:SS")
工作表
TEXT(SUMIF(A1:A10,"YES",B2),"HH:MM:SS")

TOP

回復 2# GBKEE


感謝 GBKEE 的解答

另請問一下如果累計大於24小時 要如何 變成 XX月 XX日 XX時 XX分

TOP

回復 3# app4000
VBA
Format(Application.SumIf(Range("A1:A10"), "YES", Range("B2")), "M/D HH:MM:SS")
工作表
TEXT(SUMIF(A1:A10,"YES",B2),"M/D HH:MM:SS")

TOP

回復 4# GBKEE

EX:
TIME
11:00
22:30
11:00

總計 44小時 30分

D HH:MM:SS 我要得答案應該如下
1 20:30:00  --->答案

而不是
24 20:30:00  --->怪怪的

TOP

本帖最後由 Hsieh 於 2010-10-26 23:09 編輯


樞紐分析,設定儲存格格式
VBA請試試
  1. Sub nn()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. For Each a In Range([A1], [A65536].End(xlUp))
  4.    d(a & "") = d(a & "") + a.Offset(, 1)
  5. Next
  6. For Each ky In d.keys
  7. MsgBox Format(Int(d(ky)), "0") & Format(d(ky) - Int(d(ky)), "天 h:mm:ss")
  8. Next
  9. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 5# app4000
沒錯ㄚ是 1:20:30:00

TOP

咦,怎麼樞紐的結果不一樣?

TOP

回復 4# GBKEE


    版主
請問代入工作表的程式跟樞紐做出的答案不一樣...
請問哪裡輸入錯誤??
謝謝您..




學如逆水行舟 不進則退

TOP

回復 9# PD961A
一樣啊,那裡不一樣?? 我沒看出來!

TOP

        靜思自在 : 道德是提昇自我的明燈,不該是呵斥別人的鞭子。
返回列表 上一主題