Excel 365 : Fonction FILTRE – Filtrer des Données Dynamiquement avec un ou Plusieurs Critères

Parmi les nouvelles fonctions dynamiques disponibles avec Excel 365, on trouve la fonction FILTRE. C’est une révolution ! Je l’utilise personnellement dans presque tous mes Dashboards Excel tellement elle est pratique.

La Fonction FILTRE permet de retourner un ensemble de lignes (ou colonnes) qui remplissent une ou plusieurs conditions données. Nous allons voir comment l’utiliser.

Présentation de la Fonction FILTRE

La fonction FILTRE prend 3 arguments et se présente sous la forme :

=FILTRE(Tableau; Inclure; [Si_Vide])

Le premier argument « Tableau » correspond à la plage de cellules pour laquelle on souhaite retourner les données filtrées. Elle peut être composée d’une colonnes et de plusieurs lignes, d’une ligne et de plusieurs colonnes, ou de plusieurs lignes et plusieurs colonnes (On peut aussi avoir une ligne et une colonne mais l’intérêt est limité…).

Le deuxième argument « Inclure » doit représenter un tableau de booléen « VRAI » ou « FAUX », on peut utiliser directement un tableau contenant ces valeurs booléennes, mais aussi le construire au sein via une formule conditionnelle directement dans la fonction FILTRE (ce que je fais la plupart du temps pour éviter d’avoir une ligne/colonne uniquement pour cela). Ce tableau de booléen « Inclure » ne doit contenir qu’une seule colonne et autant de lignes que dans notre argument « Tableau » si l’on veut filtrer des lignes en fonction d’une condition sur une colonne. Ou une seule ligne et autant de colonnes que dans notre argument « Tableau » si l’on souhaite filtrer des colonnes en fonction d’une condition sur une ligne (Ce sera plus clair dans les exemples à suivre).

Et le troisième et dernier argument « Si_Vide » correspond à ce que l’on souhaite retourner si la ou les conditions de « Inclure » ne sont pas remplies – en d’autre terme si la fonction FILTRE ne trouve rien à retourner. Il peut s’agir d’une valeur fixe que l’on donne en argument, d’une autre fonction imbriquée, ou d’une plage de cellules que l’on donne en argument. Cet argument est optionnel, et si on ne le fournit pas, une erreur « #CALC! » sera retournée par défaut.

La fonction FILTRE est dynamique et renverra en résultat une plage de données dynamique (si « Si_Vide » n’est pas appliqué). Le résultat se mettra à jour automatiquement dès lors que l’argument de condition est modifié, ce qui se marie assez bien avec les listes déroulantes.

Passons maintenant aux exemples pour clarifier les cas d’utilisation.

Filtrer des Données selon une Seule Condition

Obtenir des Lignes de Données selon un Critère

Prenons l’exemple d’un tableau de données avec 4 colonnes, chaque ligne correspond à une transaction effectuée par nos clients dans une devise monétaire donnée.

On souhaite filtrer l’ensemble de ces données pour récupérer uniquement les transactions dans une « Devise » particulière. On cherchera ci-dessous à obtenir la liste des transactions en « EUR ».

On applique donc la fonction FILTRE sur l’ensemble de notre table de donnée, avec une condition basée sur la colonne « Devise » qui doit correspondre au critère « EUR » (Fourni en cellule G1).

La fonction nous retourne bien l’ensemble des lignes de transactions en « EUR ».

Il n’est pas obligatoire que la colonne sur laquelle on base notre condition fasse partie du « Tableau » de données initial. Nous pouvons tout à fait filtrer sur une autre colonne, tant que celle-ci fait la même taille (nombre de lignes) que notre « Tableau ».

Avec le même exemple, je ne souhaite obtenir que les « ID Transaction » et les « ID Client » pour lesquelles la « Devise » est « EUR ».

Les deux colonnes sont bien retournées par la fonction, sans que la colonne « Devise » en fasse nécessairement partie.

Obtenir des Colonnes de Données selon un Critère

Nous allons maintenant transposer la table de données précédente pour démontrer un cas d’utilisation de la fonction FILTRE pour obtenir un ensemble de colonnes selon un critère donné (J’utilise moins souvent ce format de données initiales, distribuées sur les colonnes, et également moins souvent la fonction FILTRE de cette façon… Si vous avez de meilleurs cas d’utilisation pour illustrer, je suis preneur.)

On a donc ici notre même tableau de données, et l’on souhaite uniquement retrouver l’ensemble des colonnes qui ont pour devise « EUR ».

On pourrait aussi imaginer le cas suivant, bien que d’autres méthodes pourraient être plus intuitives pour obtenir un même résultat. Disons ici que nous souhaitons retourner uniquement l’ensemble d’une colonne donnée. On utilise alors comme plage de conditions les intitulés de colonnes sur la ligne 1 pour trouver la colonne « Devise », et la fonction FILTRE nous renvoie l’ensemble des données dans cette colonne.

Par ailleurs, notons que là aussi, la ligne de donnée sur laquelle on applique notre condition ne doit pas forcément faire partie du « Tableau » initial, tant que la taille (ici, nombre de colonnes) est identique.

Nous allons maintenant voir comment appliquer plusieurs conditions.

Filtrer des Données selon Plusieurs Conditions

Que ce soit pour récupérer des lignes ou des colonnes, ou avec des lignes/colonnes de conditions incluses ou non dans le résultat final, le principe reste le même.

Il suffit de faire varier le deuxième argument « Inclure » en appliquant l’algèbre conditionnelle des booléens.

Nous allons reprendre le même exemple, mais cette fois on souhaite filtrer notre table de données en fonction de la « Devise » et de « ID Client ». On veut retrouver les transactions du client « 2 » en « GBP ».

On utilise l’algèbre conditionnelle ici dans notre deuxième argument « Inclure ». Sachant que « VRAI » vaut « 1 » et « FAUX » vaut « 0 », alors on multiplie les conditions entre elles ligne par ligne, si les deux conditions sont « VRAI » on obtiendra « 1 » donc « VRAI », et ce seront uniquement les lignes correspondantes qui seront retournées.