Dne 23.10.2009 13:55, Miloš Bíba napsal(a):
Přesně jde o todle, na vině je asi formát, ale nevím co s tím. Výpočty jsou v
rámci sešitu,
na jednom listě je sloupec o 31 řádcích ve kterém jsou je vzorec který pomocí
dlouhého IF
příkazu zjišťuje jestli se ve sloupci nalevo jedná o víkend nebo ne a pokud
náhodou se
nejedná o den povinné dovolené (seznam dnů povinné dovolené j v dalším sloupci.
Tento vzorec ještě funguje správně.
=IF(OR(WEEKDAY(A1)=1;WEEKDAY(A1)=7;MONTH(A1)<>MONTH($D$2);A1=$E$2;A1=$E$3;A1=$E$4;A1=$E$5;A1=$E$6;A1=$E$7;A1=$E$8;A1=$E$9;A1=$E$10;A1=$E$11;A1=$E$12;A1=$E$13;A1=$E$14;A1=$E$15;A1=$E$16;A1=$E$17;A1=$E$18;A1=$E$19;A1=$E$20;A1=$E$21;A1=$E$22;A1=$E$23;A1=$E$24;A1=$E$25;A1=$E$26;A1=$E$27;A1=$E$28;A1=$E$29;A1=$E$30);"v";"
")
Tento sloupec je potom zrcadlen do dalších listů, což probíhá také správně
=$Kalendář.B2
Ovšem pokud s touto hodnotou zkouším počítat v dalším IFu
=IF(B3="";"";IF(B3="V";0;C3-B3))
tak pokud je v políčku B3 nic není to vyhodnoceno jako nic ale vzorec píše
#Value! Ona by
to byla jenom estetická vada, kdyby prostě nemuselo bejt pár záznamů s tou
nulou, po
dopsání čísla do toho pole B3 nebo pokud je v něm hodnota V vše funguje. Všude
musím psát
0, ale protože je to čas, tak musím psát 0: aby to bylo prezentováno jako 0.
pokud se
nevšimnu, zakazí se všechny následné výpočty, ve kterých potom také svítí
#Value! anebo
hůř, jenom zapomenou cosi připočíst, takže je to skrytá chyba, kterou občas
zapomenu najít.
Jde todle nějak vyřešit aby se to prostě chovalo jako ve windows, že to prostě
bere buňku
ve které je vzorec který tam hází nic "" jako opravdu nic ""?
Problém je v tom, že "" nepředstavuje prázdnou buňku, ale představuje
textový řetězec o nulovém počtu znaků. To platí i v Excelu a přesvědčite
se o tom pomocí funkce JE.PRÁZDNÉ(buňka). Bude-li buňka prázdná,
dostanete PRAVDA, bude-li v ní vzorec ="", dostanete NEPRAVDA.
Pokud napíšete vzorec =IF(podmínka; 1; ""), tak je v případě splněné
podmínky výsledkem číslo a v případě nesplněné podmínky textový řetězec.
Pokud tento výsledek dále porovnávate s číslem, tak se v případě
nesplněné podmínky porovnává text s číslem. A to je špatně.
Je sice pravda, že v Excelu to funguje, protože ten převede "" v
numerickém výrazu na nulu. Ale i v Excelu je to špatný přístup a můžete
s ním narazit. Pokud například budete počítat průměr, tak prázdná buňka
nebo buňka s nulou bude zahrnuta do celkového počtu hodnot, ale buňka s
"" nebude, protože agregační funkce ignorují buňky s textem.
Lépe je proto nepoužívat IF, jehož výsledkem může být text nebo číslo.
Pokud už není zbytí, tak nezbývá než něco na způsob
=IF(ISTEXT(buňka_s_heterogenním_IFem); 0; 1).
Pokud jde jen o to, aby se nuly nezobrazovaly, tak to lze nastavit jen
pro celý sešit. Pokud to chcete jen pro některé buňky, tak je
nejjednodušší (i když ne moc pěkné) nastavit podmíněným formátováním
barvu písma na barvu pozadí.
S přáním hezkého dne,
Jiří Spitz
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]