Transcription des cellules dans un format précis

Bonjour à toutes et tous,

Je vous écris parce que je bloque vraiment pour trouver la bonne formulation pour résoudre un casse-tête pour le travail. En général, je parviens à me documenter et utilise régulièrement Excel pour des statistiques mais cette situation devient stressante bien que ça ne me parait pourtant pas si infaisable.

Je pense que ce qui me bloque est le fait que plusieurs données sont à traiter dans une même cellule et je ne parviens pas à appliquer si les fonctions FILTRE, RECHERCHEV, SI ou STXT par exemple pour trouver ma solution.

Pourriez-vous m'aider sur ce souci ?

Il s'agit d'un aperçu d'une partie d'une extraction de fichier provenant de réponses à un questionnaire. Ce fichier est ensuite transcrit en csv via Access. Mais pour celui-ci il est nécessaire que cette partie soit mise sous une forme bien précise pour qu'il puisse être utilisé ensuite dans un logiciel programmé pour recevoir et restituer ces informations au bon endroit. Sinon cela ne correspond plus aux bonnes informations.

- La colonne 1 présente une première question à choix multiples dont les personnes ont sélectionné leur choix de 1 à 9 et les colonnes suivantes des questions avec des réponses à choix multiples aussi de 1 à 5.

- Il se peut que les choix ne soient pas initialement retranscrits dans l'ordre. Ceci dépend de l'ordre auquel les personnes ont coché les réponses mais le rendu final devra systématiquement proposer les chiffres du plus petit au plus grand.

- Il est important que, dans la colonne 1, chaque cellule présente 9 caractères, que ce soit des chiffres par ordre croissant ou des blancs en début, intercalés ou en fin de série. Dans les colonnes suivantes, de même avec 5 caractères au total, chiffres ou blancs.

La difficulté est aussi de trouver la formule qui va reproduire sur un milliers de lignes ou chacune des colonnes.

Je joins le fichier pour vous aider dans la compréhension.

Merci beaucoup de votre aide !

Bonjour

Faisable par PowerQuery, mais je doute que l'exemple soit représentatif notamment en termes de titre de colonnes... donc la requête risque de ne pas être utilisable en l'état...

image

A priori faisable directement dans Access également

Bonjour,

Il semble que à l'occasion, vous enlevez les espace et à d'autre, vous les laissez!

Dans l'onglet "Test", je propose une solution.

Est-ce que ça répond à votre problème? Noter, on peut enlever les espaces si requis et ce colonne par colonne

RE

Il semble que à l'occasion, vous enlevez les espace et à d'autre, vous les laissez!

L'espace remplace normalement un chiffre manquant dans la série de 1 à 9

Le fait que la police utilisée ne soit pas à pas fixe minore un peu la perception de cette logique

Bonsoir,

Avant tout, merci pour vos réponses !

La capture d'écran de 78chris est exactement le résultat recherché avec des blancs laissés si le chiffre n'est pas choisi. Je n'ai jamais utilisé PowerQuery, je viens de commencer à regarder un peu mais pour le moment je ne sais pas trop par où me lancer mais j'essaie de regarder des tutos.

Dand en effet, l'extraction depuis le formulaire donne une séparation avec virgule et sans espace sur la colonne 1 et une séparation avec virgule et avec espace sur les colonnes suivantes. Je n'ai pas réussi à repérer pourquoi cette différence sur le formulaire.
Sur le résultat final, les espaces doivent en fait être uniquement les blancs qui marquent l'absence du choix. Par exemple si la personne ne choisi pas le choix 1, cela fait un espace et donc un caractère qui est un blanc.

Bonjour 78chris,

Auriez-vous des éléments pour développer l'idée présentée ? J'ai tenté via la création de colonnes personnalisées et des formes conditionnelles mais je ne parviens pas à créer une chaine de valeurs de 1 à 9 intégrant les blancs pour que chaque chiffre soit bien décalé au bon endroit. Je parviens à le faire mais pour chiffre uniquement par cellule.

Merci pour votre aide.

Bonjour,

Je pense que j'ai ce que vous cherchez...

image

Dans cette proposition, il y aurait par défaut 8 réponses et une 9ième en option. On peut aller avec plus de réponses si requis.

Bonjour

Bonjour 78chris,

Auriez-vous des éléments pour développer l'idée présentée ? J'ai tenté via la création de colonnes personnalisées et des formes conditionnelles mais je ne parviens pas à créer une chaine de valeurs de 1 à 9 intégrant les blancs pour que chaque chiffre soit bien décalé au bon endroit. Je parviens à le faire mais pour chiffre uniquement par cellule.

Merci pour votre aide.

J'ai soulevé diverses questions

  • la représentativité de l'exemple par rapport au fichier réel
  • la fourniture d'un csv ou deux
  • la présentation finale à obtenir

mais n'ai reçu aucune réponse

Re-bonjour !

Merci encore pour l'aide apportée !

Pour la réponse à Dand :

Il semblerait que ce soit cohérent avec le rendu final qu'il faudrait que je teste sur une bonne centaine de lignes ! Quand vous dites une 9ème en option, cela voudrait dire que si la personne n'a pas choisi le 9, cela voudrait dire qu'il n'y aurait pas de blanc à la place du chiffre ? Dans ce cas, la neuvième n'est pas en option sur la colonne 1.
Si je comprends bien, pour les colonnes 2 à 7, je pourrais arrêter la formule au chiffre 5 comme il n'y a que 5 choix sur ces colonnes ?

Pour la réponse à 78chris :

J'ai en effet raté les éléments de réponse à trop vouloir me focaliser sur le fichier 😬

- Le fichier réel va contenir plusieurs centaines de lignes jusqu'à possiblement un millier. Il se peut que le nombre de colonnes soit plus nombreux également en fonction de l'ouverture du questionnaire à d'autres questions à choix multiples plus tard mais ce n'est pour le moment pas le cas.
- La compilation se fait dans un seul CSV, mais il faudrait que ce soit possible également de copier le résultat pour l'intégrer sur une autre feuille excel pour l'associer à d'autres données. La commande copier/coller les valeurs fonctionnerait-elle ?
- Le rendu sous excel doit être comme celui de Dand et le rendu après être passé par Access pour en faire un csv, celui qui est en PJ ici :) (je me rends compte qu'à la main, c'est vraiment fou)

8exemple-presentation.csv (682.00 Octets)

Encore merci !

Bonjour,

J'ai mis pour toutes les colonne une possibilité de 9 réponses. Par contre, on apprécie la nombre de caractères de la colonne et ça devient la norme pour la colonne.

J'ai importé votre fichier CSV dans l'onglet "Dossiers_2" et le résultat dans "Test (4)".

Dans les onglets "Test (2)" et "Test (3)", j'ai un moyen de tester les résultats. Vous entrez en M2 la référence à la cellule, ex.: A6 et on vous donne le nombre de caractères et la valeur de chaque caractère, surtout pour voir les espaces (code 32 (ou en hex 20)). Si c'est un espace on afficher "Espace".

Voilà

DanD

Bonjour

Pour la réponse à 78chris :

J'ai en effet raté les éléments de réponse à trop vouloir me focaliser sur le fichier 😬

- Le fichier réel va contenir plusieurs centaines de lignes jusqu'à possiblement un millier. Il se peut que le nombre de colonnes soit plus nombreux également en fonction de l'ouverture du questionnaire à d'autres questions à choix multiples plus tard mais ce n'est pour le moment pas le cas.
- La compilation se fait dans un seul CSV, mais il faudrait que ce soit possible également de copier le résultat pour l'intégrer sur une autre feuille excel pour l'associer à d'autres données. La commande copier/coller les valeurs fonctionnerait-elle ?
- Le rendu sous excel doit être comme celui de Dand et le rendu après être passé par Access pour en faire un csv, celui qui est en PJ ici :) (je me rends compte qu'à la main, c'est vraiment fou)

Je m'aperçois qu'en résumant mes questions j'ai confondu 2 demandes : la tienne et celle d'un autre post dont la source était un csv.

En ce qui concerne ton fichier la seule question concernait les titres de colonnes : correspondent-ils à la réalité ou dépendent-ils du questionnaire ?

Mais cela ne modifie que peu la requête donc je l'ai adaptée pour qu'elle ne s'en préoccupe pas. C'est la requête Donnees

Si les questionnaires ont un nombre de questions différent, le nombre de réponses peut l'être aussi

J'ai

  • ajouté une table de paramètres Param qui permet de préciser le nombre de réponses attendues à chaque question
  • créé la requête Donnees_Paramétrée pour la prendre en compte.

Ainsi, selon le cas, tu peux choisir laquelle utiliser...

Bonjour à tous !

Une autre approche Power Query possible :

Intègre la contrainte exprimée :

- Il est important que, dans la colonne 1, chaque cellule présente 9 caractères, que ce soit des chiffres par ordre croissant ou des blancs en début, intercalés ou en fin de série. Dans les colonnes suivantes, de même avec 5 caractères au total, chiffres ou blancs.

Requête exécutée en 1.5 seconde pour 6.000 lignes

Bonjour,

J'ai intégré la table "Param" dans le fichier Excel.

Pour le nombre de réponses possibles, on cherche dans la table et dans l'éventualité qu'on ne le trouverait pas, on prend le nombre de caractères de la colonne qu'on traite.

La formule se trouve en A1 des onglets "Test". Il vous faut la copier et la coller dans autant de colonnes que vous aurez à traiter. Si une colonne n'a rien à traiter, on aura tout simplement aucun traitement.

Questions: avez-vous toujours le même nombre de colonnes à traiter?

Bonsoir !

J'ai commencé à tester samedi sur plus de lignes la solution de Dand et c'était déjà une énorme avancée. Alors les tests menés aujourd'hui avec les trois solutions sont vraiment top et cela a permis semble-t-il d'imbriquer des éléments dans chacune des méthodes.

En fait, cela n'avait rien d'évident du tout 😬Je vais pouvoir dépecer les formules pour tenter de bien comprendre pour d'autres besoins éventuellement. La petite frustration pour le moment, si on peut dire ça comme ça, reste de savoir comment travailler Power Query pour arriver à sortir cette programmation.

Un grand merci à tous les trois pour vos aides précieuses qui vont permettre de traiter les fichiers d'ici quelques jours. Je vous tiendrai au courant :)

Bonjour ZinZin44,

J'ai une formule seulement en l'onglet Test (3)!A1.

La formule prend en compte le nombre d'enregistrements (rangées) et le nombre de colonnes et on traite le tout en une formule!

DanD

Bonsoir à tous ! (oui oui.... à tous....)

Je vous remercie de ce retour.

La petite frustration pour le moment, si on peut dire ça comme ça, reste de savoir comment travailler Power Query pour arriver à sortir cette programmation.

Lancez-vous que diable ! Le retour sur investissement est relativement rapide.

Pour le fun, une version "formule" (LAMBDA) (nécessite M365) :

RE

La petite frustration pour le moment, si on peut dire ça comme ça, reste de savoir comment travailler Power Query pour arriver à sortir cette programmation.

Mon approche est plus simple pour débuter que celle plus concise, raffinée et efficace de JFL.

Si tu es décidé, je peux expliquer.

Bonjour à tous !

Merci pour tous ces éléments, vous avez raison, rien de mieux que de s'y mettre ! Je prendrai le temps d'approfondir une fois que j'aurais fini ce fichier qui me donne pas mal de fils à retordre.

Je suis presque au bout de la démarche complète et je bloque depuis plusieurs jours sur la finalité de cette opération, je crois que vos éclairages seraient d'une grande aide.

Pour resituer dans son ensemble, ce que l'on a vu précédemment sont ajoutés à d'autres éléments qui correspondent aux noms des personnes, dates de naissance, etc... et à des questions à choix optionnel. Tout cela a pu être extrait et mis en forme dans un tableau de cellules texte.

Ce fichier global en exemple de quelques colonnes : donnees.xlsx. doit être exporté en format .csv avec la nécessité d'encadrer chaque champ par des guillemets (double quote de séparation) pour que le fichier résultant puisse être inséré dans un logiciel de récupération de ces données.
Il m'est demandé que ce fichier CSV doit également donner le même résultat si on l'ouvre avec un NotePad, hormis la toute première colonne qui pourra rester sans double quote sur le CSV mais avec double quote en l'ouvrant sur le bloc-note, ce qui semble bien se produire jusque là.

Pour cela je passe par Access mais la difficulté que je rencontre est la suivante :

Malgré plein de tentatives et de saisies différentes, je n'arrive pas à faire en sorte que les double quote soient également visibles pour les champs où le texte est absent, aussi bien sur le CSV qu'à l'ouverture sur bloc-note (représenté par le .txt). J'ai regardé sur le web mais n'ai pas réussi à trouver ce souci spécifiquement.

Auriez-vous une solution précieuse pour terminer ce marathon ? 🤪

Encore merci à vous !

6donnees.xlsx (11.84 Ko)

Bonjour

La structure des csv est normalisée :

  • les champs déclarés en texte sont entre quotes,
  • les champs déclarés en numérique n'en ont pas
  • les champs vides n'en ont pas

Au delà, des paramètres permettent de préciser le type de quotes (simples ou doubles) et le séparateur , ou ; ainsi que la codification du fichier ASCI, ANSI, UTF8...

Je ne sais plus si un texte vide peut bénéficier de quotes ou est considéré comme vide ou null : ce qui peut donc être un souci par rapport à ta demande

Si on sort de la normalisation, il faut coder l'export soi-même : un peu lourd pour une dérogation qui est toujours à prendre avec des pincettes car ces fichiers csv peuvent devenir incompatibles avec des logiciels supposés les importer...

Les fichiers csv s'ouvrant parfaitement dans le bloc notes, je ne vois pas trop l'intérêt de 2 formats...

Merci 78chris pour la réponse !

En effet, le fichier est élaboré pour un opérateur international dont il m'est malheureusement demandé de suivre la procédure pour que le fichier puisse être importé. J'ai comme l'impression qu'ils travaillent avec des logiciels complexes ou du moins, en effet, pas tout à fait normés en lien avec les outils usuels.

Dans tous les cas, je comprends mieux les difficultés sur cette partie.

Le fichier le plus important est le CSV semble-t-il. J'ai tenté un tour de passe-passe pour m'en sortir en remplaçant les ,, par des ,"", dans Edition, Remplacer. Sauf que l'enregistrement du fichier CSV après cette manip fait que l'ouverture de celui-ci en format txt avec le NotePad double double quote les éléments qui deviennent du coup ,"""", et donc cela ne peut pas convenir.
En fait, ce résultat semble compréhensible dans le sens où le CSV va quoter du texte donc si je mets ,"", et que je l'enregistre depuis le format .csv, il va au final sortir du ,"""", et si je ne mets rien en laissant ,, il va rester comme ça ,,

En gros quelle galère !

Rechercher des sujets similaires à "transcription format precis"