Etaler des données en colonne

Bonjour,

Je souhaite savoir comment étaler les données d'un tableau. J'ai en colonne des N° de contrat et des prénoms de titulaire. Dans mon fichier, s'il y a plusieurs titulaires, ils sont en collone comme s'il s'agissait d'autre contrat. Je souhaite les mettre en ligne de sorte à ce qu'il n'y ait qu'une ligne par contrat. Cela ma permettra de faire de la RECHERCHEV par la suite et remonter mes titulaires.

J'ai mis un exemple avec premier tableau ce que j'ai et second tableau ce que j'aimerais obtenir.

Merci par avance pour votre aide.

13exemple.xlsx (8.95 Ko)

Hello,

Voici un proposition :

Bonjour

Une autre proposition

11exemple.xlsm (16.20 Ko)

A+ François

bonjour

petite contribution sans vba avec les plages nommées en dynamique

cordialement

10ricardo.xlsx (12.40 Ko)

Bonsoir à tous,

Une proposition avec Power Query, si ta version le permet.

Cordialement.

8exemple-2.xlsx (17.52 Ko)

Bonsoir Zebulon,

Tu vas surement être surpris du résultat, mais si tu ajoutes une ligne au tableau source (pour avoir une 4ème colonne), la requête ne suivra pas et ne t'ajouteras pas cette 4ème colonne. (à moins de mettre x colonnes à fractionner dans les options avancées ?)

Alors oui, fût un temps où je savais contrer ce problème simple, mais j'ai déjà oublié...

JFL si tu passes par là, je sais que tu sais ! et je suis intéressé par ce problème.

Bonsoir à tous !

Une autre approche Power Query :

Re,

Bonsoir JB_,

Tout à fait exact, il faut rentrer sur la requête et valider la dernière étape pour obtenir le résultat voulu.

Si quelqu'un à une explication, je suis aussi intéressé.

Cordialement.

Bonsoir,
Une autre proposition.
Cdlt.

6exemple-2.xlsx (17.61 Ko)
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    GroupedRows = Table.Group(Source, {"N Contrat"}, {{"Count", each Table.RowCount(_), Int64.Type}, {"Prénom titulaire", each Text.Combine([Prénom titulaire],", "), type text}}),
    SplitColumns = Table.SplitColumn(GroupedRows, "Prénom titulaire", Splitter.SplitTextByDelimiter(", ", QuoteStyle.Csv), List.Max(GroupedRows[Count]))
in
    SplitColumns

Bonsoir à tous !

@Zebulon2 : Lors de l'étape fractionnement de votre requête le code s'adapte à vos données au moment de la création. Ce qui donne :

#"Fractionner la colonne par délimiteur" = Table.SplitColumn(GroupBy, "Prénom titulaire", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Prénom titulaire.1", "Prénom titulaire.2", "Prénom titulaire.3"})

La liste des noms de colonnes (ici 3 colonnes) est gravée dans le marbre. Et restera ainsi.Que votre tableau source comporte 4 ou 2 prénoms pour un même numéro de contrat, la requête génèrera 3 colonnes.

Pour éviter cet écueil, il faut remplacer la liste {"Prénom titulaire.1", "Prénom titulaire.2", "Prénom titulaire.3"} par le nombre maximum calculé de prénoms.

Lors du regroupement, l'intégration du comptage du nombre de lignes servira, via un List.Max, à ajuster automatiquement le nombre de colonnes dans l'étape du fractionnement..

Bonsoir,

Avant tout, merci pour vos propositions. Je dois avouer ne pas être à la hauteur sur VBA donc je ne peux pas adapter.

Réponse de Tulipe juste après Fanfan c'était pas mal ;)

Je suis navré mon exemple était tronqué (je pensais comprendre les propositions et adapter mais ça ne s'est pas passé comme ça). J'ajoute un autre exemple avec la même base mais il faut également mettre à plat des données concernant les titulaires.

(en B2 le début du tableau source et en B35 le début de l'attendu). Je suis partie sur la base de Tulipe car pas de VBA. Je peux comprendre et appliquer.

Si vous avez une proposition formule ce serait génial. Merci par avance et bonne soirée.

8ricardosuite.xlsx (14.03 Ko)

Re,

@JFL, Merci pour l'info, j'en prends bonne note.

J'ai tenté de reproduire la proposition de @Jean-eric, sur le dernier fichier transmis, mais je coince sur le Text.Combine pour la colonne AGE, j'ai essayé Number.Combinations sans succès.

Quelle serait la bonne fonction ?

Cordialement.

5ricardosuite.xlsx (25.02 Ko)

Bonjour à tous !

@Zebulon2 : Une proposition ?

Bonjour à tous,

@JFL, Merci pour la démonstration, surprenante de simplicité. Encore plein de choses à apprendre

Il y a t'il une technique pour écrire les formules, avec de l'aide, pour les fonctions qui ne sont pas dans le ruban ?

Bonne journée et bonne continuation.

Cordialement.

Il y a t'il une technique pour écrire les formules, avec de l'aide, pour les fonctions qui ne sont pas dans le ruban ?

Une technique ? Oui.....celle que vous mettrez en place !

Pour ma part :
- Je consulte, quasiment à chaque fois, la bible Microsoft (ici !) à la recherche de LA fonction idoine.
- Je n'hésite pas à mettre les mains dans le cambouis, me tromper, recommencer, explorer d'autres piste.

Bonnes découvertes !

Re,

Merci pour la réponse et à bientôt, sans doute, sur d'autres posts.

Cordialement.

Bonjour,

Je suis totalement incapable d'appliquer cette méthode à mon tableau. Existe t il y moyen d'arriver à ce résultat avec de "simples formules" ?

Une version améliorée de la proposition de Tulipe ? (la version était top par rapport au besoin, j'ai ajouté une difficulté)

bonjour

charmant , mais faisable ;;; donc intégralement automatisé sans vba , à l'ancienne

9ricardosuite2.xlsx (18.54 Ko)

Super merci.

Je ne comprends pas comment la colonne K va chercher les N° de contrat en colonne B, pouvez-vous m'expliquer ?

Rechercher des sujets similaires à "etaler donnees colonne"