Faq/Calc/125
TDF LibreOffice Document Liberation Project Blogs gemeenschap Weblate Nextcloud Redmine Ask LibreOffice Doneren
Hoe voer ik een cumulatieve berekening met een iteratie uit?
Context: je wilt opeenvolgende resultaten van berekeningen optellen. Hoe doe je dat, want als je een oorspronkelijke waarde aanpast de laatstgenoemde wordt herhaald en je de vorige waarde kwijt bent?
In dit voorbeeld wordt C7 gebruikt voor het resultaat van de berekening:
=C10-C13+C16
Je wilt de nieuwe waarden in C10, C13 of C16 en het resultaat van de berekening toevoegen aan het vorige resultaat.
Met bepaalde voorwaarden, kan dat met deze iteratie.
Uitleg
- Je kunt de optelling opnieuw laten beginnen, hiervoor wordt een cel C5 gebruikt. Als je daar een 0 invult dan begint de optelling opnieuw.
- De iteratie stap wordt ingesteld met ▸ ▸ ▸ . Op dit dialoogvenster heet dat: Terugkerende verwijzingen. Het als 1 definiëren betekent 2 berekeningen. Maar we willen niet C7 tweemaal toevoegen. Het cumulatieve resultaat delen we door 2 (bekijk cel E7).
- De Min. wijzigingswaarde bepaalt indirect de maximaal mogelijke waarde. Voorbeeld: met een waarde van 10000, zorgt elke waarde in C7 groter dan 20000 voor de fout 523 (The calculation does not converge).
- Nu de cumulatieve berekening zelf. Het resultaat is al uitgevoerd in C7 maar je kunt deze cel niet gebruiken als bron voor de optelling omdat het voor het bijwerken van de optelling nodig is dat een van de betrokken cellen gewijzigd wordt (die cellen zijn met oranje aangegeven). De berekening wordt daarom herhaald in E7, samen met een test of de telling opnieuw moet beginnen en de noodzakelijk deling door 2:
=ALS(C5=0;0;E7+((C10-C13+C16)/2))
- Tijdens het laden van het werkblad wordt de herberekening gedaan. Dat kan problemen geven bij cumulatieve berekeningen. Die kunt u vooraf uitschakelen ( ▸ ▸ ) en vervolgens de herberekening handmatig laten uitvoeren Ctrl + ⇧ Shift + F9.
In het voorbeeld is het werkblad met een wachtwoord beveiligd, alleen de velden waar invoer wordt verwacht zijn toegankelijk.