Tabel Herontwerper

Inhoud

Het is geen geheim dat de meeste Excel-gebruikers bij het maken van tabellen op werkbladen in de eerste plaats denken aan hun eigen comfort en gemak. Zo ontstaan ​​mooie, kleurrijke en omslachtige tabellen met complexe 'headers', die tegelijkertijd helemaal niet kunnen worden gefilterd of gesorteerd, en het is beter om helemaal niet aan een automatisch rapport met een draaitabel te denken.

Vroeg of laat komt de gebruiker van zo'n tafel tot de conclusie dat "het misschien niet zo mooi is, maar het kan werken" en begint hij het ontwerp van zijn tafel te vereenvoudigen en in overeenstemming te brengen met de klassieke aanbevelingen:

  • een eenvoudige kop van één regel, waarbij elke kolom zijn eigen unieke naam heeft (veldnaam)
  • één regel – één voltooide bewerking (deal, verkoop, boeking, project, enz.)
  • geen samengevoegde cellen
  • zonder pauzes in de vorm van lege rijen en kolommen

Maar als u een kop met één regel maakt van een kolom met meerdere niveaus of een kolom opsplitst in meerdere, is het vrij eenvoudig, dan kan de tabelreconstructie veel tijd kosten (vooral bij grote formaten). Het betekent de volgende situatie:

Of     Tabel Herontwerper   do     Tabel Herontwerper  

In termen van databases wordt de juiste tabel meestal plat (plat) genoemd - het is volgens dergelijke tabellen dat het het beste is om rapporten van draaitabellen (draaitabellen) te bouwen en analyses uit te voeren.

U kunt een tweedimensionale tabel converteren naar een platte tabel met behulp van een eenvoudige macro. Open de Visual Basic Editor via het tabblad Ontwikkelaar – Visual Basic (Ontwikkelaar — Visual Basic Editor) of sneltoets anders+F11. Voeg een nieuwe module in (Invoegen – Module) en kopieer de tekst van deze macro daar:

Sub Redesigner() Dim i As Long Dim hc As Integer, hr As Integer Dim ns As Werkblad hr = InputBox("Сколько строк с подписями сверху?") hc = InputBox("Сколько столбцов с подпесями?") False i = 1 Set inpdata = Selectie 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) 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.Cellen(r, c) i = i + 1 Volgende c Volgende r Einde Sub  

U kunt vervolgens de VBA-editor sluiten en terugkeren naar Excel. Nu kunnen we de originele tabel selecteren (volledig, met een kop en de eerste kolom met maanden) en onze macro doorlopen Ontwikkelaar – Macro's (Ontwikkelaar — Macro's) of op combinatie anders+F8.

De macro zal een nieuw blad in het boek invoegen en er een nieuwe, gereconstrueerde versie van de geselecteerde tabel op maken. Met zo'n tabel kun je 'voluit' werken, gebruikmakend van het hele arsenaal aan Excel-tools voor het verwerken en analyseren van grote lijsten.

  • Wat zijn macro's, waar macrocode in VBA in te voegen, hoe ze te gebruiken?
  • Rapporten maken met draaitabellen
  • Tool om XNUMXD-tabellen te herontwerpen naar platte tabellen van de PLEX-add-on

 

Laat een reactie achter