• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

De eerste drie waarden tellen in een bereik.

Status
Niet open voor verdere reacties.

pietergompie

Gebruiker
Lid geworden
4 dec 2006
Berichten
105
Hallo,

Ik probeer in een bereik gegevens op te tellen die meerdere keren voorkomen. Maar ik wil dat beperken tot de 1e drie keer dat ze voorkomen.

Hoe krijg ik dat in een formule.
Ik gebruik nu SOM.ALS, maar weet dat niet te beperken tot de 1e 3.

Wie heeft er een oplossing?
Bekijk bijlage 1e3Waarden.xlsx
 
Kleur eens de cellen die moeten opgeteld worden en vul alvast de som in zoals die moet uitgerekend worden.
 
Als de layout gelijk blijft:
Code:
=SOM.ALS($B$4:$B$40;$W4;$E$4:$E$40)
 
Met een UDF lukt het wel.
 

Bijlagen

  • 1e3Waarden (cobbe).xlsb
    16 KB · Weergaven: 45
Zo dus?
 

Bijlagen

  • 1e3Waarden (cobbe).xlsb
    16,4 KB · Weergaven: 59
Je zal de bereiken dan ook moeten aanpassen.
Code:
 For Each r In Range("B4:B1000")

en

caramboles = caramboles + r.Offset(, 3)

Met in kolom B de kengetallen en 3 kolommen verder de op te halen waarden.
 
Je zal de bereiken dan ook moeten aanpassen.
Code:
 For Each r In Range("B4:B1000")

en

caramboles = caramboles + r.Offset(, 3)

Met in kolom B de kengetallen en 3 kolommen verder de op te halen waarden.

De indeling in het origineel is hetzelfde als in deze.

Mvg
Piet Konings
 
Heb je de code in een module geplakt?
 
Open het bestand van @Cobbe.

Druk Alt+F11.
Dubbelklik links in de projectverkenner op module1.
Daar staat de Function.
Kopieer die code en plak het in een module (menu invoegen → module) in jouw bestand.
 
Open het bestand van @Cobbe.

Druk Alt+F11.
Dubbelklik links in de projectverkenner op module1.
Daar staat de Function.
Kopieer die code en plak het in een module (menu invoegen → module) in jouw bestand.

Ja, nu wel gelukt..
Zeer bedankt..

Mvg
Piet Konings
 
Open het bestand van @Cobbe.

Druk Alt+F11.
Dubbelklik links in de projectverkenner op module1.
Daar staat de Function.
Kopieer die code en plak het in een module (menu invoegen → module) in jouw bestand.

Ja, nu wel gelukt..
Zeer bedankt..

Mvg
Piet Konings
 
Traag

Zeer blij met de oplossing, werkt perfect.

Helaas is het berekenen erg traag geworden.
Is er een manier om dat te ondervangen?
 
Door alleen te kijken in de cellen waar een getal staat gaat het mogelijk sneller.

Code:
For Each r In Range("B4:B1000").SpecialCells(2, 1)
 
Door alleen te kijken in de cellen waar een getal staat gaat het mogelijk sneller.

Code:
For Each r In Range("B4:B1000").SpecialCells(2, 1)

Dank voor de reactie,
Moet dat stukje code nog op een speciale manier geplakt worden of gewoon met copy-past?
En is de plaats in de bestaande ook van belang?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan