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]

Odpovedet emailem