VBA: Sumowanie kolumny danych o zmiennej długości serii

Ku pamięci:

Załóżmy sytuację, że mamy kolumnę danych liczbowych, której długość się zmienia (jakiś wyciąg z bazy danych, pomiary, cokolwiek…) i chcemy dokonać jakiś obliczeń matematycznych na tej serii. Oczywiście zawsze można „przelecieć” wszystko za pomocą pętli aż do znalezienia pustej komórki i przy okazji wyliczać sumę lub średnią. Kod trochę się skomplikuje, gdy będziemy chcieli policzyć coś bardziej zaawansowanego (odchylenie standardowe, kwantyle) – wtedy aż się prosi wykorzystać wbudowane funkcje Excel’a.

Pierwszym krokiem  będzie znalezienie pozycji ostatniego wiersza, który ma w sobie dane. Można to zrobić poniższą funkcją:


Function LastRowPosition() As Long
LastRowPosition = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
End Function

Następnie musimy się dobrać do odpowiedniej funkcji Excel’a (robimy to poprzez WorksheetFunction.[funkcja] gdzie jako parametr podajemy odpowiednio sprecyzowany zakres danych):


ActiveSheet.Cells(2, 3).Value = WorksheetFunction.Sum(Range("A1:A" &  LastRowPosition))

Zostaw komentarz


Podpowiedź - możesz użyć tych HTML tagów i atrybutów:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>