Si vous utilisez Google Sheets, vous connaissez probablement les filtres classiques ou les tableaux croisés dynamiques. Mais saviez-vous qu’il existe une fonction capable de remplacer presque toutes les autres ? La fonction QUERY est le couteau suisse de l’analyse de données.
Imaginez pouvoir extraire, filtrer et trier des milliers de lignes avec une seule ligne de code. C’est exactement ce que nous allons voir aujourd’hui.
Pourquoi la fonction QUERY est-elle indispensable ?
La fonction QUERY utilise un langage proche du SQL (Structured Query Language). Contrairement aux filtres manuels qui cachent des lignes, QUERY crée une nouvelle vue dynamique de vos données. Si vos données sources changent, votre tableau de bord QUERY se met à jour instantanément.
Les avantages clés :
- Rapidité : Une seule formule remplace des manipulations complexes.
- Propreté : Vous gardez vos données sources intactes sur un onglet et affichez les résultats sur un autre.
- Flexibilité : Vous pouvez trier, filtrer et effectuer des calculs (somme, moyenne) simultanément.
La structure de la formule
Pour utiliser cette fonction, la syntaxe est toujours la même :
=QUERY(données; "requête"; [en-tête])
- Données : La plage de cellules que vous voulez analyser (ex:
A1:E100). - Requête : Les instructions écrites en anglais (ex:
"SELECT A, B WHERE C > 100"). - En-tête : (Optionnel) Le nombre de lignes d’en-tête en haut de votre plage.
3 Exemples pratiques pour vos rapports
1. Sélectionner et filtrer des colonnes
Supposons que vous ayez une liste de ventes en colonne A (Date), B (Vendeur) et C (Montant). Vous ne voulez voir que les ventes de « Julie ».
La formule : =QUERY(A1:C100; "SELECT B, C WHERE B = 'Julie'"; 1)
2. Trier les données automatiquement
Vous voulez afficher tous vos produits (colonne A) et leurs prix (colonne B), du plus cher au moins cher.
La formule : =QUERY(A1:B100; "SELECT A, B ORDER BY B DESC"; 1)
3. Faire des calculs par catégorie
Vous souhaitez connaître le total des ventes par vendeur. C’est ici que la clause GROUP BY entre en jeu.
La formule : =QUERY(A1:C100; "SELECT B, SUM(C) GROUP BY B"; 1)
Conclusion : passez au niveau supérieur
La fonction QUERY peut sembler intimidante au début car elle utilise des termes anglais, mais une fois maîtrisée, elle vous fera gagner des heures de travail chaque semaine. C’est l’outil ultime pour passer du statut d’utilisateur « intermédiaire » à celui d’expert en data.
Foire aux questions sur la fonction query
1. Quelle est la différence entre la fonction query et un tableau croisé dynamique ?
Le tableau croisé dynamique est un outil visuel de « glisser-déposer » idéal pour une analyse rapide. La fonction query, quant à elle, est une formule textuelle qui permet de créer des rapports automatisés beaucoup plus flexibles. Elle est préférable lorsque vous souhaitez que vos données soient extraites vers un autre onglet sans manipulation manuelle répétitive.
2. Comment gérer les dates dans une clause where ?
C’est l’un des pièges classiques. Google Sheets nécessite un format spécifique pour reconnaître les dates dans une requête. Vous devez transformer la date au format yyyy-mm-dd et la précéder du mot-clé date. Exemple : WHERE A > date '2024-01-01'
3. Pourquoi ma formule query affiche-t-elle une erreur de valeur alors que mes données sont présentes ?
La fonction query exige que chaque colonne ne contienne qu’un seul type de données (soit du texte, soit des nombres). Si une colonne contient un mélange des deux, query risque de ne pas lire les données minoritaires, affichant ainsi un résultat vide ou une erreur. Assurez-vous que le formatage de vos colonnes est uniforme.
4. Peut-on utiliser query pour fusionner des données provenant de plusieurs feuilles ?
Oui, il suffit d’utiliser des accolades {} pour combiner les plages de données avant d’appliquer la requête. Exemple : =QUERY({Feuille1!A:C; Feuille2!A:C}; "SELECT * WHERE Col1 IS NOT NULL"). Notez qu’en combinant des plages, vous devez utiliser Col1, Col2 au lieu des lettres de colonnes classiques.
5. La fonction query est-elle sensible à la casse (majuscules et minuscules) ?
Oui, la clause WHERE est sensible à la casse. Si vous cherchez le mot « Julie », la requête WHERE B = 'julie' ne renverra aucun résultat. Pour contourner cela, vous pouvez utiliser les fonctions upper() ou lower() dans votre requête pour uniformiser la comparaison.