Redesigner tabulky

Obsah

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     Redesigner tabulky   do     Redesigner tabulky  

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

 

Napsat komentář