Transformation de données (Pivot-Transposition)

Bonjour à tous,

Tout d'abord merci à tous pour la qualité de ce forum que je consulte régulièrement.

Ma problématique est la suivante, je dépose d'une table de données qui se présente de cette manière :

idHab
Pol11.6.4.2
Pol11.6.4.5
Pol21.6.4.6
Pol21.6.4.5
Pol21.6.4.10
Pol31.6.4.5
Pol41.6.4.5
Pol51.6.4.10
Pol51.6.4.5

Je voudrais transformer mes données pour obtenir un tableau comme suit sachant que pour un id donné, on peut avoir x (<10) répétitions. Comment obtenir cela ? Utiliser Power Pivot (procédures?) ? Utiliser une série de formules ? Etc...

idHab1Hab2Hab3
Pol11.6.4.21.6.4.5
Pol21.6.4.61.6.4.51.6.4.10
Pol31.6.4.5
Pol41.6.4.5
Pol51.6.4.101.6.4.5

En vous remerciant grandement par avant,
Frédéric
13pivot-exemple.xlsx (9.99 Ko)

Bonjour,

Je ne suis pas fort en Power Pivot, par contre je peux proposer une solution par VBA:

Sub transformation()
Dim Id As New Dictionary
Dim tabSource As Variant, tabResultat As Variant, colonnes As Variant

'initialisations
tabSource = Range("A3").CurrentRegion.Value

'recherche du nombre d'id différents
For lig = LBound(tabSource, 1) + 1 To UBound(tabSource, 1) '+1 car on ne regarde pas l'en-tête
    If Not Id.Exists(CStr(tabSource(lig, 1))) Then
        Id.Add CStr(tabSource(lig, 1)), Id.Count + 1
    End If
Next lig

'dimensionnement des tableaux
ReDim tabResultat(1 To Id.Count, 1 To 11)
ReDim colonnes(1 To Id.Count)

'transformation
For lig = LBound(tabSource, 1) + 1 To UBound(tabSource, 1)
    ligne = Id(CStr(tabSource(lig, 1)))

    'id
    If tabResultat(ligne, 1) = "" Then tabResultat(ligne, 1) = tabSource(lig, 1)

    'hab
    If Not colonnes(ligne) = "" Then
        colonnes(ligne) = colonnes(ligne) + 1
    Else
        colonnes(ligne) = 2
    End If

    tabResultat(ligne, colonnes(ligne)) = tabSource(lig, 2)
Next lig

'export du résultat
Range("D4").Resize(UBound(tabResultat, 1), UBound(tabResultat, 2)).Value = tabResultat
End Sub
10pivot-exemple.xlsm (20.20 Ko)

Bonjour à tous !

Une première piste avec 365 ? :

Bonjour,

Une proposition Power query ?

21pivot-exemple.xlsx (18.21 Ko)

Re-bonjour à tous,

Merci beaucoup pour vos solutions qui fonctionnent tous. Je me concentre sur les 2 dernières (formules et power Query) pour comprendre comment ça marche, elles me paraissent plus à ma portée...

Bonne journée,

Fred

Pas de souci!

Bon courage

Rechercher des sujets similaires à "transformation donnees pivot transposition"