Passer au contenu principal

Comment convertir un tableau de style matriciel en trois colonnes dans Excel?

Supposons que vous ayez un tableau de style matriciel qui contient des en-têtes de colonne et des en-têtes de ligne, et que vous souhaitez maintenant convertir ce tableau de style en tableau à trois colonnes, il a également appelé tableau de liste comme illustré ci-dessous, avez-vous de bons moyens de résoudre ce problème problème dans Excel?

Convertir un tableau de style de matrice en liste avec tableau croisé dynamique

Convertir la table de style de matrice en liste avec le code VBA

Convertir la table de style matriciel en liste avec Kutools for Excel

doc convertir la matrice en liste 1


Dans Excel, il n'y a pas de fonctionnalité directe pour nous de convertir la table de style de matrice en table à trois colonnes, mais, si vous êtes familier avec le tableau croisé dynamique, cela peut vous rendre service. Veuillez suivre les étapes suivantes:

1. Activez votre feuille de calcul que vous souhaitez utiliser, puis maintenez Alt + D, puis appuyez sur P dans le clavier, dans le sauté Assistant de tableau croisé dynamique et graphique croisé dynamique dialogue, sélectionnez Plusieurs plages de consolidation sous le Où sont les données que vous souhaitez analyser section, puis choisissez Tableau croisé dynamique sous le Quel type de rapport souhaitez-vous créer section, voir capture d'écran:

doc convertir la matrice en liste 2

2. Puis clique Suivant bouton, dans le Étape 2a de 3 assistant, sélectionnez le Je vais créer les champs de la page option, voir capture d'écran:

doc convertir la matrice en liste 3

3. Continuez à cliquer Suivant bouton, dans le Étape 2b de 3 Assistant, cliquez sur doc convertir la matrice en liste 5 pour sélectionner la plage de données à convertir, puis cliquez sur Ajouter pour ajouter la plage de données au Toutes les gammes zone de liste, voir capture d'écran:

doc convertir la matrice en liste 4

4. Et cliquez sur Suivant bouton, dans Etape 3 de 3 Assistant, sélectionnez un emplacement pour le tableau croisé dynamique comme vous le souhaitez.

doc convertir la matrice en liste 6

5. Puis clique Finition bouton, un tableau croisé dynamique a été créé à la fois, voir capture d'écran:

doc convertir la matrice en liste 7

6. Dans le tableau croisé dynamique, double-cliquez sur la cellule d'intersection du grand total, dans ce cas, je vais double-cliquer sur la cellule F22, et cela générera un tableau à trois colonnes comme illustré ci-dessous:

doc convertir la matrice en liste 8

7. Et enfin, vous pouvez convertir le format du tableau dans la plage normale en sélectionnant le tableau, puis en choisissant lampe de table > Convertir en plage depuis le menu contextuel, voir capture d'écran:

doc convertir la matrice en liste 9


Si vous n'aimez pas la première méthode, le code VBA suivant peut également vous aider.

1. presse Alt + F11 pour afficher le Microsoft Visual Basic pour applications fenêtre.

2. Dans la fenêtre, cliquez sur insérer > Module pour afficher une nouvelle fenêtre de module, puis copiez et collez le code VBA suivant dans la fenêtre de module.

Code VBA: Convertir la table de style de matrice en liste

Sub ConvertTable()
'Update 20150512
Dim Rng As Range
Dim cRng As Range
Dim rRng As Range
Dim xOutRng As Range
xTitleId = "KutoolsforExcel"
Set cRng = Application.InputBox("Select your Column labels", xTitleId, Type:=8)
Set rRng = Application.InputBox("Select Your Row Labels", xTitleId, Type:=8)
Set Rng = Application.InputBox("Select your data", xTitleId, Type:=8)
Set outRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set xWs = Rng.Worksheet
k = 1
xColumns = rRng.Column
xRow = cRng.Row
For i = Rng.Rows(1).Row To Rng.Rows(1).Row + Rng.Rows.Count - 1
    For j = Rng.Columns(1).Column To Rng.Columns(1).Column + Rng.Columns.Count - 1
        outRng.Cells(k, 1) = xWs.Cells(i, xColumns)
        outRng.Cells(k, 2) = xWs.Cells(xRow, j)
        outRng.Cells(k, 3) = xWs.Cells(i, j)
        k = k + 1
    Next j
Next i
End Sub

3. Puis appuyez F5 clé pour exécuter ce code, et une boîte de dialogue apparaît pour vous permettre de sélectionner les étiquettes de colonne des données, voir capture d'écran:

doc convertir la matrice en liste 10

4. Et puis cliquez OK bouton, dans la boîte d'invite suivante, sélectionnez les étiquettes de ligne, voir capture d'écran:

doc convertir la matrice en liste 11

5. Continuez à cliquer OK, puis sélectionnez la plage de données à l'exclusion des en-têtes de colonne et de ligne dans la boîte d'invite, voir capture d'écran:

doc convertir la matrice en liste 12

6. Et puis cliquez OK, dans cette boîte de dialogue, sélectionnez une cellule dans laquelle vous souhaitez localiser le résultat. Voir la capture d'écran:

doc convertir la matrice en liste 13

7. Enfin, cliquez OK, et vous obtiendrez un tableau à trois colonnes à la fois.


Les deux méthodes ci-dessus sont quelque peu gênantes, ici, je vais vous présenter un moyen simple - Kutools for Excel, Avec son Transposer les dimensions de la table fonctionnalité, vous pouvez rapidement convertir entre une matrice de cellules et un tableau de liste.

Kutools for Excel : avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation en 30 jours

Après l'installation de Kutools for Excel, veuillez suivre les étapes suivantes:

1Cliquez sur Kutools > Catégorie > Transposer les dimensions de la table, voir capture d'écran:

2. Dans le Transposer les dimensions de la table boite de dialogue:

(1.) Choisissez Croiser le tableau vers la liste option sous Type de transposition.

(2.) Et puis cliquez sur doc convertir la matrice en liste 5 bouton sous Plage de sources pour sélectionner la plage de données que vous souhaitez convertir.

(3.) Cliquez ensuite sur doc convertir la matrice en liste 5 bouton sous Gamme de résultats pour sélectionner une cellule dans laquelle vous souhaitez placer le résultat.

doc convertir la matrice en liste 15

3. Et puis cliquez OK bouton, et vous obtiendrez le résultat suivant qui comprend le formatage de cellule d'origine:

doc convertir la matrice en liste 16

Avec cet utilitaire, vous convertir une table de liste plate en table croisée bidimensionnelle.

Pour en savoir plus sur cette fonctionnalité Transposer les dimensions de la table.

Téléchargez et essayez gratuitement Kutools for Excel Now!


Kutools for Excel: avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation dans 30 jours. Téléchargez et essayez gratuitement maintenant!

Meilleurs outils de productivité bureautique

🤖 Aide à l'IA Kutools: Révolutionner l'analyse des données en s'appuyant sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les fonctions Kutools...
Caractéristiques populaires: Rechercher, mettre en évidence ou identifier les doublons   |  Supprimer les lignes vides   |  Combinez des colonnes ou des cellules sans perdre de données   |   Tour sans formule 
Super recherche: VSearchup à critères multiples    VSearch à valeurs multiples  |   Recherche virtuelle sur plusieurs feuilles   |   Recherche floue ....
Liste déroulante avancée: Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple ....
Gestionnaire de colonnes: Ajouter un nombre spécifique de colonnes  |  Déplacer les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages et les colonnes 
Caractéristiques en vedette: Mise au point de la grille   |  Voir Design   |   Grande barre de formule    Gestionnaire de classeurs et de feuilles   |  Centre de ressources (Texte automatique)   |  Sélecteur de date   |  Combiner des feuilles de travail   |  Crypter/déchiffrer les cellules    Envoyer des e-mails par liste   |  Super filtre   |   Filtre spécial (filtre gras/italique/barré...) ...
Les 15 meilleurs ensembles d'outils12 Texte Outils (Ajouter du texte, Supprimer les caractères, ...)   |   50+ Graphique Types (Diagramme de Gantt, ...)   |   40+ Pratique Formules (Calculer l'âge en fonction de l'anniversaire, ...)   |   19 Insertion Outils (Insérer le code QR, Insérer une image à partir du chemin, ...)   |   12 Conversion Outils (Nombres en mots, Conversion des devises, ...)   |   7 Fusionner et fractionner Outils (Lignes de combinaison avancées, Cellules divisés, ...)   |   ... et plus

Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...

Description


Office Tab apporte une interface à onglets à Office et facilite grandement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
Comments (10)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thanks for the tips. It's greatly saved my time and manual efforts.
This comment was minimized by the moderator on the site
Anybody know how to do this in a mac?
This comment was minimized by the moderator on the site
Sub ConvertTable_UseThis()

Dim Rng As Range
Dim cRng As Range
Dim rRng As Range
Dim xOutRng As Range
Dim xRng As Range, cRow As Integer, cCol As Integer


xTitleId = "Convert Table"
Set xRng = Application.Selection
Set xRng = Application.InputBox("Please select range:", "Number Range", Selection.Address, , , , , 8)
cRow = xRng.Rows.Count
cCol = xRng.Columns.Count


Set cRng = Range(xRng.Cells(1, 2), xRng.Cells(1, cCol))
Set rRng = Range(xRng.Cells(2, 1), xRng.Cells(cRow, 1))
Set Rng = Range(xRng.Cells(2, 2), xRng.Cells(cRow, cCol))
Set outRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set xWs = Rng.Worksheet
k = 1
xColumns = rRng.Column
xRow = cRng.Row
For i = Rng.Rows(1).Row To Rng.Rows(1).Row + Rng.Rows.Count - 1
For j = Rng.Columns(1).Column To Rng.Columns(1).Column + Rng.Columns.Count - 1
outRng.Cells(k, 1) = xWs.Cells(i, xColumns)
outRng.Cells(k, 2) = xWs.Cells(xRow, j)
outRng.Cells(k, 3) = xWs.Cells(i, j)
k = k + 1
Next j
Next i
End Sub
This comment was minimized by the moderator on the site
For the VBA Code, one seems to really need this:xColumns = cRng.Column
xRow = rRng.Row
This comment was minimized by the moderator on the site
do you have a code with a tweak where the leftmost column of a selection is column labels and the topmost row of a selection is row labels?

Thanks in advance,
This comment was minimized by the moderator on the site
Sub ConvertTable_UseThis()

Dim Rng As Range
Dim cRng As Range
Dim rRng As Range
Dim xOutRng As Range
Dim xRng As Range, cRow As Integer, cCol As Integer


xTitleId = "Convert Table"
Set xRng = Application.Selection
Set xRng = Application.InputBox("Please select range:", "Number Range", Selection.Address, , , , , 8)
cRow = xRng.Rows.Count
cCol = xRng.Columns.Count


Set cRng = Range(xRng.Cells(1, 2), xRng.Cells(1, cCol))
Set rRng = Range(xRng.Cells(2, 1), xRng.Cells(cRow, 1))
Set Rng = Range(xRng.Cells(2, 2), xRng.Cells(cRow, cCol))
Set outRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set xWs = Rng.Worksheet
k = 1
xColumns = rRng.Column
xRow = cRng.Row
For i = Rng.Rows(1).Row To Rng.Rows(1).Row + Rng.Rows.Count - 1
For j = Rng.Columns(1).Column To Rng.Columns(1).Column + Rng.Columns.Count - 1
outRng.Cells(k, 1) = xWs.Cells(i, xColumns)
outRng.Cells(k, 2) = xWs.Cells(xRow, j)
outRng.Cells(k, 3) = xWs.Cells(i, j)
k = k + 1
Next j
Next i
End Sub
This comment was minimized by the moderator on the site
Thanks a Ton, really appreciate the way you have explained. very useful
This comment was minimized by the moderator on the site
Thanks alot for this useful tool
This comment was minimized by the moderator on the site
Thanks, this was exactly what I was looking for. Awesome:)
This comment was minimized by the moderator on the site
what if i have 4 or more column?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations