Vba: jak pisać funkcje średnia.jeżeli i średnia.jeżeli


Do pisania funkcji ŚREDNIA JEŻELI i ŚREDNIA JEŻELI przy użyciu języka VBA w programie Excel można użyć następujących metod:

Metoda 1: Funkcja ŚREDNIA JEŻELI w VBA

 Sub Averageif_Function()
    Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub

W tym konkretnym przykładzie obliczona zostanie średnia wartość w zakresie B2:B12 , gdzie odpowiadająca wartość w zakresie A2:A12 jest równa „Mavs”, a następnie przypisze wynik do komórki E2 .

Metoda 2: Funkcja AVERAGEIFS w VBA

 Sub Averageifs_Function()
    Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub

W tym konkretnym przykładzie obliczona zostanie średnia wartość w zakresie C2:C12, gdzie wartość w zakresie A2:A12 jest równa „Mavs” , a wartość w zakresie B2:B12 jest większa niż 20, a następnie przypisz wynik do komórki E2 . .

Poniższe przykłady pokazują, jak zastosować każdą z tych metod w praktyce z następującym zbiorem danych w Excelu, który zawiera informacje o różnych koszykarzach:

Przykład 1: Funkcja ŚREDNIAJEŻELI w VBA

Załóżmy, że chcemy obliczyć średnią wartość w kolumnie punktów dla zawodników drużyny Mavs.

Możemy utworzyć następujące makro, aby wykonać tę funkcję AVERAGEIF:

 Sub Averageif_Function()
    Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Zauważ, że komórka E2 zawiera wartość 18,25 .

To mówi nam, że średnia wartość w kolumnie punktów dla zawodników drużyny Mavs wynosi 18,25.

Możemy sprawdzić, czy jest to prawidłowe, ręcznie obliczając średnią wartość punktów gracza na Mavs:

Średnia punktów gracza Mavs: (22 + 10 + 29 + 12) / 4 = 18,25 .

Przykład 2: Funkcja AVERAGEIFS w VBA

Załóżmy, że chcemy obliczyć średnią wartość w kolumnie asyst dla zawodników spełniających następujące kryteria:

  • Gracz jest częścią zespołu Mavs.
  • Zawodnik zdobył ponad 20 punktów.

Możemy utworzyć następujące makro, aby wykonać tę funkcję AVERAGEIFS:

 Sub Averageifs_Function()
    Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Zauważ, że komórka E2 zawiera wartość 9 .

To mówi nam, że średnia asyst wśród zawodników drużyny Mavs , którzy zdobyli więcej niż 20 punktów, wynosi 9.

Uwaga : w tym przykładzie utworzyliśmy funkcję AVERAGEIFS przy użyciu dwóch zakresów kryteriów, ale w metodzie WorksheetFunction.AverageIfs można użyć dowolnej liczby zakresów kryteriów.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak obliczyć średnią wartość zakresu
VBA: Jak pisać funkcje SUMIF i SUMIFS
VBA: Jak pisać funkcje COUNTIFS i COUNTIFS

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *