De functie Aantal.als op een niet aaneengesloten bereik

22 februari 2016 | onderwerpen: excel, vba, visual basic

De Excel functie berekent het aantal keren dat een bepaalde waarde in en opgegeven bereik voorkomt. Bijvoorbeeld =AANTAL.ALS(A1:A9;B1) levert het aantal keren dat de cellen A1 t/m A9 de inhoud van cel B1 bevat.

Als het opgegeven bereik niet aaneengesloten is, schiet Excel in de fout. Stel dat je cellen A2, A4, A6 e A8 niet wilt mee laten nemen (=AANTAL.ALS((A1;A3;A5;A7;A9);B1)) geeft Excel een foutwaarde: #WAARDE.

Om dit op te lossen biedt een zelf geschreven functie uitkomst:

Function BepaalAantal(Bereik As Range, waarde As String) As Long
Dim cl
BepaalAantal = 0
For Each cl In Bereik
If cl.Value = waarde Then BepaalAantal = BepaalAantal + 1
Next cl
End Function

De functie controleert van alle cellen in het opgeven bereik of de waarde correspondeert met de gevraagde waarde. In ons voorbeeld lever dit: =BepaalAantal((A1;A3;A5;A7;A9);B1)

In het download-bestand is een voorbeeld van de functie opgenomen.