Není žádným tajemstvím, že většina uživatelů Excelu při vytváření tabulek na listech myslí především na vlastní pohodlí a komfort. Tak se rodí krásné, barevné a těžkopádné tabulky se složitými „hlavičkami“, které přitom nelze vůbec filtrovat ani třídit a o automatickém reportu s kontingenční tabulkou je lepší vůbec neuvažovat.
Dříve nebo později uživatel takového stolu dospěje k závěru, že „možná to není tak krásné, ale může to fungovat“ a začne zjednodušovat design svého stolu a uvádí jej do souladu s klasickými doporučeními:
- jednoduché jednořádkové záhlaví, kde každý sloupec bude mít svůj jedinečný název (název pole)
- jeden řádek – jedna dokončená operace (obchod, prodej, účtování, projekt atd.)
- žádné sloučené buňky
- bez přestávek v podobě prázdných řádků a sloupců
Pokud ale vytvoříte jednořádkovou hlavičku z víceúrovňové nebo rozdělíte jeden sloupec na několik, je to docela jednoduché, pak může rekonstrukce tabulky zabrat hodně času (zvláště u velkých velikostí). Znamená to následující situaci:
Of | do |
Z hlediska databází se správná tabulka obvykle nazývá flat (plochá) – podle takových tabulek je nejlepší sestavovat sestavy kontingenčních tabulek (kontingenčních tabulek) a provádět analýzy.
Dvourozměrnou tabulku můžete převést na plochou tabulku pomocí jednoduchého makra. Otevřete Editor jazyka Visual Basic přes kartu Vývojář – Visual Basic (Vývojář — Visual Basic Editor) nebo klávesovou zkratkou Další+F11. Vložte nový modul (Vložit – Modul) a zkopírujte tam text tohoto makra:
Sub Redesigner() Dim i As Long Dim hc As Integer, hr As Integer Dim ns As Worksheet hr = InputBox("Сколько строк с подписями сверху?") hc = InputBox("овслсвяху?") hc = InputBox? False i = 1 Set inpdata = Selection Set ns = Worksheets.Add For r = (hr + 1) To inpdata.Rows.Count For c = (hc + 1) To inpdata.Columns.Count For j = 1 To hc ns. Cells(i, j) = inpdata.Cells(r, j) Další j Pro k = 1 Do hr ns.Cells(i, j + k - 1) = inpdata.Cells(k, c) Další k ns.Cells( i, j + k - 1) = inpdata.Cells(r, c) i = i + 1 Další c Další r End Sub
Poté můžete zavřít editor VBA a vrátit se do Excelu. Nyní můžeme vybrat původní tabulku (zcela se záhlavím a prvním sloupcem s měsíci) a projít naše makro Vývojář – Makra (Vývojář — Makra) nebo kombinace lisování Další+F8.
Makro vloží do knihy nový list a vytvoří na něm novou, rekonstruovanou verzi vybrané tabulky. S takovou tabulkou můžete pracovat „v plném rozsahu“ pomocí celého arzenálu nástrojů Excel pro zpracování a analýzu velkých seznamů.
- Co jsou makra, kam vložit kód makra ve VBA, jak je používat
- Vytváření sestav pomocí kontingenčních tabulek
- Nástroj pro přepracování tabulek XNUMXD na ploché z doplňku PLEX