Changer disposition tableau

Bonjour à toutes et tous,

et merci du temps que vous passerez sur ce sujet

J'ai un planning dans lequel les données sont organisées par personne et je souhaiterais que ce planning soit organisé par trajet.

Dans l'exemple en PJ je souhaiterais passer du tableau 1 au tableau 2

avec une ou plusieurs formules, sans tout refaire à la main à chaque fois

transpose

Avez-vous une idée? Je vous remercie

Bonjour,

Avec Power Query :

let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    Unpivot = Table.UnpivotOtherColumns(Source, {"-"}, "Attribut", "Valeur"),
    Pivot = Table.Pivot(Unpivot, List.Distinct(Unpivot[Valeur]), "Valeur", "Attribut")
in
    Pivot

A+

Bonjour à tous !

Une version "formule" (dynamique pour l'entièreté du tableau) à partir d'un tableau structuré nommé "tSource" :

=LET(
    t; (tSource[#Tout]);
    s; SEQUENCE(NBVAL(PRENDRE(t; 1)) - 1);
    _c1; DANSCOL(SI(s; TRANSPOSE(EXCLURE(PRENDRE(t; ; 1); 1))); ; 1);
    _c2; DANSCOL(SI(s; EXCLURE(PRENDRE(t; 1); ; 1)));
    _c3; DANSCOL(EXCLURE(t; 1; 1));
    PIVOTER.PAR(_c1; _c3; _c2; CONCAT; 0; 0; ; 0)
)

Contrainte : Nécessite peut-être Insider (?)

image

Salut JFL,

Contrainte : Nécessite peut-être Insider (?)

Hélas, PIVOTER.PAR n'est pas (encore) disponible dans 365 "ordinaire".

A+

Bonjour à tous de nouveau !

Hélas, PIVOTER.PAR n'est pas (encore) disponible dans 365 "ordinaire".

Bientôt....bientôt...

Et ce d'autant plus que la documentation Microsoft précise cette disponibilité :

image

Bonjour JFL, Bonjour OOoiste,

merci pour vos réponses expertes. Malheureusement j'ai déjà mis du temps à trouver comment ouvrir PowerQuery.

Quand je tape dans la barre de formule il m'indique une erreur syntaxe (je suppose que je ne tape pas au bon endroit, ou alors que mon tableau est mal nommé)

Du coup j'ai entrepris de bricoler un truc avec SI(ESTNUM(CHERCHE,: ca fonctionne mais c'est très lourd à gérer au delà de 3 personnes/trajets.

bascule siestnumcherche

Pourriez-vous me détailler les étapes dans powerQuery et/ou m'indiquer une marche à suivre pour simplifier la formule, s'il vous plaît?

Je vous remercie

Tu n'as rien à taper, juste à te servir des menus.

  • Menu Données > À partir d'un tableau ou d'une plage (charge le tableau dans power query),
  • Une fois dans PQ, sélectionner la première colonne puis onglet Transformer > Dépivoter les colonnes > Dépivoter les autres colonnes. (Réorganise le tableau en format "base de données tabulaires")
  • Sélectionner la colonne "Valeur", puis Pivoter la colonne, colonne de valeur : choisir "Attribut" et options avancées : "Ne pas agréger". (Fait passer les valeurs en en-têtes de colonnes)
  • Fermer et charger, charger dans : Tableau, choisir l'emplacement.

Plus long à détailler et écrire qu'à faire.

Une fois fait, si tu modifies ou ajoutes des données au tableau initial, il suffit de faire Données > Actualiser.

bonjour

une contribution

cordialement

25patrickchemin.xlsx (12.45 Ko)

Merci 00oiste ca fonctionne très bien!

Merci Tulipe_4 pour ta proposition, je vais essayer de la mettre en oeuvre. Il y a des bouts que j'avais vu par ci par là mais sans parvenir à en faire quelque chose!

Bonne semaine !

Bonjour à tous,

via VBA, tes données source à partir de A1, résultat en F1

Option Explicit
Sub transpose()
    Dim a, b, i As Long, ii As Long
    a = [a1].CurrentRegion.Value
    ReDim b(1 To UBound(a, 1), 1 To UBound(a, 2))
    With CreateObject("Scripting.Dictionary")
        For i = 2 To UBound(a, 1)
            b(i, 1) = a(i, 1)
            For ii = 2 To UBound(a, 2)
                If Not .exists(a(i, ii)) Then
                    .Item(a(i, ii)) = .Count + 2
                    b(1, .Item(a(i, ii))) = a(i, ii)
                End If
                b(i, .Item(a(i, ii))) = a(1, ii)
            Next
        Next
    End With
    [f1].Resize(UBound(b, 1), UBound(b, 2)).Value = b
End Sub

klin89

Rechercher des sujets similaires à "changer disposition tableau"