Vlastní funkce v jazyce M v Power BI a v Power Query
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
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á.
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
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
Dobrý den Jano,
když zadám připojení k tomuto linku:
https://www.sauto.cz/inzerce/osobni#!page=1
tak by Vám měly naběhnout několik tabulek. Smysl dává ta první, viz obrázek:
https://exceltown.com/wp-content/uploads/2019/07/auta.png
Pomohlo to?
U těch kurzů – to by nemělo vadit. Co to říká, když to nejde uložit?
Dobrý den,
při načtení z webu sauto se mi také zobrazuje jen jedna tabulka “Document”, přesně jak popisovala paní Jana.
A vidíte tam to, co ukazuju v tom auta.png?
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
A jdete opravdu přes link:
https://www.sauto.cz/inzerce/osobni#!page=1
?
A jdete v Power BI desktop, nebo v Power Query v Excelu?
JB
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
Sel jsem presne pres dany link, a to v PW v Excelu 2013.
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.
Pouzivam pouze PQ v MS Excel 2013.
Tam se vám to aktuálně nepovede, ale možná po nějakém upgrade…