Recherches et filtres : l'étape suivante
Vous savez additionner, calculer une moyenne, compter. Vous savez écrire un IF basique. Cela couvre une ligne de données à la fois — mais la plupart des vraies feuilles de calcul consistent à relier deux tableaux, ou à extraire une portion d'un ensemble bien plus grand. C'est l'objet de ce guide.
Pourquoi SUM et IF ne suffisent pas
Un budget avec une seule catégorie, c'est simple. Un budget avec une feuille « produits » et une feuille « commandes » séparée, où il faut récupérer le nom et le prix du produit dans la feuille des commandes, c'est un problème différent. Il faut une formule qui dit : trouve cette valeur ailleurs, et ramène la donnée qui l'accompagne. C'est une recherche.
XLOOKUP : la recherche moderne
XLOOKUP prend trois arguments essentiels : quoi chercher, où chercher, et quoi retourner.
=XLOOKUP(A2, Produits!A:A, Produits!B:B)
Cela signifie : prends la valeur de A2, trouve-la dans la colonne A de la feuille Produits, et retourne la valeur correspondante de la colonne B.
| A | B | |
|---|---|---|
| 1 | N° commande | Prix |
| 2 | SKU-104 | 12,50 |
| 3 | SKU-207 | 8,00 |
XLOOKUP fait une correspondance exacte par défaut, recherche dans n'importe quelle direction (de gauche à droite ou l'inverse, contrairement à son prédécesseur VLOOKUP), et accepte un quatrième argument optionnel pour ce qu'il faut afficher si rien n'est trouvé : =XLOOKUP(A2, Produits!A:A, Produits!B:B, "Introuvable").
VLOOKUP et INDEX/MATCH : ce que vous croiserez encore
Les anciennes feuilles de calcul — et beaucoup de nouvelles — utilisent plutôt VLOOKUP. Ça fonctionne, mais la colonne à retourner est comptée par position, pas par nom :
=VLOOKUP(A2, Produits!A:B, 2, FALSE)
Cela signifie « trouve A2 dans la première colonne de Produits!A:B, puis retourne la valeur 2 colonnes plus loin. » Ce 2 casse silencieusement si quelqu'un insère une colonne. L'autre pattern classique, INDEX combiné à MATCH, évite ce problème en séparant le « où » du « quoi » :
=INDEX(Produits!B:B, MATCH(A2, Produits!A:A, 0))
Pas besoin de mémoriser les trois — XLOOKUP couvre ce que font VLOOKUP et INDEX/MATCH, avec une syntaxe plus simple. Mais vous croiserez VLOOKUP et INDEX/MATCH dans les feuilles des autres, donc ça vaut le coup de reconnaître le pattern.
FILTER : extraire un sous-ensemble de lignes
FILTER retourne chaque ligne qui correspond à une condition, sous forme de plage dynamique — pas une seule cellule.
=FILTER(A2:C20, C2:C20 = "Alimentation")
| A | B | C | |
|---|---|---|---|
| 1 | Dépense | Montant | Catégorie |
| 2 | Courses | 64 | Alimentation |
| 3 | Bus | 45 | Transport |
| 4 | À emporter | 22 | Alimentation |
Modifiez les données sources et le résultat filtré se met à jour automatiquement — pas besoin de relancer ou de resélectionner manuellement. On peut empiler des conditions avec * (et) ou + (ou) : =FILTER(A2:C20, C2:C20="Alimentation", B2:B20>20) retourne uniquement les lignes Alimentation supérieures à 20.
QUERY : la puissance façon SQL pour les gros ensembles de données
QUERY est la fonction à utiliser quand FILTER commence à montrer ses limites — trier, grouper et agréger en une seule formule, grâce à un petit langage proche de SQL :
=QUERY(A2:C20, "SELECT C, SUM(B) WHERE C IS NOT NULL GROUP BY C ORDER BY SUM(B) DESC")
Cette seule ligne groupe chaque dépense par catégorie, additionne chaque groupe, et trie du plus grand au plus petit — l'équivalent d'un petit tableau croisé dynamique en une seule formule. La syntaxe demande de la pratique, mais elle s'adapte à des jeux de données où FILTER et SUMIF deviennent difficiles à gérer.
Mise en pratique : un projet de recherche à deux feuilles
- Créez une feuille
Produits: colonne A = référence, colonne B = nom, colonne C = prix. - Créez une feuille
Commandes: colonne A = référence commandée, colonne B = quantité. - Dans
Commandes!C2, récupérez le prix avec=XLOOKUP(A2, Produits!A:A, Produits!C:C). - Dans
Commandes!D2, calculez le total de la ligne :=B2*C2. - Dans une cellule récapitulative, additionnez le tout avec
=SUM(D:D), ou détaillez par produit avec=FILTER(A2:D20, A2:A20="SKU-104").
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Référence | Qté | Prix | Total |
| 2 | SKU-104 | 3 | 12,50 | 37,50 |
C'est le pattern central derrière la plupart des feuilles de reporting réelles : une feuille contient les données de référence, une autre les recherche et fait les calculs.
Pour aller plus loin
- Une fois QUERY maîtrisé, SPARKLINE et la mise en forme conditionnelle transforment ces chiffres en tableau de bord lisible — voir le guide de la mise en forme conditionnelle.
- Pour synchroniser des données entre fichiers séparés plutôt qu'entre feuilles d'un même fichier, regardez IMPORTRANGE.
- Lisez la comparaison XLOOKUP vs INDEX/MATCH pour approfondir le choix entre les deux.