Google Tableur : la fonction QUERY !

3057 8

La fonction QUERY de Google Sheets exécute sur toutes les données une requête écrite dans le langage de requête de l’API Google Visualization.

Dans l’animation ci-dessous, on souhaite pouvoir afficher, pour quelques clients choisis, quelques références à choisir dans une liste.

Classiquement, la cellule contenant la fonction QUERY comporte la plage à requêter ainsi que les filtres et se présente comme suit :
=QUERY(A7:D20; »select * « )

Afin de rendre la requête plus interactive, il est possible de décomposer la fonction sur plusieurs cellules, ce qui donnera :
=QUERY(A7:D10;A1)

Dans la cellule A1, on pourra alors écrire le texte de la requête et y insérer des références à des listes de choix, comme le montre l’animation ci-dessous.

query

Lien vers le centre aide Google Sheets.

Lien vers le fichier exemple : https://goo.gl/mleaBq

Cet article est inspiré d’un post G+ de Thierry RANNOU.

La syntaxe de cette formule QUERY :

QUERY(données, requête, en-têtes)

  • données : plage de cellules sur laquelle effectuer la requête.
    • Chaque colonne de données ne peut contenir que des valeurs booléennes, des valeurs numériques (y compris différents types de date et heure) ou des valeurs de chaîne.
    • En cas de types de données mixtes dans une seule colonne, le type de données majoritaire détermine le type de données de la colonne, à prendre en compte pour les requêtes. Les types de données minoritaires sont considérés comme des valeurs nulles.
  • requête : requête à exécuter, écrite dans le langage de requête de l’API Google Visualization.
    • La valeur requête doit être entourée de guillemets ou doit faire référence à une cellule contenant le texte approprié.
    • Pour plus d’informations sur le langage de requête, accédez à l’adresse https://developers.google.com/chart/interactive/docs/querylanguage.
  • en_têtes[FACULTATIF] : nombre de lignes d’en-tête dans la partie supérieure des données. Si cette valeur est ignorée ou correspond à -1, elle est déduite en fonction du contenu de données.

D’autres exemples pour vous donner des idées en bas de cette page du centre d’aide.

Jean-Paul JOURDAN

Jean-Paul JOURDAN

Consultant formateur certifié Google Apps

8 commentaires

  1. Avatar

    Merci bcp M Gilbert
    ça marche à merveille …
    mais pour mon cas je travaille sur un tableau et le problème se pose uniquement pour deux colonne
    quand j’applique votre solution la tableau obtenu est considéré comme texte complétement, ce que je veux pas …
    Merci encore une autre fois

    1. Avatar

      @ Hassane

      employer la fonction CNUM() pour convertir le résultat TEXTE en NUMÉRIQUE dans le tableau pour effectuer des calculs par exemple

      Salutations

      Gilbert

  2. Avatar

    Merci bcp Gilbert
    malheureusement je n’ai pas compris M1 . est ce que je dois l’ecrire dans la fonction

    1. Avatar

      @ Hassane

      M1 c’est la cellule où se trouve le texte ou le nombre rechercher

      attention les guillemets sur le Blog ne sont pas bien convertis c’est le problème ici

      Si besoin je mettrait un exemple à télécharger

  3. Avatar

    @ Hassane

    une solution
    =QUERY(ARRAYFORMULA(TO_TEXT(A:C)); »select * where (Col3 = ‘ »&M1& »‘) »; 1)
    en M1 la recherche soit en Texte soit en Nombre

    Salutations
    Gilbert

  4. Avatar

    Bonjour,

    J’ai un problème avec cette fonction QUERY : TOUTES LES VALEURS ne sont pas afficher ! ! !

    J’ai trouvé le problème. Dans la doc de QUERY voici ce qui est dit :
    « En cas de types de données mixtes dans une seule colonne, le type de données majoritaire
    détermine le type de données de la colonne, à prendre en compte pour les requêtes. Les types
    de données minoritaires sont considérés comme des valeurs nulles. »

    Du coup, si j’ai dans 1 colonne : 50 lignes contenant des chiffres, et 10 lignes des caractères, alors les 10 lignes avec les caractères ne sont pas affiché ! Moi, je voudrais qu’il affiche toutes les lignes (au format TEXTE par exemple).

    J’ai essayé de définir la colonne au format « TEXTE BRUT », mais ça ne change rien.

    Aurais-tu une solution ?

    Merci d’avance,

    1. Avatar

      Svp est ce que vous avez la solution de ce probleme … je l’ai toujours
      Merci

  5. Avatar

    Merci à vous, blog très utile!

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.