Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 16. 6. 2010 21:48:59

DartVader
Člen
Registrace: 11. 3. 2010
Příspěvků: 12

limit vkládaných funkcí

Ahoj,
sestavil jsem si tabulku, kter používá vkládané fce "if" a "or". a někde jsem četl, že existuje limit vkládaných fcí (nested functions). Myslím, že pro "if" je to 7, pro "or" netuším. No mě by zajímalo, jestli to někdo ví, jak to celé "ochcat". Pardon za vyjádření, ale tady to vyloženě sedí.
V mém případě mám vzorec který pracuje se značky výrobků. Vzorec vypadá asi takhle:


=IF(OR(D3="Citizen";D3="MPM";D3="Police");"hodinky";IF(D3="Alo";"zlato";IF(D3="Swarowski";"stříbro";IF(OR(D3="Alo";D3="Optima");"brilianty"))))

Fakt, že se značka Alo vyskytuje jak u briliantů, tak u zlata je druhořadý, vyřešení tohoto problému je otázka pár vteřin. O co mi vlastně jde? Když se podíváte na vzorec, je tam celkem 7 značek. Ale je dost možné, ne možné ani pravděpodobné, ono se to prostě stane, že budu potřebovat pouřít více výrobců. A tady, byť jsem se s tím nesetkal, bych mohl narazit. Pokud tu píšu žvásty a Calc žádné limity nemá, pak se omlouvám, jinak prosím o nápady.
Díky, Dartvader.

Offline

#2 16. 6. 2010 22:17:37

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: limit vkládaných funkcí

Už si přesně nepamatuju, jestli byl ve starém Excelu limit 7 nebo 15 nebo 30 vnořených IF. OpenOffice ten limit nemá, nebo ho má hodně vysoký. Nic jednoduššího, než to vyzkoušet :-)
Jinak vámi uvedený problém by se dal místo IF a OR řešit pomocí funkce VLOOKUP,ale bylo by potřeba si vytvořit pomocnou párovací tabulku o dvou sloupcích:
Citizen|hodinky
MPM|hodinky
Police|hodinky
Alo|zlato
Swarowski|stříbro

VLOOKUP pak bude hodnotu z daného sloupce hledat v téhle pomocné tabulce (v jejím prvním sloupci) a vrátí hodnotu z druhého sloupce na příslušném řádku. K VLOOKUP více např. v
http://www.openoffice.cz/navody/funkce- … ek-v-calcu

Pokud by do logiky mělo vstupovat AND, bylo by potřeba to modifikovat - podle situace.

Editoval hanus (16. 6. 2010 22:27:59)

Offline

#3 16. 6. 2010 22:50:17

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 844

Re: limit vkládaných funkcí

Limit calcu je tuším 40 vnořených if. (excel měl 7 a nyní 32 od v. 2007). Kromě toho je zde omezená délka vzorce (1024 znaků v RC notaci). V každém případě před dosažením těchto limitů asi narazíte na čitelnost vzorce. V tom může trochu pomoci forma:

=IF(OR(D3={"Citizen";"MPM";"Police"});"hodinky";
IF(D3="Alo";"zlato";
IF(D3="Swarowski";"stříbro";
IF(OR(D3={"Alo";"Optima"});"brilianty"))))

Jinak obecné řešení je použití některé z variant funkce LOOKUP.

Offline

#4 17. 6. 2010 08:19:32

DartVader
Člen
Registrace: 11. 3. 2010
Příspěvků: 12

Re: limit vkládaných funkcí

Jasně, tak to mne velmi potešilo. Díky kluci.

Offline

#5 23. 6. 2010 14:42:54

DartVader
Člen
Registrace: 11. 3. 2010
Příspěvků: 12

Re: limit vkládaných funkcí

Dnes jsem to sic po pár dnech, ale přece jen vyzkoušel a musím říct, že bomba. Z krkolomného vzorce je rázem jednodušší řešení se stejným výsledkem.

Editoval DartVader (23. 6. 2010 14:47:34)

Offline

Zápatí