Bord redesigner

Indhold

Det er ingen hemmelighed, at de fleste Excel-brugere, når de opretter tabeller på ark, først og fremmest tænker på deres egen komfort og bekvemmelighed. Sådan skabes smukke, farverige og besværlige tabeller med komplekse "overskrifter", som på samme tid slet ikke kan filtreres eller sorteres, og det er bedre slet ikke at tænke på en automatisk rapport med en pivottabel.

Før eller senere kommer brugeren af ​​et sådant bord til den konklusion, at "det er måske ikke så smukt, men det kan fungere" og begynder at forenkle designet af sit bord og bringe det i overensstemmelse med de klassiske anbefalinger:

  • en simpel overskrift på én linje, hvor hver kolonne vil have sit eget unikke navn (feltnavn)
  • én linje – én gennemført operation (aftale, salg, bogføring, projekt osv.)
  • ingen flettede celler
  • uden pauser i form af tomme rækker og kolonner

Men hvis du laver en en-linje-overskrift ud af en multi-level en eller deler en kolonne i flere, er det ret simpelt, så kan tabelrekonstruktionen tage meget tid (især ved store størrelser). Det betyder følgende situation:

Of     Bord redesigner   do     Bord redesigner  

Med hensyn til databaser kaldes den rigtige tabel normalt flad (flad) - det er ifølge sådanne tabeller, at det er bedst at bygge rapporter af pivottabeller (pivottabeller) og udføre analyser.

Du kan konvertere en todimensionel tabel til en flad tabel ved hjælp af en simpel makro. Åbn Visual Basic Editor via fanen Udvikler – Visual Basic (Udvikler – Visual Basic Editor) eller tastaturgenvej andre+F11. Indsæt et nyt modul (Indsæt – Modul) og kopier teksten til denne makro der:

Sub Redesigner() Dim i As Long Dim hc As Integer, hr As Integer Dim ns As Worksheet hr = InputBox("Сколько строк с подписями сверху?") hc = InputBox("Сколько столбцов столбцов с полбцов с полбцов с полбцов с полбцов с полбцов с полбцов с полбцов с полбцов с полбцов с полбцов с полбцов с подписями сверху?" Falsk i = 1 Indstil inpdata = Udvælgelsessæt ns = Arbejdsark.Tilføj For r = (hr + 1) Til inpdata.Rows.Count For c = (hc + 1) Til inpdata.Columns.Count For j = 1 Til hc ns. Celler(i, j) = inpdata.Cells(r, j) Næste j For k = 1 Til hr ns.Cells(i, j + k - 1) = inpdata.Cells(k, c) Næste k ns.Cells( i, j + k - 1) = inpdata.Cells(r, c) i = i + 1 Næste c Næste r End Sub  

Du kan derefter lukke VBA-editoren og vende tilbage til Excel. Nu kan vi vælge den originale tabel (helt, med en overskrift og den første kolonne med måneder) og køre vores makro igennem Udvikler – Makroer (Udvikler – Makroer) eller trykkombination andre+F8.

Makroen vil indsætte et nyt ark i bogen og oprette en ny, rekonstrueret version af den valgte tabel på den. Du kan arbejde med en sådan tabel "fuldstændig" ved at bruge hele arsenalet af Excel-værktøjer til at behandle og analysere store lister.

  • Hvad er makroer, hvor skal man indsætte makrokode i VBA, hvordan man bruger dem
  • Oprettelse af rapporter med pivottabeller
  • Værktøj til at omdesigne XNUMXD tabeller til flade fra PLEX-tilføjelsen

 

Giv en kommentar