Tento článek je o tom, jak vytvořit v Excelu vlastní funkci.

Co je to vlastní funkce? 

Vlastní funkce v Excelu je nějaký postup, který je proveden nad každým řádkem tabulky. Výstupem funkce je pak typicky původní tabulka, kde ke každému řádku je něco dopočitáno (obvykle nová tabulka).

Příklad

Srozumitelnější to bude na tomto příkladu.

Řekněme, že bychom chtěli z webu sauto.cz vytáhnout ceny a další informace o všech autech. Teoreticky byste mohli jít na tuto stránku:

https://www.sauto.cz/inzerce/osobni#!page=1

Vypsat auta, která tam jsou, pak na konci zaměnit jedničku za dvojku, tím se posunout na další stránku, zase vypsat atd. Nicméně pokud je aut hodně, není realistické dělat to ručně stránku po stránce.

Lepší bude vytvořit si funkci, která z jedné stránky vytáhne všechny informace, a pak ji pouštět nad sloupcem, který bude obsahovat čísla 1,2,3... Tím se dotáhnou auta z první stránky, ze druhé, ze třetí atd. a časem se takto stáhne celá databáze.

Potřebujeme tedy funkci, která bude stahovat z webu, parametr, a pak sloupec čísel s parametry.

Vytvoření vlastní funkce

Funkci nebudeme nijak složitě vytvářet - prostě si vytvoříme dotaz a ten změníme na funkci.

Dotaz vytvoříme tak, že se prostě připojíme na web, např. na tuto stránku:

https://www.sauto.cz/inzerce/osobni#!page=1

Vytvoření parametru

Vytvoříme parametr, např. jako text, který se bude pak v adrese měnit.

Dáme parametr do funkce

Ve funkci, kterou jsme předtím vytvořili, nahradíme kousek adresy parametrem - třeba v advanced editoru.

Změna dotazu na funkci

Teď můžeme původni dotaz (tabulku) upravit na funkci.

Vypadá nějak takhle:

Vytvoření tabulky

Vytvoříme si tabulku s čísly jedna až 10 (nebo samozřejmě víc - to záleží, kolik stránek chcete vytáhnout). Můžeme jí napsat, dotáhnout z Excelu, cokoliv.

změníme datový typ na text.

Použití vlastní funkce

Ve sloupci s čísly přidáme vlastní funkci:

Pak ještě rozklikneme dvojitou šipku:

A je hotovo, už jen trochu vyčistit datové typy, nadbytečné sloupce atd. Máme staženo prvních deset stránek. Samozřejmě můžeme klidně stáhnout stránek deset tisíc a tím celou databázi - jen načtení pak pár hodin potrvá.

 

11 Comments

  1. Dobrý den Jiří,
    viděla jsem Váš dnešní post na Linkedin….tak jsem chtela zkusit.
    Bohužel mi nejde vubec se webovou stranku pripojit, resp. vytvori se pouze tabulka o 4 sloupcich (Kind, Name, Childern, Text a jednom radku (Element, HTML, Table, null)….
    Pripojit se na kurz. listek CNB, jak mate taky v navodech mi jde….zkusila jsem tedy stejny postup s kurz.listkem, tam zase narazim na problem, ze v roce 2018 je v listku mena, ktera neni v letech 2017, 2016… (100ISK) a to se power BI nelibi a nenecha me ulozit.
    Nevíte, kde může být problém, proč mi nejde se pripojit na web sauto?
    Díky.
    jana

  2. Dobrý den,

    při načtení z webu sauto se mi také zobrazuje jen jedna tabulka „Document“, přesně jak popisovala paní Jana.

  3. Nevidím, v navrhovaných tabulkách se zobrazuje na této URL pouze tabulka „Documents“. Nicméně Váš návod jsem úspěšně použil na datech z čnb.

    Díky

  4. Zdravím oba,
    zkousím v Power BI desktop….opravdu nic, nabizí se pouze jedna tabulka Document. Poslu Vám printscreen do mailu.
    Jinak taky se mi zadařilo s kurzovým listkem cnb (roky 2017, 2016).
    Díky.
    JBax

  5. Je to zřejmě tím, že je třeba v Power BI jít na Soubor / Options / Preview options a zaškrtnout New web table inference. To by mělo pomoci.

  6. Tam se vám to aktuálně nepovede, ale možná po nějakém upgrade…

Napsat komentář

Vaše emailová adresa nebude publikována.

*

smazat formulářOdeslat komentář