Moc otázek najednou.
funkce offset a indirect jsou volatilní - přepočítávají se při každém přepočtu. -> zpomalují práci se sešitem, používat, jen když je jich málo nebo víme, proč je chceme použít.
indirect navíc obvykle ztěžuje ladění sešitu.
?lookup a match/index - záleží na úloze. (názory na poměr rychlosti se dost liší, já je považuji z tohoto pohledu za podobné) ?lookup je obvykle srozumitelnější, match/index je trochu obecnější, má jisté výhody při větším počtu vyhledávacích vzorců, když si nalezenou pozici uložíte v pomocné buňce. Lze použít i kombinaci match/index/?lookup, kde si vymezíte ve vzorci pži opakovaném vyhledávání tabulku. (Konstrukce: index(...):index(...) nebo {index(pole; ;sloupec)} - vrací sloupec matice.)
Pro vyhledávání ve velkých tabulkách se často zapomíná na d-funkce (dget), které jsou na velkých tabulkách a při více podmínkách obvykle rychlejší než lookup/match. Někdy je vhodné je použít s multiple.operations.
Skupina funkcí (sum|count|average|max|min|...)if(s?) ma zatím jen dva zástupce, určitě přibudou další. - Pro svůj účel jsou dost efektivní, pro data v tabulce totéž umí d(sum|count|...).
Matice, případně sumproduct - až, když to nejde lépe - problémy s údržbou, s uživateli, ... Funkce jsou dost obecné a hůře optimalizované, ale jejich alternativou je občas už jen makro.
Rychlost závisí na řadě věcí, mj. na nastavení calcu (měnit způsob výpočtu funkcí přepínači ve vlastnostech byl podle mne dost hloupý nápad), na způsobu programování (nyní diskutovná problémy cykly přes více sešitů jsou pěkným příkladem špatného stylu programování), na verzi OO, na systému, velikosti úlohy, ...
Návody (doporučení) na psaní větších aplikací existují, třeba
www.eusprig.org/smbp.pdf
http://www.ssrb.org/
http://www.eusprig.org/index.htm
http://www.fast-standard.org/the-standard/
Editoval lp. (17. 4. 2011 13:47:58)