Ridisegnatore di tavoli

Contenuti

Non è un segreto che la maggior parte degli utenti di Excel, quando creano tabelle su fogli, pensi prima di tutto al proprio comfort e praticità. Nascono così tabelle belle, colorate e ingombranti con “header” complessi, che, allo stesso tempo, non possono essere affatto filtrate o ordinate, ed è meglio non pensare affatto a un report automatico con una tabella pivot.

Prima o poi, l'utente di un tavolo del genere giunge alla conclusione che "potrebbe non essere così bello, ma può funzionare" e inizia a semplificare il design del suo tavolo, allineandolo ai classici consigli:

  • una semplice intestazione di una riga, in cui ogni colonna avrà il proprio nome univoco (nome campo)
  • una riga: un'operazione completata (accordo, vendita, pubblicazione, progetto, ecc.)
  • nessuna cella unita
  • senza interruzioni sotto forma di righe e colonne vuote

Ma se si crea un'intestazione di una riga da una a più livelli o si divide una colonna in più colonne, è abbastanza semplice, quindi la ricostruzione della tabella può richiedere molto tempo (soprattutto di grandi dimensioni). Significa la seguente situazione:

Of     Ridisegnatore di tavoli   do     Ridisegnatore di tavoli  

In termini di database, la tabella giusta viene solitamente chiamata flat (flat) - è in base a tali tabelle che è meglio creare report di tabelle pivot (tabelle pivot) ed eseguire analisi.

Puoi convertire una tabella bidimensionale in una tabella piatta usando una semplice macro. Aprire l'editor di Visual Basic tramite la scheda Sviluppatore – Visual Basic (Sviluppatore — Editor di Visual Basic) o scorciatoia da tastiera altro+F11. Inserisci un nuovo modulo (Inserisci – Modulo) e copia lì il testo di questa macro:

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 Imposta inpdata = Selezione Imposta 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.Cells(r, c) i = i + 1 Next c Next r End Sub  

È quindi possibile chiudere l'editor VBA e tornare a Excel. Ora possiamo selezionare la tabella originale (completamente, con un'intestazione e la prima colonna con i mesi) ed eseguire la nostra macro Sviluppatore – Macro (Sviluppatore — Macro) o combinazione di pressione altro+F8.

La macro inserirà un nuovo foglio nel libro e creerà su di esso una nuova versione ricostruita della tabella selezionata. Puoi lavorare con una tabella del genere "per intero", utilizzando l'intero arsenale di strumenti di Excel per l'elaborazione e l'analisi di elenchi di grandi dimensioni.

  • Cosa sono le macro, dove inserire il codice macro in VBA, come usarle
  • Creazione di report con tabelle pivot
  • Strumento per riprogettare le tabelle XNUMXD in quelle piatte dal componente aggiuntivo PLEX

 

Lascia un Commento