Redesign de table

Table des matières

Ce n'est un secret pour personne que la plupart des utilisateurs d'Excel, lors de la création de tableaux sur des feuilles, pensent avant tout à leur propre confort et commodité. C'est ainsi que naissent de beaux tableaux colorés et encombrants avec des «en-têtes» complexes, qui, en même temps, ne peuvent pas du tout être filtrés ou triés, et il vaut mieux ne pas du tout penser à un rapport automatique avec un tableau croisé dynamique.

Tôt ou tard, l'utilisateur d'une telle table en vient à la conclusion que "ce n'est peut-être pas si beau, mais ça peut marcher" et commence à simplifier la conception de sa table, en la mettant en conformité avec les recommandations classiques :

  • un simple en-tête d'une ligne, où chaque colonne aura son propre nom unique (nom de champ)
  • une ligne - une opération terminée (affaire, vente, affichage, projet, etc.)
  • pas de cellules fusionnées
  • sans ruptures sous forme de lignes et de colonnes vides

Mais si vous créez un en-tête d'une ligne à partir d'un en-tête à plusieurs niveaux ou si vous divisez une colonne en plusieurs, c'est assez simple, la reconstruction du tableau peut prendre beaucoup de temps (surtout pour les grandes tailles). Cela signifie la situation suivante :

Of     Redesign de table   do     Redesign de table  

En termes de bases de données, la bonne table est généralement appelée plate (plate) - c'est en fonction de telles tables qu'il est préférable de construire des rapports de tableaux croisés dynamiques (tableaux croisés dynamiques) et de mener des analyses.

Vous pouvez convertir un tableau bidimensionnel en tableau plat à l'aide d'une simple macro. Ouvrez Visual Basic Editor via l'onglet Développeur – Visual Basic (Développeur — Éditeur Visual Basic) ou raccourci clavier autre+F11. Insérez un nouveau module (Insertion – Module) et copiez-y le texte de cette macro :

Sub-redesign () dim i aussi long hc hc que entier, hr comme entier dim ns comme une feuille de travail hr = inputbox ("сольк строк с поréhen 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. 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  

Vous pouvez ensuite fermer l'éditeur VBA et revenir à Excel. Nous pouvons maintenant sélectionner la table d'origine (complètement, avec un en-tête et la première colonne avec des mois) et exécuter notre macro via Développeur – Macros (Développeur — Macros) ou combinaison d'appuis autre+F8.

La macro insère une nouvelle feuille dans le livre et crée une nouvelle version reconstruite du tableau sélectionné. Vous pouvez travailler avec un tel tableau "en entier", en utilisant tout l'arsenal d'outils Excel pour le traitement et l'analyse de grandes listes.

  • Que sont les macros, où insérer le code macro dans VBA, comment les utiliser
  • Création de rapports avec des tableaux croisés dynamiques
  • Outil pour reconcevoir XNUMXD tables en tables plates à partir du module complémentaire PLEX

 

Soyez sympa! Laissez un commentaire