Funzione personalizzata media in Excel VBA
Di seguito vedremo un programma in Excel VBA che crea un link: / VBA-esempi-definita dall’utente-funzione [User Defined Function]
che calcola la media di un intervallo selezionato in modo casuale ad esclusione di uno o più valori che sono valori anomali e non devono essere mediati.
Situazione:
Le funzioni definite dall’utente devono essere collocati in un modulo.
-
Aprire l’editor di Visual Basic e fare clic su Inserisci, Modulo.
-
Aggiungere la seguente riga di codice:
Function CUSTOMAVERAGE(rng As Range, lower As Integer, upper As Integer)
Il nome della nostra funzione è CUSTOMAVERAGE. La parte tra le parentesi significa che diamo Excel VBA una gamma e due variabili intere come input. Chiamiamo il nostro RNG gamma, una variabile Integer che noi chiamiamo più bassa, e una variabile Integer noi chiamiamo superiore, ma è possibile utilizzare qualsiasi nome.
-
Successivamente, si dichiara un oggetto Range e due variabili di tipo Integer.
Chiamiamo la cellula oggetto Range. Una variabile intera che noi chiamiamo totale e una variabile Integer che chiamiamo contare.
Dim cell As Range, total As Integer, count As Integer
-
Vogliamo controllare ogni cella in un intervallo selezionato casualmente (questo intervallo può essere di qualsiasi dimensione). In Excel VBA, è possibile utilizzare il ciclo For Each di questo componente. Aggiungere le seguenti righe di codice:
For Each cell In rng Next cell
Nota: RNG e cellule sono scelti a caso qui, è possibile utilizzare qualsiasi nome.
Ricordarsi di fare riferimento a questi nomi nel resto del codice.
-
Successivamente, verificare per ogni valore in questo intervallo se cade tra i due valori (inferiore e superiore). Se fosse vero, incrementiamo totale per il valore della cella e incrementiamo contiamo di 1. Aggiungere le seguenti righe di codice per il ciclo.
If cell.Value >= lower And cell.Value <= upper Then total = total + cell.Value count = count + 1 End If
-
Per riportare il risultato di questa funzione (il desiderato media), aggiungere la riga seguente codice all’esterno del ciclo.
CUSTOMAVERAGE = total / count
-
Non dimenticare di terminare la funzione. Aggiungere la riga:
End Function
-
Ora è possibile utilizzare questa funzione come qualsiasi altra funzione di Excel per calcolare la media dei numeri che rientrano tra due valori.
Risultato:
Come controllo, è possibile eliminare tutti i valori che sono inferiori a 10 e superiore a 30 e utilizzare la funzione di standard medio in Excel per vedere se Excel calcola la stessa media come la nostra funzione di media personalizzati.
La nostra funzione media personalizzato funziona! Nota: questa funzione è disponibile solo in questo lavoro.