Redesigner de masă

Cuprins

Nu este un secret pentru nimeni că majoritatea utilizatorilor Excel, atunci când creează tabele pe foi, se gândesc în primul rând la propriul confort și comoditate. Așa iau naștere tabelele frumoase, colorate și greoaie cu „anteturi” complexe, care, în același timp, nu pot fi deloc filtrate sau sortate și este mai bine să nu te gândești deloc la un raport automat cu un tabel pivot.

Mai devreme sau mai târziu, utilizatorul unei astfel de mese ajunge la concluzia că „s-ar putea să nu fie atât de frumos, dar poate funcționa” și începe să simplifice designul mesei sale, aducându-l în conformitate cu recomandările clasice:

  • un antet simplu de o linie, în care fiecare coloană va avea propriul nume unic (nume câmp)
  • o linie – o operațiune finalizată (afacere, vânzare, postare, proiect etc.)
  • fără celule îmbinate
  • fără întreruperi sub formă de rânduri și coloane goale

Dar dacă faceți un antet cu o linie dintr-unul cu mai multe niveluri sau împărțiți o coloană în mai multe, este destul de simplu, atunci reconstrucția tabelului poate dura mult timp (mai ales la dimensiuni mari). Înseamnă următoarea situație:

Of     Redesigner de masă   do     Redesigner de masă  

În ceea ce privește bazele de date, tabelul potrivit este de obicei numit plat (plat) – în conformitate cu astfel de tabele, cel mai bine este să construiți rapoarte ale tabelelor pivot (tabele pivot) și să efectuați analize.

Puteți converti un tabel bidimensional într-un tabel plat folosind o macrocomandă simplă. Deschideți Visual Basic Editor prin fila Dezvoltator – Visual Basic (Dezvoltator — Editor Visual Basic) sau scurtătură de la tastatură Alt+F11. Introduceți un nou modul (Inserare – Modul) și copiați acolo textul acestei macrocomenzi:

Sub Redesigner() Dim i As Long Dim hc As Integer, hr As Integer Dim ns As Worksheet hr = InputBox("Сколько строк с подписями сверху?") hc = InputBox("Сколько строк с подписями сверху?") hc = InputBox("Сколько строк с подписями сверху?") hc = InputBox("Сколько строк ва?") Application.ScreenUpdating = Fals 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) Următorul j Pentru 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 Next c Next r End Sub  

Apoi puteți închide editorul VBA și puteți reveni la Excel. Acum putem selecta tabelul original (complet, cu un antet și prima coloană cu luni) și să rulăm macrocomandă prin Dezvoltator – Macro-uri (Dezvoltator – Macrocomenzi) sau combinație de apăsare Alt+F8.

Macro-ul va insera o nouă foaie în carte și va crea o nouă versiune reconstruită a tabelului selectat pe ea. Puteți lucra cu un astfel de tabel „în întregime”, folosind întregul arsenal de instrumente Excel pentru procesarea și analizarea listelor mari.

  • Ce sunt macrocomenzile, unde să inserați codul macro în VBA, cum să le folosiți
  • Crearea de rapoarte cu PivotTables
  • Instrument pentru a reproiecta mesele XNUMXD în cele plate din suplimentul PLEX

 

Lasă un comentariu