У меня есть 2 столбца в моем файле Excel, и я хочу получить MIN / Max / Average цены во второй строке на основе информации в первом столбце. я не могу использовать обычную функцию, поскольку в моей книге 200 000 строк.
Я делал это раньше с другими данными, которые использовали дату в первом столбце, теперь я хочу изменить ее, так как я не использую дату. Я получаю ошибки в первом заявлении.
Sub Button1_Click()
Dim Rng As Range, Dn As Range, n As Long, c As Long, K As Variant
Set Rng = Range(Range("A2"), Range("A" & Rows.Count).End(xlUp))
With CreateObject("scripting.dictionary")
.CompareMode = vbTextCompare
Application.ScreenUpdating = False
For Each Dn In Rng
If Not .Exists(DateValue(Dn.Value)) Then
.Add DateValue(Dn.Value), Dn.Offset(, 1)
Else
Set .Item(DateValue(Dn.Value)) = Union(.Item(DateValue(Dn.Value)), Dn.Offset(, 1))
End If
Next
Range("E1:H1") = Array("Date", "Max", "Min", "Average")
c = 1
For Each K In .keys
c = c + 1
Cells(c, "E") = K
Cells(c, "F") = Application.Max(.Item(K))
Cells(c, "G") = Application.Min(.Item(K))
Cells(c, "H") = Application.Average(.Item(K))
Next K
End With
Application.ScreenUpdating = True
End Sub
MIN / Max / Среднее значений в столбце 2, которые относятся к значениям в столбце 1