Často kladené otázky - Calc

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

    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.