Microsoft 365 Convertir données cellules en lignes

matmac

XLDnaute Occasionnel
Bonjour à tous,
j'ai un fichier excel correspondant à l'extraction d'un formulaire "Forms". Les colonnes S à CJ correspondent à des réponses à choix multiples dans le formulaire. De ce fait, dans les cellules de ces colonnes, il peut y avoir plusieurs "valeurs texte", toutes séparées par un ";". Dans le fichier joint, qui correspond à un test, seul les colonnes S et T contiennent des valeurs.
J'aimerais séparer le contenu de ces cellules avec le ";" comme séparateur, mais je ne veux pas que la séparation se fasse en colonnes (comme le fait l'onglet "convertir), mais en lignes. De plus, il faudrait que la séparation n'efface pas la ligne suivante mais créée une nouvelle ligne en recopiant automatiquement le contenu de toutes les colonnes, sauf celle de S à CJ, car pour chaque ligne, seule une des colonnes S à CJ doit être renseignées, comme à l'issue du formulaire...
Pour information, les colonnes CK à CV contiennent des infos perso que j'ai effacé, c'est la raison pour laquelle elle sont vides.

Je ne sais si c'est faisable, à partir d'une macro ? mais c'est bien au delà de mes compétences. Pourtant, si c'est réalisable, cela m'aiderai bien !

Merci par avance.
Mat
 

Pièces jointes

  • Classeur1.xlsx
    695.5 KB · Affichages: 8

Cousinhub

XLDnaute Barbatruc
Inactif
Bonjour,
Dans les colonnes S et T, il y a un ";" (point-virgule) à la fin de chaque donnée.
Est-ce que ce sera toujours le cas?
Si c'est le cas, (ou pas, d'ailleurs) par le biais d'une requête Power Query, c'est très facilement réalisable.
Cette info, c'est juste pour éviter dès le début des lignes vides (donc des lignes de S et T vides sur la même ligne)
Regarde le premier jet (dans l'onglet "T_Final")
Clic droit dans la requête, "Actualiser" pour mettre à jour (ou Ruban Données, "Actualiser tout")
Bonne apm
 

Pièces jointes

  • PQ_Fraction.xlsx
    717.8 KB · Affichages: 4

matmac

XLDnaute Occasionnel
Re,
Par défaut, il y a un ";" à la fin de chaque donnée dans les colonnes S à CJ, à partir du moment où il y a du contenu (donc au moins une réponse dans le formulaire).
C'est exactement le résultat escompté.
Je ne connais pas bien le fonctionnement des requêtes, mais en regardant la requête, je vois que tu as saisi le nom des colonnes, or par la suite, il n y' en aura pas que 2 mais plus de 70. Faudra t-il toutes les écrire ?
Par ailleurs, les colonnes vides de CK à CV contiennent des formules faisant appel à un autres onglet, est-ce que la recopie fonctionnera à l'identique ?
Merci
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re-,
Je viens de regarder de plus près ton fichier
De S à CJ, ce sont des activités?
Ce seront donc toutes ces colonne à fractionner?
Un autre traitement devra sans doute être envisagé...(pour éviter les 70 étapes) - Dépivoter d'abord ces 70 colonnes, effectuer la fraction, puis les re-transposer...
Je regarde, et si j'ai le temps ce soir...
 

matmac

XLDnaute Occasionnel
Re,
C'est ça, il y aura potentiellement des données à fractionner dans les colonnes S à CJ.
Pas de soucis. J'ai bien pensé à fractionner d'abord en colonne puis transposer, mais le fractionnement en colonne écrase les données contenus dans les colonnes suivantes, et après, je ne sais pas automatiser dans la transposition, la création de lignes et la recopie des autres colonnes (autres que celle de S à CJ).
Merci
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Voici, d'après ce que j'ai compris, une requête qui ne s'occupe plus des noms de colonnes (ou indirectement)
Elles traitera toute les colonnes après la 19ème, s'il faut restreindre cette plage de colonne, dites nous sur quelle base (noms, positions, nombres). Par exemple : "Toutes les colonnes entre la 19ème et les trois dernières"

Il faudra nous dire également si les valeurs pourront être autre chose que du texte (nombre,date)

Cordialement
 

Pièces jointes

  • matmac.xlsx
    708.8 KB · Affichages: 3
Dernière édition:

matmac

XLDnaute Occasionnel
Bonjour Hasco,
J'ai l'impression que le contenu des colonnes S et T a été fusionné dans une colonne unique appelée "valeur". Or j'ai besoin de conserver le nom des colonnes d'origine, car ensuite, je traite les données avec un TCD où le nom des colonnes me sert de filtres.
Cordialement
 

Cousinhub

XLDnaute Barbatruc
Inactif
Bonsoir,
Je pense que si tu mettais plus d'infos (quitte à mettre de l'infox), mais en remplissant plus de colonnes, on pourrait "faire mieux"...
Dans ta colonne "Activité", tu n'as que 2 choix
Et dans les 70 colonnes de la fin, tu en as donc 70...
Complète un peu plus ton tableau (quitte à donner le tableau réel, sans les données personnelles), sinon, ça va pas être simple....
 

matmac

XLDnaute Occasionnel
Re,
Ci-joint, le fichier avec un peu plus de données. Il n'y avait que deux colonnes de remplies sur la 1ère version car il a été créé suite à quelques simulations sur le formulaire dont il est issu. Ce fichier me sert à traiter les données issues du formulaire. Pour l'instant, les seules données que j'ai sont des simulations, je n'ai pas de tableau "complet".
Lorsqu'il sera opérationnel et que toutes les personnes devant remplir le questionnaire l'auront fait, toutes les colonnes devraient contenir au moins une fois du contenu, et pour beaucoup d'entre elles, du contenu à presque chaque lignes, sachant qu'il y aura je pense environ 3000 lignes.
La colonne "activité" renvoie au choix parmi environ 70 activités dans une question du formulaire, puis selon ce choix, la question suivante demande de choisir la/les catégorie(s) dans ladite activité. Ce choix de catégorie(s) apparait dans les colonnes S à CJ (une colonne par activité).
Enfin, les colonnes CK à CV font appel à un autre onglet (non présent dans le fichier mis à disposition) d'où les #N/A.

En espérant avoir pu donner davantage de détails...
 

Pièces jointes

  • Classeur1.xlsx
    362.2 KB · Affichages: 7

Cousinhub

XLDnaute Barbatruc
Inactif
Bonjour,
Je dois dire que je ne comprends pas du tout le cheminement...
Pourquoi ces 70 colonnes?
Pourquoi les valeurs séparées par un ";"?
A quoi correspondent les différents "Lycée Excellence;Lycée SportPartagé...."? - Ce sont différents choix dans le questionnaire?
Dans ce cas, pourquoi ne pas les mettre en 1 colonne, avec comme dénominateur commun l'activité choisie en colonne "O"?
Je ne suis pas dans ta tête, mais je ne vois pas du tout l'utilité des 70 colonnes...
Tu as un exemple du questionnaire? (ça pourrait nous aider à comprendre...)
Bon W-E
 

matmac

XLDnaute Occasionnel
Bonjour,

Les colonnes sont créées par le questionnaire.
Ci-joint, l'accès au formulaire : https://forms.office.com/Pages/Resp...cGjbFVfBUNDZNVUtHUkhYNDVaNDBZSlVRTlZaS0JTTi4u
Après quelques "formalités", ceux qui répondent sont invités à choisir une activité d'inscription parmi environ 70 propositions. Cette réponse apparait en colonne O. Puis selon l'activité sélectionnée, la question suivante est dirigée vers l'activité en question pour y choisir la catégorie d'inscription (Lycée Excellence;Lycée SportPartagé...). Comme il y a le choix entre 70 activités, il y a 70 redirections possibles... d'où les 70 colonnes S à CJ.
Derrière, je récupère un fichier Excel qui compile les réponses... c'est le fichier joint, il est brut, j'ai juste ajouté les colonnes CK à CV par la suite. Au final, je pourrais me passer de la colonne O puisque que dans les colonnes S à CJ je retrouve l'activité et les catégories d'inscription. Mais encore une fois, elle est créée par le l'extraction des réponses au formulaire.

J'espère que ça aide à y voir clair.
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re,
Un peu...
Mais perso, je ferai l'inverse....
Je garde la colonne "O", et je mets en colonne S les catégories d'inscription (plusieurs choix possibles, qui seront séparés par ";")
Et là, le fractionnement comme proposé dans ma première réponse...
Tu ne penses pas?
 

matmac

XLDnaute Occasionnel
Derrière je traite les données avec un TCD. Comme filtre, j'ai l'activité (colonne O). En ligne, je vais avoir la colonne S à CJ qui correspond à l'activité de la colonne O du tableau (par exemple la colonne S si en O j'ai activité subaquatique), puis en 2ème niveau de ligne, le type d'établissement (colonne CN). Enfin en colonne du TCD, le département.
Donc, on compilant les catégories dans une seule colonne ("profil" comme tu l'as appelé), il faut que je regarde si je peux faire mon TCD par la suite. Est-ce que la requête peut également recopier les colonne CK à CV ?
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re-,
Je pense qu'il faut "repenser" le fichier...
Même le nom des écoles par département (qui prend 6 colonnes pour rien) pourrait être regroupés sur 1 seule
Et les formules CK à CV, pas sûr d'en avoir besoin...
L'idéal serait de connaître la finalité...
Le TCD peut être issu directement de la requête
Il faudrait donc qu'on sache ce que tu cherches, est-ce le nombre par département, par école, par activité???
Bref, on va travailler sur 1 seul fichier (par exemple celui-ci, la V3), et tu mets dans un autre onglet ce que tu voudrais avoir comme "stats"...
Dans cette V3, j'ai "élagué", juste conservé les colonnes utiles.
Dans d'autres onglets, tu peux avoir des Tableaux de correspondances, qu'on utilisera pour relier les infos aux résultats du questionnaire.
Je te laisse voir ce qu'il est possible de faire, mais avec PQ, on peut tout faire (sauf le café, malheureusement...)
 

Pièces jointes

  • PQ_Fraction_V3.xlsx
    26.3 KB · Affichages: 1

Discussions similaires

Statistiques des forums

Discussions
314 716
Messages
2 112 153
Membres
111 445
dernier inscrit
elmansour81