Report de données nouvel onglet, d'un onglet "réponses au formulaire-GForm"

Chers membres du forum,

Bonjour à tous.

Je me permets de vous solliciter étant un noob avec les appli/outils de la Suite. Malheureusement pour moi, ce sont les outils qui sont maintenant demandés pour le boulot...donc je suis en train de m'y mettre petit à petit, mais j'ai encore certaines difficultés pour les opérations "complexes" (pour moi).

Je m'explique : j'ai crée un formulaire GForm que je souhaiterai pouvoir partager avec des camarades. Ce GForm est en majorité constitué sur une arborescence de type réponses par menu déroulant...ce qui a impliqué un grand nombre de rubriques afin de renseigner les différentes critères de choix à proposer en fonction des réponses. Malgré tout, le GForm est parfaitement fonctionnel et fait le boulot souhaité.

Là où cela se corse est que ce grand nombre de choix successifs (total 6 questions ; mais qui sont multipliées par autant de possibilités par question) implique donc autant de colonnes que de choix de réponses possibles sur la totalité du formulaire dans la spreadsheet issue de ce google form (Colonne A jusqu'à colonne GU ) j'ai donc souhaité créer un nouvel onglet où je pensai pouvoir y faire un report des données automatiques, en ne gardant que les différentes valeurs.

Dans mon cas, la 1ère question offre 2 possibilités de réponses (1 seul choix est possible), puis la 2ème question à nouveau 2 possibilités, etc... etc...

En espérant m'expliquer clairement (désolé si ce n'est pas le cas) : cela veut dire que ma spreadsheet m'affiche donc la ligne de l'entrée des valeurs validée, en comportant 2 colonnes pour la 1ère question, où seule 1 cellule d'une de ces 2 colonnes va être impacté de la valeur "réponse" choisie dans le GForm...puis 4 colonnes pour la 2 ème question avec toujours une seule cellule comportant la valeur "réponse"....puis 16 colonnes avec toujours une seule cellule sur les 16 qui comporte une valeur...etc.

D'où mon souhait de créer ce nouvel onglet à l'aide d'une potentielle fonction/formule QUERY qui se mettrait à jour automatiquement au fur et à mesure des nouvelles entrées/réponses au questionnaire validé : permettant d'avoir dans cet onglet un report tableau avec seulement 8 colonnes correspondant au 8 questions, et non pas les 203 colonnes créés par le GForm. Ce nouvel onglet permettrait de me "concatener" la valeur "unique" recueillie entre les différentes colonnes de chaque question, sachant que pour chaque question je me retrouve donc avec une cellule vide pour la 1ère question, puis 3 vides pour la 2ème question, puis 15 vides, etc...

J'ai bien lu plusieurs choses sur le net avec même une possibilité d'inclure "CONCATENER" dans QUERY....mais là je vous avoue que n'état pas sachant et avec la multitude de possibilités que visiblement fonctionneraient.... je m'y perds un peu (si ce n'est pour dire beaucoup).

Pensez-vous qu'il serait possible de m'aider à créer cette formule ou fonction, en m'expliquant un petit peu la méthodologie pour construire cette fonction.

En vous remerciant pour la bienveillance accordée ;-) et comptant sur votre possible aide dans la résolution de ce problème.

Bien à vous.

Merci la Team ^^

En attendant la potentielle aide d'une âme charitable et experte, je continue à lire un maximum les infos contenues dans les 2 packs d'archives que j'ai acheté sur votre site dédié ce matin (sheets-pratique.com) :

-pack "Cours-Google Sheets"

&

-Pack "Cours-Google Sheets - QUERY"

Merci d'avance.

Au plaisir de vous lire.

Bon, me revoici après une journée de tests de formules qui n'ont pas abouti... :-/

QUERY me permet de pouvoir faire le report automatique de mon tableau , et me permet de sélectionner certaines colonnes ...mais cela ne me donne pas le résultat recherché...j'ai testé CONCATENER dans chaque cellule de chaque ligne, et qui fait bien le boulot sur les plages de mes groupes de colonnes...mais la soumission de nouvelles réponses de mon formulaire ne s'affichent pas dans mon nouvel onglet récup.

Je suis perdu là :-(

Si quelqu'un aurait une soumission pour adapter la formule qui serait du type :

=QUERY('Réponses au formulaire 1'! A:GU;"

select A,B,C ;

CONCATENER(Réponses au formulaire 1! D:E) qui incrémentera les valeurs dans la nouvelle colonne D;

CONCATENER(Réponses au formulaire 1! F:I) qui incrémentera les valeurs dans la nouvelle colonne E ;

CONCATENER(Réponses au formulaire 1! J:AO) qui incrémentera les valeurs dans la nouvelle colonne F ;

CONCATENER(Réponses au formulaire 1! AP:CQ) qui incrémentera les valeurs dans la nouvelle colonne G ;

CONCATENER(Réponses au formulaire 1! CR:GU) qui incrémenter les valeurs dans la nouvelle colonne H ;

where (ou when ?) C='NORD' or 'SUD' or 'Est' or 'Ouest'

J'espère que cela est possible ?

Merci d'avance

Bonjour,

Essaie avec la fonction FILTER...

=filter(A1:GU1;A1:GU1<>"")

Tirer la formule pour recopier vers le bas...

Cordialement,

Fil.

Bonjour Filoche,

et autres membres du Forum ^^

Merci pour ton retour et ta contribution.

Malheureusement le test effectué me réalise une copie des colonnes existantes (j'ai rajouté dans la formule "Réponses au formualaire 1!" puisque les infos sont recherchés sur cet onglet, et pas sur l'onglet actif où je souhaite effectuer le report des données.

Si tu as une autre idée, je suis preneur...

A moins que la fonction query puisse combiner la fonction soit Concatener sur les plages que j'ai cité lors de mon précédent mail ; soit Filter ?

Je ne sais pas.

Merci en tout cas pour ce 1er retour ;-)

J'espère à très vite , car cette opération me bloque pour céder mon code Apps Script et réaliser des envois e-mails automatique en fonction des données qui viendront à être concaténer dans les différentes cellules des 8 colonnes souhaitées dans ce nouvel onglet.

Bien à vous

Bonjour,

=filter(A1:GU1;A1:GU1<>"") fonctionne parfaitement, mais il ne faut pas sélectionner les entêtes de colonnes étant donné que cela renvoie toutes les cellules non vides...

Je t'ai fait une petite compilation de différentes solutions pour traiter ton problème.

J'ai fait des exemples en m'arrêtant à 4 questions, le raisonnement est le même pour 8....

J'espère avoir bien interprété ta requête.

Voici le lien:

https://docs.google.com/spreadsheets/d/10pas6aQmHAsFbjxIdxEsB0Yjo0g1N7iJShKryPpsolE/edit?usp=sharing

Cordialement,

Fil.

Bonjour Filoche,

(et chers membres du forum)

Je te remercie pour ton grand intérêt, et pour les solutions apportées.

Je teste tout ça ce soir et reviens vers toi afin de t'informer de la solution retenue ;-)

Milles mercis en tout cas.

Bonne journée. :-)

Bonjour Filoche ^^

Bonjour chers membres du forum :-)

Navré de ma réponse "tardive".

En effet, les formules fonctionnent plutôt pas mal (en particulier la CONCATENER(QUERY...))

En revanche, je viens de constater que si une nouvelle ligne de réponses est crée via le formulaire de réponses du Gform, les nouvelles données ne vont pas être reportées automatiquement comme souhaitées...sauf si je rentre manuellement les formules à nouveau à la main...

Est-ce que tu penses qu'il est possible de pouvoir appliquer le même type de formulation que ton 2ème tableur où tu utilises les formules concatener-query dans chaque cellules...savoir si il est pas possible d'insérer directement une formule valable pour l'ensemble de la feuille (case en haut à gauche : avant A et avant 1) afin d'y insérer une formule qui pourrait reprendre l'ensemble des données ?

En clair : est-il possible de mettre plusieurs concatener-query dans la même formule, afin de regrouper l'ensemble des éléments en une seule requête/formulation ?

Je te remercie d'avance pour ton retour éclairé.

Te souhaitant une excellente journée, et bonne journée à l'ensemble de la Team du Forum.

Bien à vous. :-)

Re-bonjour Filoche et membres du forum,

Alors je sais que l'expression/formule que je vais insérer ci-dessous n'est pas du tout la bonne expression à utiliser (puisque celle-ci vient d'être testée et erreur), mais dans l'idée, faudrait qu'elle puisse faire un travail du style :

=QUERY('Réponses au formulaire 1'!A:GU;"select A,B,C,D,E,F,G,H" where D='CONCATENER('Réponses au formulaire 1'!D:E)'and E='CONCATENER('Réponses au formulaire 1'!F:I)' and F='CONCATENER('Réponses au formulaire 1'!J:AO)' and G='CONCATENER('Réponses au formulaire 1'AP:CQ)' and H='CONCATENER('Réponses au formulaire 1'CR:GU)')

Que du coup, l'ensemble des valeurs de mon formulaire "Réponses au formulaire 1" à exploiter se situe sur la plage A:GU, que pour mon onglet de reporting, la sélection se fasse sur les 8 colonnes (select A,B,C,D,E,F,G,H ou sélect A:H) ; où en colonnes, A, B, C, les valeurs reportées sont identiques que mon formulaire de réponses ; que la colonne D je dois concatener les valeurs contenue dans les colonnes D & E de mon formulaire de réponses ; que la colonne E je dois concatener les valeurs contenues dans le colonnes F:I de mon formulaire de réponses ; que la colonne F je dois concatener les valeurs contenues dans les colonnes J:AO de mon formulaire de réponses ; que la colonne G je dois concatener les valeurs contenues dans les colonnes AP:CQ de mon formulaire de réponses ; que la colonne H je dois concatènera les valeurs contenues dans les colonnes CR:GU.

C'est vraiment l'architecture de mon formulaire de réponses (initial) et l'architecture du nouveau formulaire de récup (nouvel onglet avec reporting/formule) souhaité.

Merci pour votre aide et votre haute bienveillance.

Bien à vous.

Bonjour,

Il suffit de tirer vers le bas la fonction concatenate/query, bien au-delà de ce que tu as besoin initialement de manière à avoir des 'formules d'avance'...

Sinon je ne sais pas...

Cordialement,

Fil.

Bonjour Fil,

Bonjour à tous,

Je me permets de revenir vers toi, suite à un souci de formules sur mes 2 dernières colonnes... : colonne 7(G) et 8 (H).

La formule fourni dans le 2ème exemple de tableur de ton précédent lien fourni fonctionne bien pour mes colonnes en amont :

-colonne 4 (D) avec formule : =CONCATENER(QUERY('Réponses au formulaire 1'!D2:E2;"SELECT D,E")) : Ok, fonctionnelle, fait le boulot ;-)

-colonne 5 (E) avec formule : =CONCATENER(QUERY('Réponses au formulaire 1'!F2:I2;"SELECT F,G,H,I")) Ok, idem ;-)

-colonne 6 (F) avec formule : =CONCATENER(QUERY('Réponses au formulaire 1'!J2:AO2;"SELECT J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO")) ....fonctionne oui...(mais ça commence à faire lourd en texte pour le détail du select, non ?)

-colonne 7 (G) avec formule : ==CONCATENER(QUERY('Réponses au formulaire 1'!AP2:CQ2;"SELECT AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ")).....formule ne fonctionne plus : "#VALEUR!" avec mess erreur dans un onglet commentaire à la cellule:

capture d ecran 2022 10 22 a 16 19 12

Une idée pourquoi ça plante à cet endroit (hormis le nombre de caractère important pour stipuler que je veux concatene la plage de telle cellule à telle cellule ?

Je pensai pouvoir finir avec cette petite partie, avant d'attaquer ensuite un script pour faire des envois d'email automatique en fonction des secteurs...mais tant que la concaténation des valeurs de colonnes ne fonctionneront pas...je ne vais pas m'y lancer...un pas après l'autre ;-)

Une idée chers amies et amis .

Merci à vous ^^

Bonjour,

==CONCATENER(QUERY('Réponses au formulaire 1'!AP2:CQ2;"SELECT AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ"))

Je pense que tu as mis deux fois le signe "=" en début de formule...

Cordialement,

Fil.

Re,

Non, il s'agit juste d'une erreur de frappe dans le contenu de mon post, la formule ne contient pas 2 signes "=".

Malheureusement, ce n'est pas la solution....même si j'aurai préféré ;-)

Merci ^^

Rebonjour,

De plus, je pense qu'il ne faut pas nommer et ne pas utiliser la colonne nommée BY (éventuellement la masquer et ne rien mettre dedans) et se servir de la colonne BZ à la place , car QUERY l'interprète comme l'instruction "BY"...

À vérifier...

Cordialement,

Fil.

Rerebonjour,

Ou mettre "Col 113" à la place de" BY" dans la liste des colonnes sélectionnées...

À tester...

Cordialement,

Fil.

Rebonjour Fil,

Et merci pour ton intérêt ;-)

Test réalisé à l'instant... :-/

Pas mieux (cf.capture ci-dessous)

capture d ecran 2022 10 22 a 17 52 40

Bien cordialement.

Bonsoir,

Après quelques recherches, j'ai enfin trouvé la solution!

Il faut encadrer la colonne BY par deux accents graves (touche 7/è/`).

Comme ceci: `BY`

Cordialement,

Fil.

Bonsoir Fil,

Merci pour ton retour apprécié et fonctionnel ^^figures toi que j'étais en train de lire également un sujet sur un autre forum vis-à-vis du désagrément causé par la valeur d'une colonne "BY" qui a également généré des soucis à d'autres ;-)

Thanks a lot.

En revanche, j'ai une dernière petite question : est-ce qu'il n'y a pas la possibilité d'attribuer directement une plage au select....au lieu de mettre toutes les colonnes les unes après les autres....car les rentrer à la mano, c'est fastidieux..et je m'interroge sur le poids de la fonction/formule demandé.

Car ma colonne 8 (H) : ça va me donner un select avec 108 noms de colonne à énumérer 1 à 1...

Savoir si il y a pas moyen de faire un Select direct des colonnes AP à CQ (Select AP:CQ) sur la plage souhaitée ?

Ca existe comme possibilité de formulation sous Sheets ?

Merci déjà pour la grande aide bienveillante, et merci d'avance pour le potentiel retour sur cette dernière requête afin de fluidifier la formulation (si c'est possible). :-)

Bonne soirée, et au plaisir

Bien cordialement.

Re, bonsoir à tous,

(encore merci à M. Filoche ^^).

Bon, ben...décidemment, j'ai pas de chance avec mes expressions de colonne.

Le pb de la colonne 7 étant réglé, et ne sachant pas s'il est possible de réduire la plage du select, je viens de rentrer la dernière formule sur la 2ème cellule de ma colonne H, soit :

=CONCATENER(QUERY('Réponses au formulaire 1'!AP2:CQ2;"SELECT CR,CS,CT,CU,CV,CW,CX,CY,CZ,DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR,DS,DT,DU,DV,DW,DX,DY,DZ,EA,EB,EC,ED,EE,EF,EG,EH,EI,EJ,EK,EL,EM,EN,EO,EP,EQ,ER,ES,ET,EU,EV,EW,EX,EY,EZ,FA,FB,FC,FD,FE,FF,FG,FH,FI,FJ,FK,FL,FM,FN,FO,FP,FQ,FR,FS,FT,FU,FV,FW,FX,FY,FZ,GA,GB,GC,GD,GE,GF,GG,GH,GI,GJ,GK,GL,GM,GN,GO,GP,GQ))"))

Malheureusement, même type d'erreur...j'ai beau essayé de voir quelle "écriture" mettrait le bazar...ben, je sèche...

Merci à vous.

Bien cordialement.

Bonsoir,

Déjà un moyen rapide d'écrire les noms de colonnes:

Sur une première ligne, placer cette formule et tirer la vers le bas pour la copier:

=UPPER(regexreplace(ADDRESS(1;ROW(D1));"[^A-Z]";"")&",")

Après faire un copier de la plage qui convient et la coller dans la formule...

Pour l'erreur de la colonne 8:

=CONCATENER(QUERY('Réponses au formulaire 1'!AP2:CQ2;"SELECT...

AP2:CQ2 la plage n'est pas bonne.

C'est plutôt CR2:GQ2

Cordialement,

Fil.

Rechercher des sujets similaires à "report donnees nouvel onglet reponses formulaire gform"