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

Somproduct

Status
Niet open voor verdere reacties.

lukasvandijk

Gebruiker
Lid geworden
11 mrt 2015
Berichten
28
Beste allemaal,

=ALS(SOMPRODUCT(-- (G6:G16 = "")) = 0;SOM(G6:G16);)

Deze formule doet wat ik wil, namelijk controleren of een bereik van cellen leeg is en pas optellen als alle cellen gevuld zijn.
Ik begrijp echter totaal niet wat dit gedeelte doet: SOMPRODUCT(-- (G6:G16 = "")) = 0

Is er iemand die dit stukje van de formule kan uitleggen? Uiteraard zijn simpelere oplossingen welkom. Manco aan deze formule is dat het bereik niet dynamisch is.

Alvast bedankt!!
Groeten Lukas
 
Er mist een stukje van je formule, in ieder geval een haakje sluiten. Bovendien is de formule allesbehalve logisch. En hoe dynamisch wil je het hebben?
 
Laatst bewerkt:
Ga met de cursor in de formule staan op Somproduct en druk op ƒx links van de formulebalk om te evealueren.
Je ziet nu nullen en enen.
Zonder de -- zou je onwaar\waar zien, die je niet kan tellen.

Dynamisch maak je het met een tabel Menu Invoegen → tabel.
 
Ik heb even een deel van de sheet toegevoegd, dat geeft misschien wat meer context! Ik wil dus pas gaan rekenen als alle uren zijn gevuld.

Bedankt voor de reacties!
 

Bijlagen

  • Uren.xlsx
    15,9 KB · Weergaven: 9
Er mist een stukje van je formule, in ieder geval een haakje sluiten. Bovendien is de formule allesbehalve logisch. En hoe dynamisch wil je het hebben?

Ga met de cursor in de formule staan op Somproduct en druk op ƒx links van de formulebalk om te evealueren.
Je ziet nu nullen en enen.
Zonder de -- zou je onwaar\waar zien, die je niet kan tellen.

Dynamisch maak je het met een tabel Menu Invoegen → tabel.

Heb even een deel v/d sheet bijgevoegd, ik wil dus pas gaan rekenen als alle uren zijn ingevuld.
Hopelijk geeft de sheet wat meer context (al is dit maar een beperkt deel)

Bedankt voor de reacties.
Groeten Lukas
 

Bijlagen

  • Uren.xlsx
    15,9 KB · Weergaven: 12
Het stukje =SOMPRODUCT(-- (G6:G16 = "")) = 0
kijkt of er geen lege cellen zijn in bereik G16:G16

(G6:G16) = "") retouneert een rij met WAAR's en ONWAAR's, afhankelijk van of de cellen respectievelijk leeg of gevuld zijn.
-- zet deze WAAR's en ONWAAR's om in getallen 1 en 0
SUMPRODUCT telt deze getallen op.

Overigens in SUMPRODUCT staat geen 2e matrix.
Daarom is =SOM(-- (G6:G16 = "")) = 0 hetzelfde

en =AANTAL.LEGE.CELLEN(G6:G16) is ook hetzelfde

Dynamisch bereik
NB. Als je je gegevens in een tabel zet en daarna je formule opbouwt dan wordt het bereik ook dynamisch.

NB2 in plaats van -- in de formule kan ook 1* worden gebruikt of de functie N
 
Laatst bewerkt:
Uitleg dan:
Code:
=SOMPRODUCT(--(G6:G16=""))=0
1. De functie SOMPRODUCT werkt achtereenvolgens G6, G7, G8 t/m G16 af.
2. Elke keer wordt gekeken of de cel leeg is (dus =""). De uitkomst is WAAR of ONWAAR.
3. De -- voor de vergelijking maakt er een 0 of 1 van.
4. De SOMPRODUCT telt alles bij elkaar op.
5. Als de uitkomst 0 is zijn er geen lege cellen in het opgegeven bereik.

Alternatieven zijn:
Code:
=ALS(AANTAL.LEGE.CELLEN(G6:G16)=0;SOM(G6:G16);"")
=ALS(AANTAL.ALS(G6:G16;"")=0;SOM(G6:G16);"")
Edit: bovenstaande voor alle versies van Excel.
 
Laatst bewerkt:
Duidelijk uitgelegd AlexCEL,
De functie AANTAL.LEGE.CELLEN van een bereik werkt zelfs al vanaf EXCEL 2007.
 
Jij was ook al bezig geweest zag ik.

Ik had de compatabiliteit van AANTAL.LEGE.CELLEN even opgezocht. Hier stond alleen Excel 365, maar na drukken op "meer" kwamen er inderdaad meer versies tevoorschijn. Ik was dus te kort door de bocht, en het e.e.a. aangepast.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan