Preoblikovalnik mize

vsebina

Ni skrivnost, da večina uporabnikov Excela pri ustvarjanju tabel na listih najprej razmišlja o lastnem udobju in udobju. Tako se rodijo lepe, pisane in okorne tabele s kompleksnimi "glavami", ki jih hkrati sploh ni mogoče filtrirati ali sortirati in je bolje, da o avtomatskem poročilu z vrtilno tabelo sploh ne razmišljate.

Prej ali slej uporabnik takšne mize pride do zaključka, da "morda ni tako lepa, vendar lahko deluje" in začne poenostavljati zasnovo svoje mize in jo uskladiti s klasičnimi priporočili:

  • preprosta enovrstična glava, kjer ima vsak stolpec svoje edinstveno ime (ime polja)
  • ena vrstica – ena zaključena operacija (posel, prodaja, knjiženje, projekt itd.)
  • brez združenih celic
  • brez prelomov v obliki praznih vrstic in stolpcev

Toda če naredite enovrstično glavo iz večnivojske ali razdelite en stolpec na več, je to precej preprosto, potem lahko rekonstrukcija tabele traja veliko časa (zlasti pri velikih velikostih). Pomeni naslednjo situacijo:

Of     Preoblikovalnik mize   do     Preoblikovalnik mize  

Kar zadeva baze podatkov, se prava tabela običajno imenuje ravna (ravna) - po takšnih tabelah je najbolje sestaviti poročila o vrtilnih tabelah (vrtilne tabele) in izvajati analitiko.

Dvodimenzionalno tabelo lahko pretvorite v ravno mizo s preprostim makrom. Odprite urejevalnik Visual Basic prek zavihka Razvijalec – Visual Basic (Razvijalec — urejevalnik Visual Basic) ali bližnjico na tipkovnici druga+F11. Vstavite nov modul (Vstavi – Modul) in tja kopirajte besedilo tega makra:

Sub Redesigner() Dim i As Long Dim hc As Integer, hr As Integer Dim ns As Worksheet hr = InputBox("Koliko vrstic s podpisi na vrhu?") hc = InputBox("Koliko stolbcev s podpisi leva?") Application.ScreenUpdating = 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. Celice(i, j) = inpdata.Cells(r, j) Next j For k = 1 To hr ns.Cells(i, j + k - 1) = inpdata.Cells(k, c) Next k ns.Cells( i, j + k - 1) = inpdata.Cells(r, c) i = i + 1 Naslednji c Naslednji r Konec Sub  

Nato lahko zaprete urejevalnik VBA in se vrnete v Excel. Zdaj lahko izberemo izvirno tabelo (v celoti, z glavo in prvim stolpcem z meseci) in poženemo naš makro skozi Razvijalec – Makri (Razvijalec — Makri) ali kombinacijo stiskanja druga+F8.

Makro bo v knjigo vstavil nov list in na njem ustvaril novo, rekonstruirano različico izbrane tabele. S takšno tabelo lahko delate "v celoti" z uporabo celotnega arzenala Excelovih orodij za obdelavo in analizo velikih seznamov.

  • Kaj so makri, kam v VBA vstaviti kodo makra, kako jih uporabljati
  • Ustvarjanje poročil z vrtilnimi tabelami
  • Orodje za preoblikovanje XNUMXD tabel v ravne iz dodatka PLEX

 

Pustite Odgovori