Table des matières
Si vous suivez ce blog depuis un certain temps, vous vous souvenez peut-être de la fonction QUERY pour Google Sheets. Je l'ai mentionnée comme une solution possible pour quelques cas, mais cela ne suffit pas à découvrir tout son potentiel. Aujourd'hui, il est grand temps de faire connaissance avec ce super-héros des feuilles de calcul. Et devinez quoi - un outil tout aussi remarquable sera également présent :)
Saviez-vous que la fonction QUERY de Google Sheets est considérée comme la plus puissante des feuilles de calcul ? Sa syntaxe particulière permet d'effectuer des dizaines d'opérations différentes. Essayons de décomposer ses parties pour les apprendre une fois pour toutes, d'accord ?
Syntaxe de la fonction QUERY de Google Sheets
À première vue, Google Sheets QUERY n'est qu'une autre fonction avec 1 argument facultatif et 2 arguments obligatoires :
=QUERY(données, requête, [en-têtes])- données est la gamme à traiter. Requis. Tout est clair comme de l'eau de roche ici.
Remarque : un petit rappel établi par Google : chaque colonne doit contenir un type de données : textuelles, numériques ou booléennes. S'il y a plusieurs types, QUERY travaillera avec celui qui apparaît le plus souvent. Les autres types seront considérés comme des cellules vides. C'est étrange, mais gardez cela à l'esprit.
- requête est le moyen de traiter le données Requis. C'est là que tout le plaisir commence. La fonction QUERY de Google Sheets utilise un langage spécial pour cet argument : Langage de requête de l'API de visualisation de Google Il est écrit d'une manière similaire au SQL. Il s'agit essentiellement d'un ensemble de clauses spéciales (commandes) utilisées pour indiquer à la fonction ce qu'elle doit faire : sélectionner, grouper par, limiter, etc.
Remarque : l'argument entier doit être placé entre guillemets. Les valeurs, à leur tour, doivent être placées entre guillemets.
- en-têtes est facultatif lorsque vous devez indiquer le nombre de lignes d'en-tête dans vos données. Omettez l'argument (comme je le fais ci-dessous), et Google Sheets QUERY le supposera en fonction du contenu de votre tableau.
Maintenant, creusons plus profondément dans les clauses et ce qu'elles font.
Clauses utilisées dans les formules QUERY de Google Sheets
Le langage de requête se compose de 10 clauses. Elles peuvent effrayer au premier abord, surtout si vous n'êtes pas familier avec le SQL. Mais je vous promets qu'une fois que vous les connaîtrez, vous disposerez d'une arme puissante pour les tableurs.
Je vais couvrir chaque clause et fournir des exemples de formules en utilisant cette liste d'étudiants imaginaires et leurs sujets de papier :
Oui, je fais partie de ces gens bizarres qui pensent que Pluton devrait être une planète :)
Conseil : plusieurs clauses peuvent être utilisées dans une même fonction QUERY de Google Sheets. Si vous les imbriquez toutes, veillez à suivre l'ordre de leur apparition dans cet article.
Sélectionner (toutes les colonnes ou des colonnes spécifiques)
La toute première clause - sélectionnez - est utilisé pour indiquer les colonnes que vous devez retourner avec Google Sheets QUERY à partir d'une autre feuille ou d'un tableau.
Exemple 1 : Sélectionner toutes les colonnes
Pour récupérer chaque colonne, utilisez sélectionnez avec un astérisque - sélectionner *
=QUERY(Papers!A1:G11, "select *")
Conseil. Si vous omettez le sélectionnez le paramètre Google Sheets QUERY renverra toutes les colonnes par défaut :
=QUERY(Papiers!A1:G11)
Exemple 2 : Sélectionner des colonnes spécifiques
Pour n'extraire que certaines colonnes, énumérez-les après la balise sélectionnez clause :
=QUERY(Papers!A1:G11, "select A,B,C")
Conseil : les colonnes d'intérêt seront copiées dans l'ordre où vous les avez mentionnées dans la formule :
=QUERY(Papers!A1:G11, "select C,B,A")
Google Sheets QUERY - Clause Where
Google Sheets QUERY où est utilisé pour définir les conditions relatives aux données que vous souhaitez obtenir. En d'autres termes, il agit comme un filtre.
Si vous utilisez cette clause, la fonction QUERY pour Google Sheets recherchera dans les colonnes les valeurs qui répondent à vos conditions et vous renverra toutes les correspondances.
Conseil. Où peut fonctionner sans le sélectionnez clause.
Comme d'habitude, pour spécifier les conditions, il y a des ensembles d'éléments spéciaux opérateurs pour vous :
- des opérateurs de comparaison simples ( pour les valeurs numériques ) : =, ,> ;,>=, <;, <=
- les opérateurs de comparaison complexes ( pour les cordes ) : contient, commence par, se termine par, correspond, != (ne correspond pas / n'est pas égal à), comme .
- opérateurs logiques pour combiner plusieurs conditions : et, ou, pas .
- les opérateurs pour vide / non vide : est nul, n'est pas nul .
Conseil : si vous êtes contrarié ou inquiet à l'idée de devoir à nouveau vous occuper d'un nombre aussi important d'opérateurs, nous vous comprenons. Nos Vlookup Matches multiples trouveront toutes les correspondances et construiront pour vous des formules QUERY dans Google Sheets si nécessaire.
Voyons comment ces opérateurs se comportent dans les formules.
Exemple 1. Où avec des chiffres
Je vais ajouter où à ma recherche Google Sheets ci-dessus pour obtenir les informations sur les planètes qui ont plus de 10 lunes :
=QUERY(Papers!A1:G11, "select A,B,C,F where F>=10")
Conseil. J'ai également mentionné la colonne F à extraire pour s'assurer que le critère est rempli. Mais c'est complètement facultatif. Vous n'êtes pas obligé d'inclure des colonnes avec des conditions dans le résultat :
=QUERY(Papers!A1:G11, "select A,B,C where F>=10")
Exemple 2. Où avec des chaînes de texte
- Je veux voir toutes les lignes où le grade est soit F ou F+ . je vais utiliser le contient opérateur pour cela :
=QUERY(Papers!A1:G11, "select A,B,C,G where G contains 'F'")
Remarque : n'oubliez pas d'entourer votre texte de guillemets.
- Pour obtenir toutes les lignes avec F seulement, il suffit de remplacer contient avec un signe égal (=) :
=QUERY(Papers!A1:G11, "select A,B,C,G where G="F"")
- Pour vérifier les épreuves qui doivent encore être livrées (où la note est manquante), vérifiez la colonne G pour les blancs :
=QUERY(Papers!A1:G11, "select A,B,C,G where G is null'")
Exemple 3. Où avec des dates
Devinez quoi : Google Sheets QUERY a même réussi à apprivoiser les dates !
Étant donné que les feuilles de calcul stockent les dates comme des numéros de série, vous devez généralement recourir à l'aide de fonctions spéciales telles que DATE ou DATEVALUE, YEAR, MONTH, TIME, etc.
Mais QUERY a trouvé le moyen de contourner les dates. Pour les saisir correctement, il suffit de taper le mot date puis ajoutez la date elle-même formatée comme aaaa-mm-jj : Date "2020-01-01".
Voici ma formule pour obtenir toutes les lignes dont la date d'enregistrement est antérieure au 1er janvier 2020 :
=QUERY(Papers!A1:G11, "select A,B,C where B
Exemple 4 : Combiner plusieurs conditions
Pour utiliser une certaine période de temps comme critère, vous devrez combiner deux conditions.
Essayons de retrouver les documents qui ont été remis à l'automne 2019. Le premier critère doit être une date. à partir du 1er septembre 2019 le second - au plus tard le 30 novembre 2019 :
=QUERY(Papers!A1:G11, "select A,B,C where B>=date '2019-09-01' and B<=date '2019-11-30'")
Ou bien, je peux sélectionner des articles sur la base de ces paramètres :
- avant le 31 décembre 2019 ( B
) - ont soit A soit A+ comme note ( G contient 'A'. )
- ou B/B+ ( G contient "B". )
=QUERY(Papers!A1:G11, "select A,B,C,G where B
Conseil : si votre tête est déjà sur le point d'exploser, n'abandonnez pas pour autant. Il existe un outil parfaitement capable de construire toutes ces formules pour vous, quel que soit le nombre de critères. Allez directement à la fin de l'article pour le découvrir.
Google Sheets QUERY - Groupe par
Google Sheets QUERY groupe par est utilisée pour concaténer les lignes. Cependant, vous devez utiliser certaines fonctions d'agrégation afin de les résumer.
Note. Groupe par doit toujours suivre le sélectionnez clause.
Malheureusement, il n'y a rien à regrouper dans mon tableau car il n'y a pas de valeurs récurrentes. Je vais donc l'ajuster un peu.
Supposons que tous les devoirs doivent être préparés par 3 étudiants seulement. Je peux trouver la note la plus élevée obtenue par chaque étudiant. Mais comme il s'agit de lettres, c'est la fonction MIN que je dois appliquer à la colonne G :
=QUERY(Papers!A1:G11, "select A,min(G) group by A")
Remarque : si vous n'utilisez pas de fonction d'agrégation avec une colonne quelconque de la base de données de l'UE, vous pouvez utiliser la fonction d'agrégation. sélectionnez clause (colonne A dans mon exemple), vous devez les dupliquer tous dans le fichier groupe par clause.
Google Sheets QUERY - Pivot
Google Sheets QUERY pivot Elle transpose les données d'une colonne vers une ligne avec de nouvelles colonnes, en regroupant les autres valeurs en conséquence.
Pour ceux d'entre vous qui s'occupent de dates, cela peut être une véritable découverte. Vous pourrez avoir un aperçu rapide de toutes les années distinctes à partir de cette colonne source.
Remarque : lorsqu'il s'agit de pivot chaque colonne utilisée dans le sélectionnez doit être couverte par une fonction d'agrégation. Sinon, elle doit être mentionnée dans la clause groupe par en suivant votre pivot .
Rappelez-vous, mon tableau ne mentionne maintenant que 3 étudiants. Je vais faire en sorte que la fonction me dise combien de rapports chaque étudiant a fait :
=QUERY(Papers!A1:G11, "select count(G) pivot A")
Google Sheets QUERY - Ordre par
Celui-ci est assez facile :) Il est utilisé pour trier le résultat par les valeurs de certaines colonnes.
Conseil : toutes les clauses précédentes sont facultatives lorsque vous utilisez commande par J'utilise sélectionnez pour retourner moins de colonnes à des fins de démonstration.
Revenons à mon tableau d'origine et trions les rapports par date de discours.
La prochaine formule QUERY de Google Sheets me permettra d'obtenir les colonnes A, B et C, mais en même temps, elle les triera par date dans la colonne B :
=QUERY(Papers!A1:G11, "select A,B,C order by B")
Limite
Et si je vous disais que vous n'êtes pas obligé d'intégrer chaque ligne dans le résultat ? Et si je vous disais que Google Sheets QUERY ne peut extraire qu'une certaine quantité des premières correspondances qu'il trouve ?
Eh bien, le limite Elle limite le nombre de lignes à retourner par le nombre donné.
Conseil. N'hésitez pas à utiliser limite sans autres clauses précédentes.
Cette formule affichera les 5 premières lignes où la colonne des notes contient une note (n'est pas vide) :
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 5")
Décalage
Cette clause est en quelque sorte opposée à la précédente. Alors que limite vous permet d'obtenir le nombre de lignes que vous avez spécifié, décalage les saute et récupère le reste.
Conseil. Décalage ne nécessite pas non plus d'autres clauses.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null offset 5")
Si vous essayez d'utiliser les deux limite et décalage il se produira ce qui suit :
- Décalage sautera des lignes au début.
- Limite retournera un nombre de lignes suivantes.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 3 offset 3")
Sur 11 lignes de données (la première est un en-tête et la fonction QUERY de Google Sheets le comprend très bien), offset ignore les 3 premières lignes. Limit renvoie les 3 lignes suivantes (en commençant par la 4ème) :
Google Sheets QUERY - Étiquette
Google Sheets QUERY étiquette vous permet de changer les noms d'en-tête des colonnes.
Conseil. Les autres clauses sont facultatives pour étiquette également.
Mettez le étiquette Si vous renommez plusieurs colonnes, séparez chaque nouvelle paire de colonnes par une virgule :
=QUERY(Papers!A1:G11, "select A,B,C label A 'Name', B 'Date'")
Format
Le site format permet de modifier le format de toutes les valeurs d'une colonne. Pour cela, vous avez besoin d'un modèle qui se trouve derrière le format souhaité.
Astuce : la clause de format peut également jouer en solo dans le QUERY de Google Sheets.
=QUERY(Papers!A1:G11, "select A,B,C limit 3 format B 'mm-dd, yyyy, ddd'")
Astuce. J'ai mentionné certains formats de date pour Google Sheets QUERY dans cet article de blog. D'autres formats peuvent être repris directement des feuilles de calcul : Format> ; Nombre> ; Autres formats> ; Format de nombre personnalisé .
Options
Celui-ci est utilisé pour définir certains paramètres supplémentaires pour les données de résultat.
Par exemple, une commande telle que sans_valeur retournera uniquement les cellules formatées.
Le moyen le plus rapide de construire des formules QUERY - Correspondances multiples Vlookup
Aussi puissante que soit la fonction QUERY de Google Sheets, sa prise en main peut nécessiter une courbe d'apprentissage. C'est une chose d'illustrer chaque clause séparément sur un petit tableau, et une toute autre d'essayer de tout construire correctement avec quelques clauses et un tableau beaucoup plus grand.
C'est pourquoi nous avons décidé d'habiller Google Sheets QUERY d'une interface conviviale et d'en faire un module complémentaire.
Pourquoi les VLOOKUP multiples sont plus efficaces que les formules ?
Eh bien, avec l'extension, il y a absolument pas besoin de :
- déterminer quelque chose à propos de ces clauses Il est très facile de créer de nombreuses conditions complexes dans le module complémentaire : autant que vous le souhaitez, malgré leur ordre, pour obtenir autant de correspondances que vous le souhaitez.
Note. Pour le moment, les clauses suivantes ont été intégrées à l'outil : sélectionner, où, limiter, et décalage Si votre tâche nécessite d'autres clauses, veuillez commenter ci-dessous - vous nous aiderez peut-être à nous améliorer ;)
- savoir comment saisir les opérateurs : il suffit de choisir celui qui se trouve dans une liste déroulante.
- réfléchir sur le bon moyen d'entrer la date et l'heure Le module complémentaire vous permet de les saisir comme vous le faisiez auparavant, en fonction de la langue de votre feuille de calcul.
Astuce : il y a toujours une astuce disponible dans l'outil avec des exemples de différents types de données.
En tant que bonus vous pourrez le faire :
- aperçu les deux et la formule
- faire ajustements rapides selon vos critères
- sélectionnez un place pour le résultat
- insérer le résultat est à la fois formule QUERY ou comme valeurs
Je ne plaisante pas, voyez par vous-même. Bien que ce GIF ait été accéléré, il m'a fallu moins d'une minute pour affiner tous les critères et obtenir le résultat :
Si vous êtes assez curieux, voici une vidéo détaillée montrant le fonctionnement de l'extension :
J'espère que vous donnerez une chance à ce module complémentaire et que vous l'obtiendrez sur Google Workspace Marketplace. Ne soyez pas timide et faites-nous part de vos commentaires, surtout s'il y a quelque chose que vous n'aimez pas.
N'hésitez pas non plus à consulter sa page de didacticiels ou sa page d'accueil.