Fonction QUERY & IMPORTRANGE problèmes importations données

Bonjour à toutes et à tous,

Mon but :
J'ai des interfaces utilisateurs et une base de donnée générale. Je veux que les données soient redistribuées à tout le monde, donc je prend les données saisies localement sur chacune des interfaces, je rapporte tout dans la BDD générale, je tri, et je renvois proprement aux interfaces.

J'utilise actuellement les fonctions QUERY et IMPORTRANGE afin de regrouper les données de plusieurs documents google sheet.
Ces données peuvent être du texte ou des chiffres dans les même colonnes.
Je les regroupent donc sur une première feuille, puis je distribue les données sur différentes autres feuilles via des fonctions FILTER.
Ces données sont ensuite renvoyées sur les différents documents google sheet.

Mon problème :

Je me retrouve avec un problème de cases vides qui ne devraient pas l'être en plein milieu de l'import.

Ma tentative de solution :

J'ai déterré un vieux sujet qui m'a permis de trouver une demi-solution à mon problème :
https://forum.excel-pratique.com/sheets/importrange-qui-ne-rapatrie-pas-toutes-les-donnees-si-associ...

J'ai appliqué la solution, sauf que tout est transformé en texte, qui ne peut derrière plus être utilisés en nombre. Malheureusement pour moi, j'ai besoin de mes données sous format numérique puisque j'ai des dates, des devises, des horaires....

Mon premier regroupement donne ça :
=QUERY({SIERREUR(FILTER(TO_TEXT(IMPORTRANGE("https://docs.google.com/spreadsheets/d/[mon_document]/edit";"BDD_user!A2:T"));IMPORTRANGE("https://docs.google.com/spreadsheets/d/[mon_document]/edit";"BDD_user!A2:A")<>""))})

Et le triage donne ça :
=SORT(FILTER(Journal!D2:U;Journal!A2:A="BDD_staff");1;FAUX)
J'ai tenté deux manœuvres maladroites que voici :
=SORT(TO_PURE_NUMBER(FILTER(Journal!D2:U;Journal!A2:A="BDD_staff"));1;FAUX)
et
=SORT(FILTER(TO_PURE_NUMBER(Journal!D2:U);Journal!A2:A="BDD_staff");1;FAUX)

Cela n'a malheureusement rien donné, les données restent toutes textuelles et je ne peux pas les utiliser pour retrouver mes dates, devises et autres valeurs numériques.

Est-ce que quelqu'un aurait une tentative de solution à me donner ?
La construction des document n'est peut-être également pas bonne, je construit avec ce que je connais, peut-être que je me plante sur toute la ligne, je suis ouvert à toutes solutions.

Merci à vous

Bonsoir,

Peut-être en adaptant comme ceci :

=SORT(FILTER(arrayformula(cnum(Journal!$D$2:$U));arrayformula(cnum(Journal!$A$2:$A))="BDD_staff");1;FAUX)

Bonsoir Filoche,

Merci pour ta réponse, j'ai juste adapté pour garder une correspondance sur le "BDD_staff", qui ne peut que être du texte, de cette manière :
=SORT(FILTER(arrayformula(CNUM(Journal!$D$2:$U));Journal!$A$2:$A="BDD_staff");1;FAUX)

Mais je me retrouve avec des erreurs pour toutes les cellules qui contiennent réellement du texte (#VALEURE - Impossible d'analyser le paramètre GSSS de VALUE en tant que nombre) (GSSS étant le contenu d'une de mes cellules pour mon exemple)

Exemple avant la modification :

image

Et après avoir mis la modification :

image

Tu as toujours cette solution qui est un peu fastidieuse à mettre en place (j'ai fait pour les 4 premières colonnes) :

=SORT(FILTER({arrayformula(CNUM(Journal!$D$2:$D))\Journal!$E$2:$E\arrayformula(CNUM(Journal!$F$2:$G))};Journal!$A$2:$A="BDD_staff");1;FAUX)

Mon problème est que mes colonnes ne contiennent pas forcément que des données numériques ou du texte, donc la colonne E par exemple peut contenir à certaines lignes des chiffres et dans d'autres lignes des lettres

Tu n'aurais pas un document type à partager, car là, sans modèle précis, je ne peux pas faire plus !

Je viens de créer deux documents exemple de ce que j'essaye de faire :

La base de données, pour regrouper les saisies locales de toutes les interfaces :
https://docs.google.com/spreadsheets/d/1eMSAAHEYuRvyatThd9mMg-GM9lg1AjIPakP_PC7W7O0/edit?usp=sharing

Une interface exemple :
https://docs.google.com/spreadsheets/d/14V8c219jHzmssCTqZyWPG33rf4WUZ3vCj_d7U7Pks1E/edit?usp=sharing

Le problème est donc dans la base de données, j'ai remis les formules avec lesquelles je me suis retrouvé avant de demander de l'aide.

Voilà une solution qui a l'air de fonctionner :

=arrayformula(SUBSTITUE(arrayformula(SUBSTITUE({arrayformula(TEXTE(query(Journal!$A$2:$U;"select D, E where A = 'BDD_staff' ");"dd/mm/yyyy"))\QUERY(Journal!$A$2:$U;"select  F where A = 'BDD_staff' ")\arrayformula(TEXTE(query(Journal!$A$2:$U;"select G where A = 'BDD_staff' ");"dd/mm/yyyy"))\QUERY(Journal!$A$2:$U;"select H, I, J, K, L, M where A = 'BDD_staff' ")\arrayformula(TEXTE(query(Journal!$A$2:$U;"select N where A = 'BDD_staff' ");"dd/mm/yyyy"))\QUERY(Journal!$A$2:$U;"select  O where A = 'BDD_staff' ")\arrayformula(TEXTE(query(Journal!$A$2:$U;"select P, Q where A = 'BDD_staff' ");"dd/mm/yyyy"))\QUERY(Journal!$A$2:$U;"select  R where A = 'BDD_staff' ")\ARRAYFORMULA(TEXTE(query(Journal!$A$2:$U;"select S where A = 'BDD_staff' ");"[HH]:mm"))\query(Journal!$A$2:$U;"select T where A = 'BDD_staff' ")\ARRAYFORMULA(TEXTE(query(Journal!$A$2:$U;"select U where A = 'BDD_staff' ");"0 000;-0;"))};"30/12/1899";""));"00:00";""))

https://docs.google.com/spreadsheets/d/1QwfwqJ9Gbwh3QkPv85ohAHJXM3MPHfLP-6Ch_YVrt8I/edit?usp=sharing

Un grand merci !

Je vais potasser pour comprendre l'entièreté de la formule et pouvoir éventuellement l'ajuster à d'autres feuilles mais c'est impec !

Merci beaucoup

Rechercher des sujets similaires à "fonction query importrange problemes importations donnees"