V minulém příspěvku jsem ukázal jak stahovat data pomocí funkcí co nabízí google tabulky a teď je na řadě „vlastní funkce“. Funkce bude stahovat data jen z YahooFinance, ale podobně to lze udělat prakticky pro každý zdroj. Funcke jsou psány v APPS Script a v sešitu jsou snad i rozumně popsány.
Zatím jde o extra sešit, který si můžete zkopírovat a využívat kód jak chcete. Nejde o doplněk, který se bude po vytvoření kopie aktualizovat(aktualizace kódu).
Úplně na konci máte „návod“ jak si funkce zkopírovat do svých sešitů. A kdo se nebojí, může se v nic pohrabat.
Vytvořil jsem sešit co obsahuje několik funkcí a postupů jak data získávat. Každá funkce má nápovědu a já zde budu hodně z těchto nápověd opisovat.
První list obsahuje ukázku na dvě funkce YAHOOFINANCE_CENA a YAHOOFINANCE_DIV
YAHOOFINANCE_CENA
Tato funkce požaduje jen Ticker z YahooFinance a vrací pole s Cenou a Měnou.
Příklad : =YAHOOFINANCE_CENA(„AAPL“)
Výsledek se ale vypisuje do jednoho sloupce a pokud je tedy chtěné(nejspíš ano) mít hodnoty v řádku je třeba použít ještě funkci TRANSPOSE =TRANSPOSE(YAHOOFINANCE_CENA(„AAPL“))
Pokud bude potřeba jen jedna hodnota použije se funkce INDEX, která vrátí jen jednu hodnotu.
Cena =INDEX(YAHOOFINANCE_CENA(„AAPL“);1;1)
Měna =INDEX(YAHOOFINANCE_CENA(„AAPL“);2;1)
YAHOOFINANCE_DIV
Tato funkce požaduje jen Ticker z YahooFinance a vrací pole s DIV, datem výplaty a Měnou.
Příklad : =YAHOOFINANCE_DIV(„AAPL“)
Výsledek je též ve sloupci jako YAHOOFINANCE_CENA
Pokud bude potřeba jen jedna hodnota použije se funkce INDEX, která vrátí jen jednu hodnotu.
DIV=INDEX(YAHOOFINANCE_DIV(„AAPL“);1;1)
Datum=INDEX(YAHOOFINANCE_DIV(„AAPL“);2;1)
Měna =INDEX(YAHOOFINANCE_DIV(„AAPL“);3;1)
Pomůcky
Ještě jsem zde popsal jak postupovat při aktualizaci dat postupně po dokončení předešlého a jak si aktualizaci vynutit zaškrtnutím jedné buňky. Toto se hodím pokud nechcete aby se vám hodnoty měnily pod rukama a nebo pokud se požadovaná hodnota nemění moc často. Třeba u DIV je asi zbytečné aktualizovat nějak často a stačí jednot za x dní/týdnů.
Druhý list obsahuje ukázku na funkci YAHOOFINANCE
Tato funkce dokáže vypsat více hodnot než předešlé dvě, ale je o něco málo složitější ji plnit.
Funkce požaduje kromě Tickeru ještě název hodnot, které má vracet a tabulku ze které je vracet. Seznam hodnot může být více a stačí je oddělit čárkou. Ale vždy jde o hodnoty z jedné tabulk. Seznam tabulek a hodnot je na listě též
Příklad:
=YAHOOFINANCE(„AAPL“;(„dividendRate,exDividendDate“);“summaryDetail“)
Opět se vrací výsledky ve sloupci a je třeba využít Transponse.
Též lze využít i Indexu.
Třetí list je ukázkou funkce getJsonValue
Tato funkce vrátí všechny hodnoty pro daný ticker a tabulku.
Příklad =getJsonValue(„AAPL“;“summaryDetail“)
Poslední dva listy ukazují jak pracovat s funkcí myGetContentText
Jde o jednoduchou funkci co se jen webu zeptá na stránku a vypíše výsledek. Ale narozdíl od IMPORTHTML A IMPORTMXL ho nerozhodí skripty na stránce. Pokud tedy něco nejde stáhnout pomocí těchto dvou GOOGLE funkcí zkuste tuto.
Pozor, pokud chcete informace o S&P 500 Yahoo má zkratku ^GSPC , ale když se kouknete nahoru do linku je cesta https://finance.yahoo.com/quote/%5EGSPC a zde je taková malá past. V adrese nesmí být znak ^ a stejně ani v dotazu být nesmí (i když bych to mohl v kódu ošetřit, ale tak jak je je snadnější na pochopení) a tak místo tohoto znaku dávejte %5E. Podobných zakázaných znaků je více, třeba = atd…, ale vždy se stačí kouknout do linku a bude jasné co tam vložit.
Jak si ty funkce zkopírovat do svého listu?
Není to žádná věda. Naklikejte si Nástroje -> Editor skriptu a najděte si v části Soubory požadovaný soubor(je v něm více jak jedna funkce). Obsah tohoto souboru si zkopírujte (klik kamkoli do obsahu Ctrl+A a Ctrl+C). Pak uděláte to samé ve svém sešitě a tam bude default jeden soubor Kód.gs(či nějak podobně pojmenovaný) a ten obsahuje jednu prázdnou funkci (function myFunction() {), do funkce klikněte a buď ji smažte a nebo pomocí Ctrl+A označte celou a pak stačí Ctrl+V a máte zde zkopírovaný obsah. Teď již jsou funkce na místě ale ještě nejdou používat. U názvu Kód.gs(který lze přejmenovat pomocí 3 teček co jsou u něj) svítí červené kolečko(značí že se v souboru něco upravovalo a ještě nebylo uloženo). A teď už jen stačí kliknout na disketku (Uložit projekt) a máte hotovo. Pokud zadáte kdekoli v sešitu =YAHOO tak se nabídne nová funkce i s popisem. Kdo to zvládl gratuluji, máte vlastní funkce a můžete si hrát v Apps Script.