Často kladené otázky - Calc

From The Document Foundation Wiki
< Faq‎ | Calc
Jump to: navigation, search
This page is a translated version of the page Faq/Calc/125 and the translation is 100% complete.

Other languages:
čeština • ‎dansk • ‎English • ‎français • ‎italiano • ‎русский

Jak provést kumulativní výpočet pomocí iterací?

Kontext: Chcete sečíst následné hodnoty výsledku výpočtu. Jak postupovat, když víte, že v zásadě, když upravíte "zdrojové" hodnoty pro výpočet, bude se výpočet opakovat a nebude si "pamatovat" předchozí hodnotu?

V následujícím příkladu bude výsledek výpočtu nalezen v buňce C7:

=C10-C13+C16
Copy of calculation screen
Počáteční kontext

Chcete zachytit nové hodnoty v C10, C13 nebo C16 a výsledek operace přidat k předchozímu výsledku.

S určitými omezeními toho lze dosáhnout pomocí iterace.

Copy of calculation screen
Výsledek akumulace


Vysvětlení

  • Začněme s… možností opětovné inicializace akumulace. Dosáhneme toho pomocí hodnoty obsažené v "testovací" buňce. Například pokud C5 obsahuje nulu, akumulace bude znovu inicializována.
  • Dále musíme nastavit krok iterace pomocí nabídky Nástroje ▸ Možnosti ▸ LibreOffice Calc ▸ Výpočet. Definování na 1 vede ke 2 výpočtům. Nechceme však k akumulaci přidat dvakrát C7. Řešení je jednoduché: vydělíte kumulativní výsledek dvěma (viz výše v E7).
  • Minimální hodnota změny nepřímo definuje maximální zohledněnou hodnotu. Například s hodnotou 10 000 způsobí jakákoliv hodnota v C7, která je větší než 20 000, chybu 523 (Výpočet nekonverguje).
  • Pokračujme samotným kumulativním výpočtem. Výsledek, který má být akumulován, byl již proveden v C7, ale tuto buňku nelze použít jako zdroj pro akumulaci, protože je nutné, aby byla akumulace aktualizována, když se změní některá ze "zdrojových" buněk pro výpočet (jedná se o buňky zobrazené na snímku oranžově). Výpočet se proto opakuje v E7 spolu s testem na opětovnou inicializaci a nezbytným dělením dvěma:
=IF(C5=0;0;E7+((C10-C13+C16)/2))
  • Během načítání listu software přepočítává ... což je obtížné v případě kumulativních výpočtů. Měli byste proto učinit preventivní opatření pro deaktivaci tohoto výpočtu automaticky (nabídkaData ▸ Spočítat ▸ Automatický výpočet) a poté výsledek "ručně" přepočítat pomocí kláves Ctrl+⇧ Shift+F9.

V příkladu je list chráněn (bez hesla), takže jsou přístupné pouze oblasti, kde se očekává zadání dat.