Vba: come scrivere le funzioni media.se e media.se
È possibile utilizzare i seguenti metodi per scrivere le funzioni MEDIA.SE e MEDIA.SE utilizzando VBA in Excel:
Metodo 1: funzione MEDIA.SE in VBA
Sub Averageif_Function()
Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
Questo particolare esempio calcolerà il valore medio nell’intervallo B2:B12 dove il valore corrispondente nell’intervallo A2:A12 è uguale a “Mavs”, quindi assegnerà il risultato alla cella E2 .
Metodo 2: funzione MEDIA.SE in VBA
Sub Averageifs_Function()
Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
Questo particolare esempio calcolerà il valore medio nell’intervallo C2:C12 dove il valore nell’intervallo A2:A12 è uguale a “Mavs” e il valore nell’intervallo B2:B12 è maggiore di 20, quindi assegnerà il risultato alla cella E2 . .
Gli esempi seguenti mostrano come utilizzare nella pratica ciascuno di questi metodi con il seguente set di dati in Excel che contiene informazioni su vari giocatori di basket:
Esempio 1: funzione MEDIA.SE in VBA
Diciamo che vogliamo calcolare il valore medio nella colonna dei punti per i giocatori della squadra Mavs.
Possiamo creare la seguente macro per eseguire questa funzione MEDIA.SE:
Sub Averageif_Function()
Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
Si noti che la cella E2 contiene un valore di 18.25 .
Questo ci dice che il valore medio nella colonna punti per i giocatori della squadra Mavs è 18,25.
Possiamo verificare che ciò sia corretto calcolando manualmente il valore medio dei punti giocatore sui Mavs:
Media punti giocatore Mavs: (22+10+29+12) / 4 = 18,25 .
Esempio 2: funzione MEDIA.SE in VBA
Supponiamo di voler calcolare il valore medio nella colonna degli assist per i giocatori che soddisfano i seguenti criteri:
- Il giocatore fa parte della squadra Mavs.
- Il giocatore ha segnato più di 20 punti.
Possiamo creare la seguente macro per eseguire questa funzione MEDIA.SE:
Sub Averageifs_Function()
Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
Nota che la cella E2 contiene il valore 9 .
Questo ci dice che la media degli assist tra i giocatori che fanno parte della squadra Mavs e che hanno segnato più di 20 punti è 9.
Nota : in questo esempio abbiamo creato una funzione MEDIA.SE utilizzando due intervalli di criteri, ma puoi utilizzare tutti gli intervalli di criteri che desideri nel metodo WorksheetFunction.AverageIfs .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come calcolare il valore medio dell’intervallo
VBA: come scrivere le funzioni SOMMA.SE e SOMMA.FS
VBA: come scrivere le funzioni COUNTIF e COUNTIFS