返回列表 上一主題 發帖

棘手的excel運算問題,如何改善??

SUMIFS , 算來就慢, 何況全欄引用!!!

加兩個輔助欄公式:
G2:=IF($D2=S$1,$E2,"-") 右拉H2,下拉到底
S3:=SUMIF($B:$B,$R2,G:G) 右拉T3,下拉到底,儲存格格式自訂為:# (0值不顯示)

另外,時間公式改如下:
D2:=--TEXT(A2,"hhmm")
S1:=--TEXT(S2,"hhmm")
T1:=--TEXT(T2,"hhmm")

TOP

回復 6# 藍天麗池


8:45-13:45 = 300分鐘 
R列只需要抓最高到最低區間200個左右
 

300*200 個SUMIFS,跑得動嗎???

TOP

做個副程式,固定時間去 CALL 即可,
欄位不夠,只做到 08:45 ~ 12:00 共 196 欄,自行去調整:
 
Sub 統計()
Dim R&, C&, Arr, Brr(1 To 200, 1 To 196), uMax, i&
R = Cells(Rows.Count, 1).End(xlUp).Row
If R < 2 Then Exit Sub
Arr = Range("A2:E" & R).Value
uMax = [R3] '最大成交數
For i = 1 To UBound(Arr)
  R = uMax - Arr(i, 2) + 1  '最大成交數 - B欄成交數 + 1 = 列位
  If R < 1 Or R > 200 Then GoTo 101
     
  C = Int(Arr(i, 1) * 1440) - 524 'A欄時間分鐘數 - 8:44分鐘數 = 欄位
  If C < 1 Or C > 196 Then GoTo 101
     
  Brr(R, C) = Brr(R, C) + Arr(i, 5)
101: Next
[S3].Resize(200, 196) = Brr
Beep
End Sub

參考檔:
Xl0000328.rar (82.19 KB)
 

TOP

大概做個每分鐘〔自動統計〕,不足之處自行調整,
若與自動記錄DDE有衝突時,也請自行去排除!!
 
Xl0000328_v1.rar (82.17 KB)

TOP

回復 28# 藍天麗池


Private Sub Workbook_Open()
Call 統計_啟動
Application.RTD.ThrottleInterval = 0
Application.Calculation = xlCalculationManual   '開啟檔案就將〔自動重算〕關閉,怎可能觸動〔Calculate〕 
End Sub

TOP

        靜思自在 : 【做人的開始】每一天都是故人的開始,每一個時刻都是自己的警惕。
返回列表 上一主題