[EXCEL] optellen tot bovenstaande cel (variabel)

Pagina: 1
Acties:
  • 3.011 views sinds 30-01-2008
  • Reageer

  • franktv
  • Registratie: Maart 2001
  • Laatst online: 10-05 20:56
Ik ben bezig met een som waarbij ik wat dingen uit een lijst op moet tellen. alleen de lengte van die lijst verandert nogal waardoor ik de cel niet specifiek kan aangeven tot waar die moet tellen. Hij moet eigenlijk tellen tot 1 cel boven de cel waar de uitkomst in komt. ik heb t wel geprobeerd met de huidigecel -1 in de formule maar dat werkt niet echt. Iemand enig id hoe dit is op te lossen?

  • Zandor
  • Registratie: Juni 1999
  • Laatst online: 11-03 23:22
laat je hem toch altijd sommeren tot regel 10.000 ofzo, is het altijd lang genoeg. Ik denk dat ik je vraag niet goed begrijp.

E8400, P5K EPU, patriot extreme 800 4GB, EN9600gt, hoontech dsp24v, samsung F1 1TB, dell 2407wfp, canon LBP5200
Canon 50D, 17-85IS, 28-135 IS, 100-300mm, 50mm 1.8


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Hoe kan de lengte van de lijst nu varieren als hij 'eigenlijk moet tellen tot een cel boevn de cel waar de uitkomst in staat'. Dan ligt het toch wel vast? Ik snap je probleem evenmin. Leg het nog eens goed uit en waarom wat je probeert niet goed werkt :)

offtopic:
Je post nu in korte tijd een aantal topics die geen van allen écht voldoen aan de policy. Als je iets meer moeite steekt in je topicstarts dan is de kans op een antwoord waar je wat aan hebt ook groter :)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Ik neem aan dat je met lijst "kolom" bedoelt (stel A).

Ik ga ervan uit dat alle op te tellen waarden positief zijn en dat er minimaal twee > 0 zijn.

Je weet dus dat de som altijd groter is dan een individuele waarde. Dus is het antwoord:

{=sum(if(A1:A10000<max(A1:A10000);A1:A10000))}

[ Voor 16% gewijzigd door Verwijderd op 27-08-2006 11:55 ]


Verwijderd

Ik neem trouwens aan dat de uitkomst (zie SP) niet de som is? Als dat wel zo is is het antwoordt namelijk:

=max(A1:A10000)

Maar in dat geval begrijp je zelf ook wel dat jou vraag niet al te snugger was ;)

  • Winnetou
  • Registratie: September 2002
  • Niet online
Ik trap ff dit topic omhoog omdat ik eigenlijk bijna dezelfde vraag heb als de TS, alleen kan ik geen gebruik maken van het optellen van een hele kolom.

Ik heb wat financiën in een excel sheet staan in deze vorm:
[kolomA][kolomB]
1
4
3
totaal7
3
2
totaal5

Nu wil ik in de cellen met het totaal een formule zetten die optelt tot aan de bovenstaande cel waarin dat gebeurt. Dus een soort totaal=(som((vorige_som+1:huidige_rij-1).

Ik heb al allerlei functies met som.als e.d. geprobeerd, maar het lukt niet echt. Weet iemand hoe je dit op kunt lossen?

Die folgende Sendung ist für Zuschauer unter sechzehn Jahre nicht geeignet


Verwijderd

Sorry, ik begrijp niet wat je wil. Als je het iets duidelijker uitlegt weet ik ongetwijfeld wel een oplossing. Post anders even een screenshot o.i.d.

[ Voor 15% gewijzigd door Verwijderd op 20-11-2006 15:20 ]


  • riZZy
  • Registratie: Februari 2004
  • Laatst online: 19-12 22:23
Je kunt toch gewoon voor elke totaalregel de formule intypen?

Wat is het voordeel van 1 algemene formule hiervoor? Bij een regel invoegen gaat bovenstaande oplossing ook gewoon goed. (zolang je niet met dollartekens je verwijzing echt 'hard' maakt)

  • Winnetou
  • Registratie: September 2002
  • Niet online
riZZy schreef op maandag 20 november 2006 @ 15:26:
Je kunt toch gewoon voor elke totaalregel de formule intypen?

Wat is het voordeel van 1 algemene formule hiervoor? Bij een regel invoegen gaat bovenstaande oplossing ook gewoon goed. (zolang je niet met dollartekens je verwijzing echt 'hard' maakt)
Mja het probleem is dus dat de lengte niet elke keer gelijk is, de ene keer zijn het 3 rijen en de andere keer 4, dus dan klopt de formule niet meer, moet je dan weer met de hand aanpassen.
Ik zal zo ff een screenshot maken want blijkbaar was het toch niet helemaal duidelijk :P

Edit: ok hier ff een plaatje
Afbeeldingslocatie: http://img383.imageshack.us/img383/6725/excelet9.th.jpg
Zoals je kunt zien is de formule in C12 anders dan die in C7 omdat C7 méér rijen bij elkaar op moet tellen. Simpelweg op SUM klikken werkt niet omdat er lege rijen tussen zitten en daarnaast gebruik ik meestal geen SUM maar SUMIF.

[ Voor 23% gewijzigd door Winnetou op 20-11-2006 15:38 ]

Die folgende Sendung ist für Zuschauer unter sechzehn Jahre nicht geeignet


  • riZZy
  • Registratie: Februari 2004
  • Laatst online: 19-12 22:23
Ik denk dat met de hand aanpassen net zo snel gaat als het intypen van een algemene formule.

Het geeft toch niet dat je de ene keer 4 en de andere keer 3 regels hebt?

In C7 krijg je dan:
code:
1
=SOM(C4:C6)


en voor C12:
code:
1
=SOM(C8:C11)


Of kijk ik nu ergens heel erg overheen? 8)7

Verwijderd

Winnetou schreef op maandag 20 november 2006 @ 15:30:
[...]
Mja het probleem is dus dat de lengte niet elke keer gelijk is, de ene keer zijn het 3 rijen en de andere keer 4, dus dan klopt de formule niet meer, moet je dan weer met de hand aanpassen.
Ik zal zo ff een screenshot maken want blijkbaar was het toch niet helemaal duidelijk :P

Edit: ok hier ff een plaatje
[afbeelding]
Zoals je kunt zien is de formule in C12 anders dan die in C7 omdat C7 méér rijen bij elkaar op moet tellen. Simpelweg op SUM klikken werkt niet omdat er lege rijen tussen zitten en daarnaast gebruik ik meestal geen SUM maar SUMIF.
Ik snap nu wat je bedoelt. Zoals riZZy al aangeeft, of je hier nou enorm veel tijd mee bespaard is de vraag, maar het is wel een interessante probleemstelling. En niet zo makkelijk op te lossen zonder VBA. Ik ga er i.i.g. even over nadenken.

Verwijderd

Je zal toch even een hulpkolom moeten maken (D).

d2: 1
vanaf d3 (en naar beneden slepen): if(a3="totaal";d2+1;d2)

Nu kan je in B12 zetten:

{=sum(if($d$2:$d11=max($d$2:$d11);b$2:b11))}

Deze laatste formule kan je vervolgens copieren naar c12, b7, etc.

[ Voor 5% gewijzigd door Verwijderd op 20-11-2006 18:09 ]


  • Winnetou
  • Registratie: September 2002
  • Niet online
riZZy schreef op maandag 20 november 2006 @ 16:30:
Ik denk dat met de hand aanpassen net zo snel gaat als het intypen van een algemene formule.

Het geeft toch niet dat je de ene keer 4 en de andere keer 3 regels hebt?

In C7 krijg je dan:
code:
1
=SOM(C4:C6)


en voor C12:
code:
1
=SOM(C8:C11)


Of kijk ik nu ergens heel erg overheen? 8)7
Hm ja ik hoopte dat er een eenvoudig trucje was om makkelijk tot de eerstvolgende cel erboven waar SUM oid instaat te tellen :P Maar blijkbaar bestaat dat niet echt. Met de hand is het voor 12 rijen ofzo natuurlijk wel te doen, maar met 100+ rijen is het lastig om elke keer te kijken tot waar ie moet tellen enzo.
Verwijderd schreef op maandag 20 november 2006 @ 18:07:
Je zal toch even een hulpkolom moeten maken (D).

d2: 1
vanaf d3 (en naar beneden slepen): if(a3="totaal";d2+1;d2)

Nu kan je in B12 zetten:

{=sum(if($d$2:$d11=max($d$2:$d11);b$2:b11))}

Deze laatste formule kan je vervolgens copieren naar c12, b7, etc.
Ik dit even geprobeerd, het werkt alleen niet helemaal want hij telt in C12 ook gewoon C2:C7 mee dus het antwoord wordt dan 22.

Dat klopt ook wel want met b$2 zet je de optelsom toch gewoon vast tot de bovenste cel?

Die folgende Sendung ist für Zuschauer unter sechzehn Jahre nicht geeignet


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Als je consequent 'totaal' tikt in kolom A kun je daar gebruik van maken door de regel op te zoeken met vert. zoeken en dan met index of verchuiven het optelbereik op te halen. Anders kan een vba functie voor je het zoeken overnemen :)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Winnetou schreef op maandag 20 november 2006 @ 19:52:
Ik dit even geprobeerd, het werkt alleen niet helemaal want hij telt in C12 ook gewoon C2:C7 mee dus het antwoord wordt dan 22.

Dat klopt ook wel want met b$2 zet je de optelsom toch gewoon vast tot de bovenste cel?
Kleine correctie:

Je zal toch even een hulpkolom moeten maken (D).

d2: 1
vanaf d3 (en naar beneden slepen): =if(a3="totaal";"";if(d2="";d1+1;d2))

Nu kan je in B12 zetten:

{=sum(if($d$2:$d11=max($d$2:$d11);b$2:b11))}

Deze laatste formule kan je vervolgens copieren naar c12, b7, etc.

  • riZZy
  • Registratie: Februari 2004
  • Laatst online: 19-12 22:23
Winnetou schreef op maandag 20 november 2006 @ 19:52:
Hm ja ik hoopte dat er een eenvoudig trucje was om makkelijk tot de eerstvolgende cel erboven waar SUM oid instaat te tellen :P Maar blijkbaar bestaat dat niet echt. Met de hand is het voor 12 rijen ofzo natuurlijk wel te doen, maar met 100+ rijen is het lastig om elke keer te kijken tot waar ie moet tellen enzo.
Elke keer? Hoe moet ik me dat voorstellen? Krijg je elke keer weer een nieuwe sheet waar je totalen moet inzetten? Als je dit steeds opnieuw moet doen, zou ik eerder kijken naar een manier waarop je snel het hele bestand kunt vullen met de simpele formule dan tig keer die moeilijke (maar mooi generieke) formule copy-pasten. Dat maakt je bestand ook weer wat leesbaarder.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Zet gewoon ook de formule van totaal in een andere kolom en tel gewoon de hele kolom?

Of als dat om een of andere reden niet kan: tel de hele kolom en deel door 2. Je hebt immers totaal som(alles) + som( som(deelN)) == 2* totaal

Edit: dan natuurlijk voor de hele kolom tot op dat punt. Zet ook voor het laatste deel ergens een subtotaal en je bent er. Maar de voorkeur is alle totalen in eigen kolommen. De logica van Excel is nu eenmaal zo opgebouwd.

[ Voor 36% gewijzigd door F_J_K op 21-11-2006 08:43 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Winnetou
  • Registratie: September 2002
  • Niet online
Verwijderd schreef op dinsdag 21 november 2006 @ 00:02:
[...]

Kleine correctie:

Je zal toch even een hulpkolom moeten maken (D).

d2: 1
vanaf d3 (en naar beneden slepen): =if(a3="totaal";"";if(d2="";d1+1;d2))

Nu kan je in B12 zetten:

{=sum(if($d$2:$d11=max($d$2:$d11);b$2:b11))}

Deze laatste formule kan je vervolgens copieren naar c12, b7, etc.
Hm ik krijg ook dit niet werkend. Nu laat ie in de rij met totaal in kolom d niks zien. De totaalwaarden zijn vervolgens 0 :?
F_J_K schreef op dinsdag 21 november 2006 @ 08:40:
Zet gewoon ook de formule van totaal in een andere kolom en tel gewoon de hele kolom?

Of als dat om een of andere reden niet kan: tel de hele kolom en deel door 2. Je hebt immers totaal som(alles) + som( som(deelN)) == 2* totaal

Edit: dan natuurlijk voor de hele kolom tot op dat punt. Zet ook voor het laatste deel ergens een subtotaal en je bent er. Maar de voorkeur is alle totalen in eigen kolommen. De logica van Excel is nu eenmaal zo opgebouwd.
He? Het maakt toch niet uit of die totalen er onder staan of ernaast? Dan moet ik alsnog zo'n formule als van grizzlybeer toepassen om het op te tellen. Of bedoel je bij elke rij een soort subtotaal in een nieuwe kolom, dat zou natuurlijk op zich wel mogelijk zijn. Niet de mooiste oplossing maar het kan wel.

Die folgende Sendung ist für Zuschauer unter sechzehn Jahre nicht geeignet


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Als de cijfers in A staan en je hebt je totalen in B ernaast dan voldoet voor elke totaalregel n de som-van A1:An-1 minus de som van B1:Bn-1
code:
1
=SOM($A$1:INDIRECT("R[-1]k[-1]";0))-SOM($B$1:INDIRECT("R[-1]K";0))

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Winnetou schreef op dinsdag 21 november 2006 @ 13:23:
Hm ik krijg ook dit niet werkend. Nu laat ie in de rij met totaal in kolom d niks zien. De totaalwaarden zijn vervolgens 0 :?
Werkt toch echt hoor...

Afbeeldingslocatie: http://tweakers.net/ext/f/0601cffa7d7923ee2ff9956bd90da532/full.jpg

  • Winnetou
  • Registratie: September 2002
  • Niet online
niesje schreef op dinsdag 21 november 2006 @ 14:57:
Als de cijfers in A staan en je hebt je totalen in B ernaast dan voldoet voor elke totaalregel n de som-van A1:An-1 minus de som van B1:Bn-1
code:
1
=SOM($A$1:INDIRECT("R[-1]k[-1]";0))-SOM($B$1:INDIRECT("R[-1]K";0))
Hmz 'k geloof dat ik niet zó into Excel ben dat ik dit begrijp. Met verticaal zoeken is het ook nog niet echt gelukt. Die indirect functie is ook apart, beetje vaag...
Nah ik begrijp het niet hoezo werkt ie bij mij nou weer niet :'( (overigens met deze gevallen {} werkt het sowieso niet, als ik die eraf haal krijg ik dat #VALUE!
Afbeeldingslocatie: http://img479.imageshack.us/img479/9310/excel2qf8.th.jpg

Die folgende Sendung ist für Zuschauer unter sechzehn Jahre nicht geeignet


Verwijderd

Winnetou schreef op dinsdag 21 november 2006 @ 16:58:
Nah ik begrijp het niet hoezo werkt ie bij mij nou weer niet :'( (overigens met deze gevallen {} werkt het sowieso niet, als ik die eraf haal krijg ik dat #VALUE!
Wellicht ten overvloede, maar je moet <ctrl><shift><enter> doen als je de formule hebt ingevoerd (om {} te krijgen).

  • riZZy
  • Registratie: Februari 2004
  • Laatst online: 19-12 22:23
niesje schreef op dinsdag 21 november 2006 @ 14:57:
Als de cijfers in A staan en je hebt je totalen in B ernaast dan voldoet voor elke totaalregel n de som-van A1:An-1 minus de som van B1:Bn-1
code:
1
=SOM($A$1:INDIRECT("R[-1]k[-1]";0))-SOM($B$1:INDIRECT("R[-1]K";0))
Winnetou schreef op dinsdag 21 november 2006 @ 16:58:
[...]
Hmz 'k geloof dat ik niet zó into Excel ben dat ik dit begrijp. Met verticaal zoeken is het ook nog niet echt gelukt. Die indirect functie is ook apart, beetje vaag...
Je kunt ook gewoon
code:
1
=SOM($A$1:A3)-SOM($B$1:B3)
in cel B4 zetten en deze kopieren voor andere totaalregels....

Maar naast de uitdaging van een generieke formule begrijp ik nog steeds niet waarom je niet gewoon de simpele som-formule gebruikt. Hoe vaak moet je totaalregels in een bestand erbij zetten? (Zie mijn eerdere post.)

[ Voor 37% gewijzigd door riZZy op 22-11-2006 08:44 ]


Verwijderd

Ik heb een hele simpele oplossing gegeven, user hoeft het niet eens in te tikken want het kan gewoon uit dit topic gekopieerd worden.

Als de user hier geen tijd voor heeft of zich niet 2 seconden wil verdiepen in de problematiek dan is het blijkbaar niet zo belangrijk.
Pagina: 1