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

Vereenvoudigen van een som van optellingen

Status
Niet open voor verdere reacties.

Teebee

Gebruiker
Lid geworden
8 jan 2006
Berichten
157
Is er een formule / functie tot het enorm verkleinen van deze optelsom ?

Code:
Cel A1 : 1  Cel B1 : =(3*A1)^0,9*1.25
Cel A2 : A1 + 1  Cel B2 : =(3*A2)^0,9*1.25
Cel A3 : A2 + 1  Cel B3 : =(3*A3)^0,9*1.25
...
Cel A4000 : A3999 + 1  Cel B3 : =(3*A3999)^0,9*1.25

Dus ipv 4000 rijen, dat dit vereenvoudigt kan worden tot misschien 1 formule.
 
Laatst bewerkt:
Het kan in ieder geval met een macro.

Heeft deze berekening een naam?
Veel wiskundige en statistische berekeningen zijn met hun naam (zoals machtsverheffen of Pi) te vinden in de help of met google. Als je de naam deelt kunnen we wellicht iets makkelijker meedenken
 
nee, heeft geen naam zover ik weet.

Maar ik had gedacht dat er misschien iemand zo een functie kende.
het is 5000x dezelfde formule, enkel moet in Kolom A telkens 1 bijgeteld worden.
 
Beste TB,

Dat kan met de formule somproduct, mits je de cellen A1 t/m A4000 gevuld hebt:
=SOMPRODUCT(((A1:A4000)*3)^0,9)*1,25

Ik heb deze getest op vijf cellen en het antwoord klopte exact. Ik ga er overigens wel vanuit dat je met één formule de som wilt hebben van die 4000 formules.

Groeten,

Richard
 
Deze formule werkt, doch heb nog een vraagje/uitbreiding hierover:

=SOMPRODUCT(((A1:A4000)*3)^0,9)*1,25

Kan ik die A4000 ook vervangen door een getal dat in Cel C1 staat ?
bv:
Verander ik de inhoud van C1 naar 5000, dan wordt de formule automatisch:
=SOMPRODUCT(((A1:A5000)*3)^0,9)*1,25

Zet ik nu in C1 6000, dan gaat hij A1:A6000 optellen.
 
Hoi Teebee,

Twee oplossingen:
Gebruik de formule indirect:
=SOMPRODUCT((INDIRECT("A1:A"&$C$1)*3)^0,9)*1,25

Gebruik matrixformule (Ctrl & Shift & Enter indrukken):
=SOMPRODUCT(((ALS(ISGETAL(A1:A9999);A1:A9999;0))*3)^0,9)*1,25

De eerste oplossing heeft de voorkeur. Somproduct wordt bij iedere invoer herberekend. Hoe groter het bereik hoe meer (onnodige) rekentijd, hoe langzamer Excel.

Jeroen
 
Beste TB,

De formule van Jeroen kan nog nèt iets mooier: :-)
=SOMPRODUCT((INDIRECT("A1:A"&AANTALARG(A:A))*3)^0,9)*1,25
Op deze manier hoef je zelf niet aan te geven hoeveel cellen er in kolom A gebruikt zijn.

Groeten,

Richard
 
Bedankt, beide voorgestelde formules werken, maar ik vind deze
Code:
=SOMPRODUCT((INDIRECT("A1:A"&$C$1)*3)^0,9)*1,25
beter geschikt, aangezien hij niet alle rijen die aanwezig zijn moet optellen, doch slechts een opgegeven aantal. Het maximum aantal rijen dat er gebruikt gaat worden is 4320, maar dit kan ook slechts 1500 zijn, en dan is deze formule beter geschikt.


edit:

Maar nu kom ik iets vreemds tegen:

tabel.jpg



Onderaan heb ik alles eens opgeteld, en dan blijkt dat ik niet dezelfde waarde uitkom als bovenaan.

SOMPRODUCT((B9:B18)*3)^0,9*1,25
geeft niet hetzelfde als (C1=18) :
SOMPRODUCT((INDIRECT("B9:B"&C1)*3)^0,9)*1,25

Doe ik iets verkeerd ?
 
SOMPRODUCT((B9:B18)*3)^0,9*1,25
betekend de waarden vermenigvuldigen met 3, vervolgens alles optellen en dan pas )^0,9*1,25

Je hebt dus een totaal andere formule te pakken
 
Hoi Teebee,

Kwestie van haakjes, te veel gekeken naar voorgaande antwoorden en te weinig naar de vraag :confused:
=SOMPRODUCT(((INDIRECT("A1:A"&$C$1)*3)^0,9)*1,25)

Zo moet ie het wel goed doen.

Jeroen
 
:o Dit had ik ook kunnen vinden. Thx.

Ik durf het bijna niet vragen, maar is er toevallig ook een eenvoudige manier om, zoals op de foto, de som te bepalen tussen twee getallen ?

bv 1 en 10 = 1+2+3+4+5+6+7+8+9+10 = 55

Ik heb al liggen prutsen met Combinaties en permutaties, maar denk dat ik op een fout spoor zit.
 
Een macro..
Zet in A1 het eerste getal, zet in A2 het laatste getal en run onderstaande macro. De uitkomst wordt in B1 geplaatst:
Sub Formule()
Dim Eerste, Laatste, Huidige, Uitkomst
Eerste = Cells(1, 1).Value
Laatste = Cells(2, 1).Value
Huidige = Eerste
Uitkomst = 0
Do While Huidige <= Laatste
Uitkomst = Uitkomst + ((3 * Huidige) ^ 0.9 * 1.25)
Huidige = Huidige + 1
Loop
Cells(1, 2).Value = Uitkomst
End Sub


John
 
Hoi Teebee,

Somproduct is echt geweldig voor dit soort dingen. Ik neem aan dat je de som wilt hebben van kolom b indien kolom A tussen 1 en 10 is.

=SOMPRODUCT((INDIRECT("A1:A"&$C$1)>=1)*(INDIRECT("A1:A"&$C$1)<=10)*((INDIRECT("B1:B"&$C$1)*3)^0,9)*1,25)

Natuurlijk mag je ipv 1 en 10 ook $C$2 en $C$3 nemen .

Jeroen
 
Ik zal het proberen uit te leggen in een formule wat ik juist zoek:

Een volledig leeg blad, en in C1 staat bv 10

De functie zou dan zoiets moeten zijn:
=OPTELLINGFUNCTIE(1;C1)
=OPTELLINGFUNCTIE(1+2+3+4+5+6+7+8+9+10)
=55

Dus ik geef een begingetal en een eindgetal, en de functie telt dan alles op.
=OPTELLINGFUNCTIE(10;15) en dat dan de uitkomst: 10+11+12+13+14+15 = 75

Voor de rest is alles leeg, dus geen rijen waar de getallen 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 enz. instaan.


Dit principe ongeveer, doch

\sum_{k=1}^n a_k wordt gelezen als "De som van ak voor k van 1 tot n". Dit betekent: a1 + a2 + ... + an
\sum_{k=1}^4 k^1 = 1^1 + 2^1 + 3^1 + 4^1 = 10


edit:

De (dummy)variabele i heet sommatie-index en onder- en bovenschrift geven aan dat de index begint te tellen bij m en eindigt bij de waarde n. Bijvoorbeeld:

\sum_{i=2}^{6} i^{2} = 2^{2} + 3^{2} + 4^{2} + 5^{2} + 6^{2} = 90.
 
Laatst bewerkt:
Een macro..
Zet in A1 het eerste getal, zet in A2 het laatste getal en run onderstaande macro.
De uitkomst wordt in B1 geplaatst, en de som van de variabelen in B2:

Sub Formule()
Dim Eerste, Laatste, Huidige, Uitkomst, Totaal
Eerste = Cells(1, 1).Value
Laatste = Cells(2, 1).Value
Huidige = Eerste
Uitkomst = 0
Totaal=0

Do While Huidige <= Laatste
Uitkomst = Uitkomst + ((3 * Huidige) ^ 0.9 * 1.25)
Totaal=Totaal+Huidige
Huidige = Huidige + 1
Loop
Cells(1, 2).Value = Uitkomst
cells(2, 2).value = Totaal
End Sub


John
 
Ik heb het gevonden :)

{=SOM((RIJ(INDIRECT("B"&A1&":B"&A2))*3)^0,9)*1,25} en dan als matrixformule ingeven.

Thx everyone? :thumb:
 
Hoi Teebee,

Laatste dagen even druk gehad, dus geen tijd om te reageren.

SOMPRODUCT is hetzelfde als de matrix-variant van SOM, dus
=SOMPRODUCT((RIJ(INDIRECT("B"&A1&":B"&A2))*3)^0,9)*1,25
zou ook moeten werken. maar a, als som werkt wie ben ik dan.

Jeroen
 
jzeedijk zei:
Hoi Teebee,

Laatste dagen even druk gehad, dus geen tijd om te reageren.

SOMPRODUCT is hetzelfde als de matrix-variant van SOM, dus
=SOMPRODUCT((RIJ(INDIRECT("B"&A1&":B"&A2))*3)^0,9)*1,25
zou ook moeten werken. maar a, als som werkt wie ben ik dan.

Jeroen

ow, thx, weeral wat bijgeleerd.

Ik vraag me af wat sommige mensen in het dagelijkse leven doen, dat ze zoveel van dit alles afweten.
:thumb:
 
Hoi TB,

Geloof het of niet, maar als je van iets (Excel, of Office) veel afweet, kun je er een aardige boterham mee verdienen.
Ik (nog) niet, en doe het erbij als hobby. Een hobby overigens die steeds leuker wordt, hoe meer je ervan afweet. En net als zovelen op dit forum is het gewoon kicken als je iemand kunt helpen.

Groeten,

Richard
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan