Zlobili jste se někdy s tím, že Excel špatně nerozpoznává datové typy? Že načítá texty místo čísel, čárky místo teček atd. atd.? Že nerozpozná datum, nebo naopak, což je obzvlášť vypečené, rozpozná datum tam, kde není? Ano, dá se to řešit pomocí funkcí HODNOTA, HODNOTA.NA.TEXT, přepínáním Excelu na čárky nebo tečky… Ale v Power Query je to snazší a tomu se věnuje tento článek.

Postupy uvedené v článku platí pro situaci, kdy chceme z původního sloupce vytvořit sloupec nový s upraveným datovým typem, neplatí to ale v situacích, kdy se má původní sloupec nahradit (což u jiných úprav načítaných dat v Power Query jde).

Uvedené možnosti platí jak pro Power Query (Načíst a Transformovat) v Excelu, tak pro obdobný nástroj v Power BI Desktop.

V rámci Excelu je také možné snadno upravovat dat při přelévání z jedné tabulky do druhé v rámci jednoho souboru.

U všech změn datových typů platí, že pokud se původní hodnoty na nový datový typ změnit z principu nedají (např. “abcd” nelze změnit na celé číslo), vznikne chyba – ta se pak ukáže při načítání.

A ještě jedno upozornění. Power Query nabízí možnost automatického přiřazení datového typu. To funguje často dobře, problém ale je, že datum se nezjilšťuje na základě celého sloupce, ale pouze vzorku prvních několika tisíc řádků. Stává se tedy, že pokud např. v prvních řádcích jsou čísla a a až později se objeví texty, nastaví se automaticky číselný datový typ – a textové položky pak skončí chybou. Není ovšem problém toto nahradit pevně nastaveným datovým typem.

K nastavení typu se dostaneme v kartě Transformace:

Na jaké typy tedy můžeme data měnit?

  • Desetinné místo
    Číslo tak, jak funguje i v Excelu – 15 cifer, ve kterých může být kdekoliv desetinná čárka. Např. 1,2345 nebo 4 nebo 0,123.
  • Měna
    Desetinné číslo, které má vpravo od desetinné čárky maximálně 4 desetinná místa.
  • Celé číslo
    Jakékoliv číslo bez desetinných míst od -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807.
  • Datum/Čas
    Datum s časem v jedné buňce. Např. 10.04.2017 9:34.
  • Datum
    Je, ehm… datum.
  • Čas
    Nepřekvapivě čas.
  • Datum/Čas/Časové pásmo
    Přidá k datumu i informaci o tom, pro jaké časové pásmo platí (např. +02:00).
  • Trvání
    Převede na trvání ve formátu dny.hodiny:minuty:sekundy. Např. z čísla 0,5 (polovina dne) udělá 0.12:00:00 – tedy dvanáct hodin.
  • Text
    Převede všechno na text. 
  • Pravda/nepravda
    Z nul udělá nepravdy, z jakýchkoliv jiných čísel udělá pravdy. Z textů vrátí chybu.
  • Binární
    Může obsahovat i např. obrázky nebo jiné soubory. Také se objeví např. při propojování tabulek přes relační vazbu – než druhou tabulku “rozbalíte”.