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

Selectief waarden optellen

Status
Niet open voor verdere reacties.

Plotinus

Gebruiker
Lid geworden
25 mrt 2007
Berichten
659
L.S.

Ik heb een kolom met een gecombineerde datum en tijdsinhoud, bijvoorbeeld '27-4-2011 12:50'. Nu wil ik op deze kolom een filter toepassen zodat ik selectief uit een parallelle kolom getallen kan sommeren. Ik wil bijvoorbeeld alle getallen in kolom U sommeren voor de datum 27 - 4- 2011 tussen de tijdstippen 07:00 en 19:00 uur.
Ik vermoed dat het met 'sommen.als' moet, maar het lukt niet. Met:
Code:
=SOMMEN.ALS(U3:U2049;P3:P2049;AB2053)
krijg ik slechts het getal van 27-4-2011 00:00 (kolom U bevat de getallen; kolom P de data/tijd en AB2053 bevat 27-4-2011). Ik weet dus niet hoe ik aanvullende criteria moet formuleren; iemand een idee?

gegroet,
mrt
 
Via een hulpcel kom je de rekenwaarde van de datum/tijden te weten en kan je makkleijk een formule opbouwen.
bv:
27-04-11 07:00 = 40660,2923
27-04-11 19:00 = 40660,7923

Code:
=SOMPRODUCT((P1:P3000>=40660,2923)*(P1:P3000<=40660,7923)*(U1:U3000))

Succes, Cobbe
 
Dank Cobbe; dit is precies wat ik nodig heb.

Ik vraag me nu af of het mogelijk is nog een bewerking over de op te tellen getallen los te laten (10^betreffende getal in kolom U / 10). Nu los ik dat op door een kolom toe te voegen en de bewerking daar uit te voeren en dan volgens jouw truc te sommeren. Om de omvang van te spreadsheet beperkt te houden zou ik liever deze tussenstap overslaan; het gaat ook over nogal veel kolommen en de MB's zwellen aan.

gegroet,
mrt
 
Ik denk dat het dit is wat je beoogt:

Code:
=SOMPRODUCT((P1:P3000>=H2)*(P1:P3000<=I2)*(10^U1:U3000/10))

Cobbe

H2 en I2 vertegenwoordigen de zoekwaarden.
 
Dank Cobbe, dat is de oplossing! Ik heb het geformuleerd als
Code:
=SOMPRODUCT((P3:P3000>=S2058)*(P3:P3000<=S2065)*10^(T3:T3000/10))

met S2058 en S2065 de locatie van de datum/tijdveld waartussen gezocht moet worden.

Wat ik nu nog zoek is een mogelijkheid er een gemiddelde van te maken (om dus te delen door het totaal aantal die hebben bijgedragen aan bovenstaand resultaat) . Ik denk daar de formule 'Aantal.als' voor nodig te hebben en heb daar het volgende van gemaakt:
Code:
=AANTAL.ALS(P3:P3000; EN(P3:P3000>=S2058; P3:P3000<=S2065))
Dit geeft echter 0, wat niet kan kloppen. Nog een idee?

De enige volgende stap is van het resultaat een 10e logaritme te nemen en te vermenigvuldigen met 10. Dat lijkt een koud kunstje als het aantal nog boven water komt.
 
Om het aantal items te weten die aan de voorwaarde voldoen kun je dezelfde ingekorte formule gebruiken:

Code:
=SOMPRODUCT((P3:P3000>=S2058)*(P3:P3000<=S2065))
En om de nulwaarden niet mee te tellen:
Code:
=SOMPRODUCT((P3:P3000>=S2058)*(P3:P3000<=S2065)*(T3:T3000>0))


Nu kun je het gemiddelde of wat dan ook wel uit rekenen.

Succes, Cobbe
 
Laatst bewerkt:
Dank Cobbe; je hebt me enorm geholpen.

Toch nog een klein vraagje:
Ik merk dat ook de verborgen cellen/kolommen worden meegenomen/geteld/berekend. Is dit eenvoudig te voorkomen? Ik wil namelijk 'uitschieters' in de reeks uitsluiten, zonder de data weg te moeten gooien. Het lukt wel de uitschieters met aanvullende voorwaarden uit te sluiten, maar dat is enigszins rigide: er kunnen andere occasionele redenen zijn om een resultaat te verbergen.
Het Lijkt me overigens ook een beetje inconsequent, want bij het verwerken in grafieken worden verborgen cellen wel genegeerd.

gegroet,
mrt
 
Laatst bewerkt:
met filters in combinatie met de subtotaal moet dit volgens mij mogelijk zijn.

Code:
=SUBTOTAAL(101;p3:p3000)

101 staat voor gemiddelde te berekenen.

109 kun je gebruiken voor de som te berekenen.
 
Dank oeldere; dit is inderdaad bruikbaar; stom dat ik er zelf niet aan heb gedacht.

gegroet,
mrt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan