/ / Funzione media personalizzata in VBA di Excel

Funzione media personalizzata in VBA di Excel

Di seguito vedremo un programma in Excel VBA che crea a Funzione definita dall'utente che calcola il media di un intervallo selezionato casualmente escludendo uno o più valori che sono valori anomali e che non devono essere mediati.

Situazione:

Funzione media personalizzata in VBA di Excel

Le funzioni definite dall'utente devono essere inserite in un modulo.

1. Aprire Visual Basic Editor e fare clic su Inserisci, Modulo.

2. Aggiungi 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 parentesi significa che forniamo a Excel VBA un intervallo e due variabili Integer come input. Diamo un nome alla nostra gamma rng, una variabile Integer che chiamiamo inferiore, e una variabile Integer che chiamiamo superiore, ma puoi usare qualsiasi nome.

3. Successivamente, dichiariamo un oggetto Range e due variabili di tipo Integer. Chiamiamo la cella dell'oggetto Range. Una variabile intera che chiamiamo totale e una variabile intera chiamata numero.

Dim cell As Range, total As Integer, count As Integer

4. Vogliamo controllare ogni cella in un intervallo selezionato casualmente (questo intervallo può essere di qualsiasi dimensione). In VBA di Excel, è possibile utilizzare il ciclo For Each Next per questo. Aggiungi le seguenti linee di codice:

For Each cell In rng

Next cell

Nota: rng e cell sono scelti a caso qui, puoi usare qualsiasi nome. Ricorda di fare riferimento a questi nomi nel resto del tuo codice.

5. Successivamente, controlliamo ogni valore in questo intervallo se rientra tra i due valori (inferiore e superiore). Se true, incrementiamo il totale in base al valore della cella e incrementiamo il conteggio di 1. Aggiungiamo le seguenti linee di codice al ciclo.

If cell.Value >= lower And cell.Value <= upper Then
    total = total + cell.Value
    count = count + 1
End If

6. Per restituire il risultato di questa funzione (la media desiderata), aggiungere la seguente riga di codice al di fuori del ciclo.

CUSTOMAVERAGE = total / count

7. Non dimenticare di terminare la funzione Aggiungi la riga:

End Function

8. Ora è possibile utilizzare questa funzione esattamente come qualsiasi altra funzione di Excel per calcolare la media dei numeri compresi tra due valori.

Risultato:

Risultato funzione media personalizzata

Come controllo, puoi cancellare tutti i valori che sonoinferiore a 10 e superiore a 30 e utilizzare la funzione media standard in Excel per verificare se Excel calcola la stessa media della nostra funzione media personalizzata.

Controllo funzionale medio personalizzato

La nostra funzione media personalizzata funziona! Nota: questa funzione è disponibile solo in questa cartella di lavoro.

Leggi anche: