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:

Custom Average Function in Excel VBA

Le funzioni definite dall’utente devono essere collocati in un modulo.

  1. Aprire l’editor di Visual Basic e fare clic su Inserisci, Modulo.

  2. 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.

  1. 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
  1. 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.

  1. 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
  1. Per riportare il risultato di questa funzione (il desiderato media), aggiungere la riga seguente codice all’esterno del ciclo.

CUSTOMAVERAGE = total / count
  1. Non dimenticare di terminare la funzione. Aggiungere la riga:

End Function
  1. Ora è possibile utilizzare questa funzione come qualsiasi altra funzione di Excel per calcolare la media dei numeri che rientrano tra due valori.

Risultato:

Custom Average Function Result

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.

Custom Average Function Check

La nostra funzione media personalizzato funziona! Nota: questa funzione è disponibile solo in questo lavoro.