Note: The other languages of the website are Google-translated. Back to English
English English

 Comment transposer des cellules dans une colonne en fonction de valeurs uniques dans une autre colonne?

En supposant que vous ayez une plage de données contenant deux colonnes, vous souhaitez maintenant transposer les cellules d'une colonne en lignes horizontales en fonction de valeurs uniques dans une autre colonne pour obtenir le résultat suivant. Avez-vous de bonnes idées pour résoudre ce problème dans Excel?

doc transposer les valeurs uniques 1

Transposer les cellules dans une colonne en fonction de valeurs uniques avec des formules

Transposer les cellules dans une colonne en fonction de valeurs uniques avec le code VBA

Transposer les cellules dans une colonne en fonction de valeurs uniques avec Kutools for Excel


Avec les formules matricielles suivantes, vous pouvez extraire les valeurs uniques et transposer leurs données correspondantes en lignes horizontales, procédez comme suit:

1. Entrez cette formule matricielle: = INDEX ($ A $ 2: $ A $ 16, MATCH (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) dans une cellule vide, D2, par exemple, et appuyez sur Maj + Ctrl + Entrée clés ensemble pour obtenir le résultat correct, voir capture d'écran:

doc transposer les valeurs uniques 2

Notes: Dans la formule ci-dessus, A2: A16 est la colonne dont vous souhaitez répertorier les valeurs uniques, et D1 est la cellule au-dessus de cette cellule de formule.

2. Faites ensuite glisser la poignée de remplissage vers les cellules pour extraire toutes les valeurs uniques, voir capture d'écran:

doc transposer les valeurs uniques 3

3. Et puis continuez à entrer cette formule dans la cellule E2: =IFERROR(INDEX($B$2:$B$16, MATCH(0, COUNTIF($D2:D2,$B$2:$B$16)+IF($A$2:$A$16<>$D2, 1, 0), 0)), 0), et n'oubliez pas d'appuyer sur Maj + Ctrl + Entrée clés pour obtenir le résultat, voir capture d'écran:

doc transposer les valeurs uniques 4

Notes: Dans la formule ci-dessus: B2: B16 correspond aux données de la colonne que vous souhaitez transposer, A2: A16 est la colonne sur laquelle vous souhaitez transposer les valeurs en fonction, et D2 contient la valeur unique que vous avez extraite à l'étape 1.

4. Faites ensuite glisser la poignée de remplissage à droite des cellules dans lesquelles vous souhaitez lister les données transposées jusqu'à ce que affiche 0, voir capture d'écran:

doc transposer les valeurs uniques 5

5. Et puis continuez à faire glisser la poignée de remplissage vers la plage de cellules pour obtenir les données transposées comme illustré ci-dessous:

doc transposer les valeurs uniques 6


Peut-être que les formules sont complexes à comprendre, ici, vous pouvez exécuter le code VBA suivant pour obtenir le résultat souhaité dont vous avez besoin.

1. Maintenez le ALT + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Module Fenêtre.

Code VBA: transposez les cellules dans une colonne en fonction de valeurs uniques dans une autre colonne:

Sub transposeunique()
'updateby Extendoffice
    Dim xLRow As Long
    Dim i As Long
    Dim xCrit As String
    Dim xCol  As New Collection
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String
    Dim xCount As Long
    Dim xVRg As Range
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("please select data range(only two columns):", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count <> 2) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "the used range is only one area with two columns ", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutRg = Application.InputBox("please select output range(specify one cell):", "Kutools for Excel", xTxt, , , , , 8)
    If xOutRg Is Nothing Then Exit Sub
    Set xOutRg = xOutRg.Range(1)
    xLRow = xRg.Rows.Count
    For i = 2 To xLRow
        xCol.Add xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value
    Next
    Application.ScreenUpdating = False
    For i = 1 To xCol.Count
        xCrit = xCol.Item(i)
        xOutRg.Offset(i, 0) = xCrit
        xRg.AutoFilter Field:=1, Criteria1:=xCrit
        Set xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)
        If xVRg.Count > xCount Then xCount = xVRg.Count
        xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible).Copy
        xOutRg.Offset(i, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        Application.CutCopyMode = False
    Next
    xOutRg = xRg.Cells(1, 1)
    xOutRg.Offset(0, 1).Resize(1, xCount) = xRg.Cells(1, 2)
    xRg.Rows(1).Copy
    xOutRg.Resize(1, xCount + 1).PasteSpecial Paste:=xlPasteFormats
    xRg.AutoFilter
    Application.ScreenUpdating = True
End Sub

3. Puis appuyez F5 clé pour exécuter ce code, et une boîte de dialogue apparaîtra pour vous rappeler de sélectionner la plage de données que vous souhaitez utiliser, voir capture d'écran:

doc transposer les valeurs uniques 7

4. Et puis cliquez OK bouton, une autre boîte de dialogue apparaîtra pour vous rappeler de sélectionner une cellule pour mettre le résultat, voir capture d'écran:

doc transposer les valeurs uniques 8

6Cliquez sur OK bouton, et les données de la colonne B ont été transposées en fonction des valeurs uniques de la colonne A, voir capture d'écran:

doc transposer les valeurs uniques 9


Si vous avez Kutools pour Excel, combinant le Lignes de combinaison avancées et des tours Cellules divisés utilitaires, vous pouvez terminer rapidement cette tâche sans aucune formule ni code.

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

Après l'installation de Kutools pour Excel, procédez comme suit:

1. Sélectionnez la plage de données que vous souhaitez utiliser. (Si vous souhaitez conserver les données d'origine, veuillez d'abord copier et coller les données dans un autre emplacement.)

2. Puis clique Kutools > Fusionner et fractionner > Lignes de combinaison avancées, voir capture d'écran:

3. Dans le Combiner des lignes en fonction de la colonne boîte de dialogue, veuillez effectuer les opérations suivantes:

(1.) Cliquez sur le nom de la colonne sur laquelle vous souhaitez transposer les données, puis sélectionnez Clé primaire;

(2.) Cliquez sur une autre colonne que vous souhaitez transposer, puis cliquez sur Combiner puis choisissez un séparateur pour séparer les données combinées, telles que l'espace, la virgule, le point-virgule.

doc transposer les valeurs uniques 11

4. Puis clique Ok bouton, les données de la colonne B ont été combinées dans une cellule basée sur la colonne A, voir capture d'écran:

doc transposer les valeurs uniques 12

5. Et puis sélectionnez les cellules combinées et cliquez sur Kutools > Fusionner et fractionner > Cellules divisés, voir capture d'écran:

6. Dans le Cellules divisés boîte de dialogue, sélectionnez Fractionner en colonnes sous le Catégorie option, puis choisissez le séparateur qui sépare vos données combinées, voir capture d'écran:

doc transposer des valeurs uniques 14 14

7. Puis clique Ok et sélectionnez une cellule pour mettre le résultat de la division dans la boîte de dialogue qui apparaît, voir capture d'écran:

doc transposer les valeurs uniques 15

8Cliquez sur OK, et vous obtiendrez le résultat dont vous avez besoin. Voir la capture d'écran:

doc transposer les valeurs uniques 16

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


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

Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement 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!
bas de cabine
Commentaires (56)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Comment irais-je dans la direction opposée ? De plusieurs colonnes en une seule colonne ? Merci d'avance! Tim
Ce commentaire a été minimisé par le modérateur sur le site
C'était fantastique. J'avais un excel avec environ 2000 valeurs uniques dans la ligne A et je n'aurais pas pu gérer cet exercice sans votre aide. Merci beaucoup.
Ce commentaire a été minimisé par le modérateur sur le site
La première étape elle-même échoue =INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) donne l'erreur Valeur non disponible
Ce commentaire a été minimisé par le modérateur sur le site
Je veux juste faire le contraire. Comme j'ai déjà le résultat final, et je veux réaliser la première étape.
Ce commentaire a été minimisé par le modérateur sur le site
Je cherche la même chose
Ce commentaire a été minimisé par le modérateur sur le site
Avez-vous trouvé une solution pour le scénario inverse? Merci!
Ce commentaire a été minimisé par le modérateur sur le site
Moi aussi je veux faire l'inverse. Avez-vous une solution messieurs?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour gars,
Pour obtenir le résultat opposé basé sur l'exemple de cet article, vous pouvez appliquer le code VBA suivant : (Remarque : lorsque vous sélectionnez la plage de données que vous souhaitez transposer, veuillez exclure la ligne d'en-tête)

Sous TransposeUnique_2()
Dim xLRow, xLCount As Long
Dim xRg As Range
Dim xOutRg As Range
Dim xObjRRg As Range
Dim xTxt As String
Dim xCount As Long
Dim xVRg As Range
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("veuillez sélectionner la plage de données :", "Kutools for Excel", xTxt, , , , , 8)
Définir xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Si xRg n'est rien, quittez Sub
Si (xRg.Rows.count < 2) Ou _
(xRg.Areas.count > 1) Alors
MsgBox "Sélection non valide", , "Kutools pour Excel"
Exit Sub
Si fin
Set xOutRg = Application.InputBox("veuillez sélectionner la plage de sortie (spécifiez une cellule):", "Kutools for Excel", xTxt, , , , , 8)
Si xOutRg n'est rien, quittez Sub
Application.ScreenUpdating = Faux
xLCount = xRg.Columns.count
Pour xLRow = 1 To xRg.Rows.count
Définir xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial Coller :=xlPasteAll, Operation :=xlNone, SkipBlanks :=False, Transpose :=True
Application.CutCopyMode = Faux
Range(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Valeur = xRg.Cells(xLRow, 1).Valeur
Définir xOutRg = xOutRg.Offset(RowOffset :=xObjRRg.count)
Suivant
Application.ScreenUpdating = True
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Comment faire la transposition si la colonne B n'a pas de valeurs uniques mais a toujours besoin de ces valeurs
100 KTE
100 KTE
En supposant qu'il s'agit de deux transactions différentes
Ce commentaire a été minimisé par le modérateur sur le site
Salut, Didin,

Pouvez-vous exposer votre problème plus clairement ou plus en détail ?
Vous pouvez insérer un exemple de capture d'écran pour votre problème.
Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Salut,
Pourriez-vous s'il vous plaît m'aider avec l'exigence ci-dessous.
Produit ----- commande
KTE ------ 100KTE ------ 200KTO ------ 300KTO ------ 300
production attendue
Produit ----- commande ----- commande ------ commande
KTE ------ 100 ------ 200
KTO ------ 300 ------ 300







Ce commentaire a été minimisé par le modérateur sur le site
Moi aussi j'ai besoin du même. Je veux afficher 100 deux fois si c'est dans les données
Ce commentaire a été minimisé par le modérateur sur le site
Pouvez-vous suggérer une formule pour cela
Ce commentaire a été minimisé par le modérateur sur le site
Avez-vous déjà obtenu une réponse/résolution à ce défi ? J'ai le même.
Ce commentaire a été minimisé par le modérateur sur le site
Y a-t-il un moyen de faire cela à l'envers ? C'est-à-dire des données en lignes de longueur variable et donc en les triant en deux colonnes ? Voir ci-joint.
Ce commentaire a été minimisé par le modérateur sur le site
Je veux aussi transposer les valeurs en double (toutes les valeurs - uniques + en double) et pas seulement les valeurs uniques. Pouvez-vous donner la formule pour cela aussi.
Ce commentaire a été minimisé par le modérateur sur le site
j'ai besoin du même
Ce commentaire a été minimisé par le modérateur sur le site
Avez-vous déjà obtenu une réponse/résolution à ce défi ? J'ai le même.
Ce commentaire a été minimisé par le modérateur sur le site
Avec la formule ci-dessous :

=IFERROR(INDEX($B$2:$B$45, MATCH(0, COUNTIF($D2:D2,$B$2:$B$45)+IF($A$2:$A$10<>$D2, 1, 0), 0)), 0)

Comment puis-je transposer les données en utilisant des correspondances approximatives ? Dites, je veux extraire toutes les valeurs de la colonne B qui correspondent aux 9 premiers caractères/chiffres de la colonne A ? La colonne B compte 11 caractères tandis que A n'en compte que 9. Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Je dois faire exactement le contraire de cela. J'ai beaucoup de colonnes associées à un identifiant de ligne et je veux les coller dans deux colonnes
par exemple j'ai
rowid, valeur, valeur1, valeur2, valeur3, valeur4, valeur..225
100, Dauphin, 255, 9--, sarah, jameson, ....
179, routeur, inondation, jason, 89, nez



Je veux que ça ressemble à ça
100, Dauphin
100, 255
100, 9--
100, Sarah
100, jaemeson
179, Routeur
179, inondation
179
179, 89
179, nez
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Dave,
Pour résoudre votre problème, veuillez utiliser le code VBA ci-dessous : (Remarque : lorsque vous sélectionnez la plage de données que vous souhaitez transposer, veuillez exclure la ligne d'en-tête.)

Sous TransposeUnique_2()
Dim xLRow, xLCount As Long
Dim xRg As Range
Dim xOutRg As Range
Dim xObjRRg As Range
Dim xTxt As String
Dim xCount As Long
Dim xVRg As Range
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("veuillez sélectionner la plage de données :", "Kutools for Excel", xTxt, , , , , 8)
Définir xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Si xRg n'est rien, quittez Sub
Si (xRg.Rows.count < 2) Ou _
(xRg.Areas.count > 1) Alors
MsgBox "Sélection non valide", , "Kutools pour Excel"
Exit Sub
Si fin
Set xOutRg = Application.InputBox("veuillez sélectionner la plage de sortie (spécifiez une cellule):", "Kutools for Excel", xTxt, , , , , 8)
Si xOutRg n'est rien, quittez Sub
Application.ScreenUpdating = Faux
xLCount = xRg.Columns.count
Pour xLRow = 1 To xRg.Rows.count
Définir xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial Coller :=xlPasteAll, Operation :=xlNone, SkipBlanks :=False, Transpose :=True
Application.CutCopyMode = Faux
Range(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Valeur = xRg.Cells(xLRow, 1).Valeur
Définir xOutRg = xOutRg.Offset(RowOffset :=xObjRRg.count)
Suivant
Application.ScreenUpdating = True
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Merci, ça marche parfaitement, tu m'as fait gagner 2 jours ! :)
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Skyyang,
s'il vous plaît partager le code pour 3 colonnes. Ci-dessous l'exemple :
Je veux les données comme: yogesh@gmail.com communauté 1 afficher uniquement communauté 2 afficher uniquement ...... goyal@gmail.com communauté 1 afficher uniquement communauté 2 afficher uniquement ........

Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Ygoyal,

Pour résoudre votre problème, veuillez appliquer le code ci-dessous :

Sous TransposeUnique_2()

Dim xLRow, xLCount As Long

Dim xRg As Range

Dim xOutRg As Range

Dim xObjRRg As Range

Dim xTxt As String

Dim xCount As Long

Dim xVRg As Range

Dim xC, xI, xI1, xI2 En entier

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox("veuillez sélectionner la plage de données :", "Kutools for Excel", xTxt, , , , , 8)

Définir xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Si xRg n'est rien, quittez Sub

Si (xRg.Rows.Count < 2) Ou _

(xRg.Areas.Count > 1) Alors

MsgBox "Sélection non valide", , "Kutools pour Excel"

Exit Sub

Si fin

Set xOutRg = Application.InputBox("veuillez sélectionner la plage de sortie (spécifiez une cellule):", "Kutools for Excel", xTxt, , , , , 8)

Si xOutRg n'est rien, quittez Sub

Application.ScreenUpdating = Faux

xLCount = xRg.Columns.Count

Pour xLRow = 1 Vers xRg.Rows.Count

Définir xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)

On Error Resume Next

xC = (xObjRRg.Count Mod 2)

Si xC <> 0 Alors

xC = Int(xObjRRg.Count / 2) + 1

autre

xC = Int(xObjRRg.Count / 2)

Si fin

xI1 = 1

xI2 = 2

Pour xI = 1 À xC

Plage(xObjRRg.Item(xI1), xObjRRg.Item(xI2)).Copier

xOutRg.Offset(, 1).PasteSpecial Coller :=xlPasteAll, Operation :=xlNone, SkipBlanks :=False, Transpose :=False

Application.CutCopyMode = Faux

xOutRg.Value = xRg.Cells(xLRow, 1).Value

Définir xOutRg = xOutRg.Offset(RowOffset :=1)

xI1 = xI1 + (2)

xI2 = xI2 + (2)

Suivant

Suivant

Application.ScreenUpdating = True

End Sub



S'il vous plaît essayez, j'espère que cela peut vous aider!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Bro, Le code fonctionne en face. Veuillez vous référer à la capture d'écran ci-jointe de l'exigence. Les données disponibles sont par ligne et vous souhaitez transposer les données dans les colonnes.
Ce commentaire a été minimisé par le modérateur sur le site
Salut Ygoyal,
Désolé pour la réponse tardive, veuillez appliquer le code suivant, veuillez l'essayer !

Sub transposeunique()

'mise à jour par Extendoffice

Dim xLrow As Long

Dim i As Long

Dim xCrit As String

Dim xCol Comme nouvelle collection

Dim xRg As Range

Dim xOutRg As Range

Dim xTxt As String

Dim xCount As Long

Dim xVRg As Range

Dim xFRg, xSRg, xCRg As Range

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox("veuillez sélectionner la plage de données (seulement 3 colonnes):", "Kutools for Excel", xTxt, , , , , 8)

Définir xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Si xRg n'est rien, quittez Sub

Si (xRg.Columns.Count <> 3) Ou _

(xRg.Areas.Count > 1) Alors

MsgBox "la plage utilisée n'est qu'une zone avec deux colonnes ", , "Kutools for Excel"

Exit Sub

Si fin

Set xOutRg = Application.InputBox("veuillez sélectionner la plage de sortie (spécifiez une cellule):", "Kutools for Excel", xTxt, , , , , 8)

Si xOutRg n'est rien, quittez Sub

Définir xOutRg = xOutRg.Range(1)

xLRow = xRg.Rows.Count

Pour i = 2 Vers xLRow

xCol.Add xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value

Suivant

Application.ScreenUpdating = Faux

Application.ScreenUpdating = Faux

Pour i = 1 To xCol.Count

xCrit = xCol.Item(i)

xOutRg.Offset(i, 0) = xCrit

xRg.AutoFilter Field :=1, Criteria1 :=xCrit

Définir xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

Si xVRg.Count > xCount Alors xCount = xVRg.Count

Définir xSRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

Définir xCRg = xOutRg.Offset(i, 1)

Pour chaque xFRg dans xSRg

xFRg.Copy

xCRg.PasteSpecial

xRg.Plage("B1").Copier

xCRg.Offset(-(i), 0).PasteSpecial

xFRg.Décalage(0, 1).Copier

Définir xCRg = xCRg.Offset(0, 1)

xCRg.PasteSpecial

xRg.Plage("c1").Copier

xCRg.Offset(-(i), 0).PasteSpecial

Définir xCRg = xCRg.Offset(0, 1)

Suivant

Application.CutCopyMode = Faux

Suivant

xRg.Item(1).Copy

xOutRg.PasteSpecial

xRg.FiltreAuto

Application.ScreenUpdating = True

End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Hey Bro, j'ai essayé d'utiliser ce code mais Excel se bloque lorsque j'exécute ce code et je ne peux pas voir la sortie du code ci-dessus. s'il vous plaît suggérer quoi faire dans ce cas.
Ce commentaire a été minimisé par le modérateur sur le site
Hi,
Le code fonctionne bien dans mon classeur, quelle version d'Excel utilisez-vous ?
Ce commentaire a été minimisé par le modérateur sur le site
MS Excel 2016
Ce commentaire a été minimisé par le modérateur sur le site
Le code fonctionne également bien dans mon Excel 2016, veuillez d'abord l'essayer avec des données de petite plage.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai testé sur 160 enregistrements mais dans ce doublon il y avait encore.
Ce commentaire a été minimisé par le modérateur sur le site
Salut Skyyang, j'adore ça, avez-vous une chance de le faire fonctionner pour quatre colonnes ? encore une fois en utilisant simplement les deux premiers comme comparateur, ou mieux encore la possibilité de choisir le nombre de colonnes avant de les sélectionner ? J'ai jeté un coup d'œil à votre script, je n'aurais aucune idée de la façon d'y parvenir ...
Ce commentaire a été minimisé par le modérateur sur le site
Salut Skyyang, j'adore ça, avez-vous une chance de le faire fonctionner pour quatre colonnes ? encore une fois en utilisant simplement les deux premiers comme comparateur, ou mieux encore la possibilité de choisir le nombre de colonnes avant de les sélectionner ? J'ai jeté un coup d'œil à votre script, je n'aurais aucune idée de la façon d'y parvenir ...
Ce commentaire a été minimisé par le modérateur sur le site
Bro, pls aider dans ce domaine.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Bro, toujours en attente de votre aide
Ce commentaire a été minimisé par le modérateur sur le site
Ce commentaire a été minimisé par le modérateur sur le site
Comme Dave, je dois faire exactement le contraire de cela. Tableau 2 à transposer au tableau 1. Tableau d'entrée 2, Tableau de sortie 1.
Ce commentaire a été minimisé par le modérateur sur le site
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) a fonctionné pour moi pour transposer les valeurs uniques d'une colonne dans une nouvelle colonne MAIS ... existe-t-il un moyen d'ajouter une fonction de tri pour que la nouvelle colonne créée soit transposée dans l'ordre croissant ?


Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Besoin d'obtenir la même sortie mais pour les colonnes prédéfinies à sélectionner serait ($A,$B) et besoin de la position de la colonne de sortie sur $D$1.
Si quelqu'un a une idée ça m'aiderait beaucoup !!!!
Ce commentaire a été minimisé par le modérateur sur le site
Salut, pouvons-nous ajouter chaque ligne et donner la sortie dans une colonne, avec la fonctionnalité ci-dessus.
Ce commentaire a été minimisé par le modérateur sur le site
Je travaille donc pour une entreprise. Nous avons des colonnes pour des informations telles que Nom, prénom, rang, section, numéro de téléphone, adresse. Existe-t-il un moyen d'utiliser une formule similaire pour transposer toute la ligne d'informations dans une colonne par noms ?
Ce commentaire a été minimisé par le modérateur sur le site
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) a fonctionné pour moi pour transposer les valeurs uniques de la colonne A dans une nouvelle colonne MAIS ... existe-t-il un moyen de transposer toutes les valeurs de la colonne B comme indiqué ci-dessous:

Produit Date de commande Produit Commande Commande Commande Commande Commande Commande Commande Commande
KTE 100 3/3/2019 KTE 100 100 100 200 100 150 100
KTO 150 3/3/2019 KTO 150 100 200 100 150 200
KTE 100 3/4/2019 BOT 150 100 200 150 100 200
KTO 100 3/4/2019 COD 200 150 100 150
KTO 200 3/5/2019
KTE 100 3/5/2019
BOT 150 3/5/2019
BOT 100 3/6/2019
KTO 100 3/6/2019
KTE 200 3/6/2019
BOT 200 3/7/2019
DCO 200 3/7/2019
KTE 100 3/7/2019
KTO 150 3/7/2019
BOT 150 3/8/2019
KTE 150 3/8/2019
DCO 150 3/8/2019
BOT 100 3/9/2019
BOT 200 3/10/2019
DCO 100 3/10/2019
KTO 200 3/10/2019
DCO 150 3/11/2019
KTE 100 3/11/2019
Ce commentaire a été minimisé par le modérateur sur le site
La macro n'a pas fonctionné. Il vient de copier le contenu de la cellule A1.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai un ensemble de données dans les colonnes A (ID unique) - E. Chaque ligne contient des données basées sur l'ID #, il y a plusieurs lignes pour chaque ID # mais je veux une ligne par ID # avec toutes les autres données dans les colonnes ( ce serait 5 colonnes au minimum et 25 au maximum selon le nombre de chaque ID unique). J'ai trouvé un code mais cela ne fonctionne que pour deux colonnes. J'ai dû concaténer les quatre colonnes (sans ID) puis délimiter après avoir exécuté la macro (beaucoup de travail). Pour 15,000 XNUMX lignes de données, cela prend plus de temps. Existe-t-il une macro de colonne sans fin qui fonctionnerait ? Merci d'avance à tous pour votre aide !
CODE D'IDENTIFICATION ST CODE # DATE
Ce commentaire a été minimisé par le modérateur sur le site
J'ai un ensemble de données qui a plusieurs identifiants dans la colonne A et qui a connecté des données dans la colonne B. J'ai utilisé la formule ci-dessus et l'ai légèrement modifiée afin de transposer les cellules de la colonne B dans une ligne basée sur l'ID unique lié à celui-ci dans la colonne A. La formule utilisée pour identifier les identifiants uniques est : =INDEX($A$2:$A$13409, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$13409), 0)). La formule utilisée pour faire la transposition est : =IFERREUR(INDEX($B$2:$B$13409, MATCH(0, IF($A$2:$A$13409<>$D2, 1, 0)+COUNTIF($D2: D2,$B$2:$B$13409), 0)), "N/A"). Les deux donnés dans l'article, légèrement modifiés.

Le problème est que mon ensemble de données dans la colonne B a des doublons, apparaissant parfois les uns après les autres, et j'ai besoin que toutes les valeurs de la colonne soient présentées dans les lignes.

L'image ci-jointe est ce que je voudrais que le tableau montre (il s'agit d'un petit échantillon, le véritable ensemble de données compte plus de 13,000 XNUMX entrées). Ce qui se passe maintenant, c'est que lorsqu'une valeur de répétition est rencontrée, elle ne la comptera pas.
c'est-à-dire que la ligne 9 pour l'ID 11980 ne montre plus que 0 -31.79 -0.19 -0.74 N/AN/A .... alors que ce que j'ai besoin d'afficher à la place est 0 0 -31.79 -0.19 -0.74 0 0 N/AN/A . ...

Existe-t-il un moyen de contourner ce problème et de le résoudre ?

Je vous remercie à l'avance!
Ce commentaire a été minimisé par le modérateur sur le site
Avez-vous déjà obtenu une réponse/résolution à ce défi ? J'ai le même.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai un ensemble de données qui a 3 colonnes présentées ci-dessous:



Colonne A Colonne B Colonne C



Pays1 Année1 Valeur1

Pays1 Année2 Valeur2

Pays1 Année3 Valeur3,



Pays2 Année1 Valeur1

Pays2 Année3 Valeur3,

...........



J'ai besoin de combiner ces 3 colonnes dans un tableau comme celui-ci:

Année1 Année2 Année3 .................................. AnnéeX



Pays1 Valeur1 Valeur2 Valeur3

Pays2 Valeur1 #Valeur manquante3

.....
.....
.....

PaysX Valuex ..................





Le problème auquel je suis confronté est que pour certaines données de la colonne A, je n'ai pas de valeurs pour chaque année uniquement pour certaines (par exemple, le pays 2 a des valeurs manquantes pour l'année 2)





Existe-t-il un moyen de contourner ce problème et de le résoudre ?



Je vous remercie à l'avance!
Ce commentaire a été minimisé par le modérateur sur le site
pouvez-vous s'il vous plaît partager le code s'il y a 2 colonnes à copier au lieu de 1. ci-dessous est l'exemple.
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés