WWW pro školy
Jak na Office - tutoriály, video návody











Vytvoř si párové triko

Poradna - Kontingenční tabulka pomocí makra

hlavní kategorie | zpět | + odpovědět na toto téma
Kontingenční tabulka pomocí makra - diskuze na toto téma
Zdravím, potřeboval bych poradit ohledně vytvoření makra na vytvoření kontingenční tabulky. Makro vytvářím pomocí nahrávání a následně upravuji kód. Nicméně mám potíž v tom, že vždy pracuji s jiným množstvím dat. Potřebuji, aby se kontingenční tabulka vždy vytvořila na správnou velikost tabulky. Pokud totiž použiji nahrávané makro, vždy se aplikuje na počet řádků, kolik bylo při vytváření. Například když vytvořím makro na kontingenční tabulku pro data s 80 tisíci řádky a následně chci aplikovat na data s 90 tisíci řádky, vytvoří se mi kont. tabulka jen z 80 tisíc řádků. Dokážete prosím poradit, jak nastavit, aby makro vzalo celou tabulku?

elninoslov | 4.6.2024 08:41  
 
 
Jedná sa o tabuľku alebo Tabuľku (objekt)? Máte Office 2010 a novší? Použite Tabuľku (objekt) a KT bude brať celú Tabuľku. Tú KT vytvárate iba z tohto dôvodu (zmena rozsahu), alebo je na to iný dôvod (vždy iné umiestnenie a pod)? Nestačí iba obnoviť KT (v prípade objektu Tabuľka). Množstvo otázok by ozrejmil lepší popis systému používania zošitu, a jeho anonymizovaná príloha.
Odpověď
troj31 | 4.6.2024 08:56  
 
 
Zkouším to přes tabulku objekt. Problém je, že při převedení tabulky na objekt to mám v makru opět s nějakou oblastí. Takže když budu mít jiný počet řádků, bude problém. Range("A1").Select Application.CutCopyMode = False Application.CutCopyMode = False ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$AK$57892"), , xlYes).Name _ = "Tabulka2"
Odpověď
elninoslov | 4.6.2024 13:12  
 
 
Ale neodpovedáte. Potrebujete vytvárať KT pomocou makra??? Preto sa pýtam na použitie súboru. Čo potrebujete v Exceli robiť? Máte napr. nejaké výstupy z prístrojov alebo z nejakého SW, a tieto výstupy, logy, reporty, ..., potrebujete načítať v Exceli a urobiť z toho KT? Na to stačí urobiť dotaz v PowerQuery a žiadne makro netreba. Iba zadáte v jednej bunke cestu k súboru a stlačíte tlačítko Obnoviť všetko na karte Údaje. Potrebujem vedieť, či musíte zisťovať rozsah naplnených údajov v liste, konvertovať na Tabuľku, kreovať KT ..., alebo budú údaje vkladané/importované do stále tej istej jedinej Tabuľky. Popíšte mi systém používania, o čo sa snažíte. A priložte prílohu. Riešenie sa nájde.
Odpověď
troj31 | 7.6.2024 11:37  
 
 
Mám report s daty, většinou cca 80-100 tisíc řádků a 36 sloupců (ty se nemění). V excelu provádím nějaké úpravy s daty - například přidávání sloupců, kam dotahuji data pomocí fce svyhledat. Až mám tento excel hotový, hodím data do nového, kde na druhém listu potřebuji vytvořit kont. tabulku. A zde nastává problém, že dopředu nevím, kolik bude mít report řádků. Takže nemohu v makru nastavit přesně danou velikost oblasti pro objekt tabulky nebo přímo kontingenční tabulky. Makro potřebuji na celý proces úpravy dat, vytvoření nového sešitu a v něm kont. tabulky. Momentálně mám nastaveno tak, že jsem v makru definoval objekt tabulky na 110 000 řádků. Následná kont. tabulka pak má kromě dat zahrnuty i prázdné buňky. Takže poté opravuji oblast objektu tabulky, aby odpovídalo přesnému rozměru a kont. tabulku aktualizuji. Těmto úpravám bych se chtěl vyhnout a mít celé zahrnuto v makru. Ukázkový soubor bych vytvořil o víkendu a přidám ho sem.
Odpověď
elninoslov | 7.6.2024 12:57  
 
 
Určite priložte nejaké ukážkové súbory. Zdroj presne vo forme v akej je. Čiže ak je report CSV, tak priložte CSV len ho anonymizujte o citlivé údaje. a druhý súbor priložte ako si predstavujete výsledok (manuálne vytvorený súbor). V príkladoch musia sedieť stĺpce a formáty, riadkov stačí iba pár. Odkiaľ je ten zdroj pre svyhledat? V tom hlavnom zošite s makrom? Nemôže to byť všetko v jedinom zošite? Cez PowerQuery by sa načítali zdrojové dáta, a v PowerQuery by sa rovno aj vložili stĺpce aj vykonal "svyhledat", takéto hotové dáta by sa ani nemuseli zobraziť a tento dotaz by šiel rovno do KT. Uvidím, čo chcete v tom makre robiť, zatiaľ ho ani netreba (jedine ak to bude v novom zošite, tak na kopírovanie). Cez víkend mám oslavu, tak veľa nepomôžem, ale určo pošlite podklady. Ak nechcete tu tak kľudne na mail (môj nick a gmail)
Odpověď