Fonction FILTER d'Excel - filtrage dynamique avec des formules

  • Partage Ça
Michael Brown

Dans cette leçon rapide, vous apprendrez à filtrer dynamiquement dans Excel à l'aide de formules, par exemple pour filtrer les doublons, les cellules contenant un certain texte, avec des critères multiples, etc.

Comment filtrez-vous habituellement dans Excel ? La plupart du temps, en utilisant le filtre automatique et, dans des scénarios plus complexes, le filtre avancé. Bien que rapides et puissantes, ces méthodes présentent un inconvénient de taille : elles ne se mettent pas à jour automatiquement lorsque vos données changent, ce qui signifie que vous devez nettoyer et filtrer à nouveau. L'introduction de la fonction FILTER dans Excel 365 constitue une alternative longtemps attendue à la fonction de filtre automatique.Contrairement à eux, les formules Excel se recalculent automatiquement à chaque changement de feuille de calcul, de sorte que vous n'aurez à configurer votre filtre qu'une seule fois !

    Fonction FILTER d'Excel

    La fonction FILTRE d'Excel est utilisée pour filtrer une plage de données en fonction des critères que vous spécifiez.

    Cette fonction appartient à la catégorie des fonctions de tableaux dynamiques. Le résultat est un tableau de valeurs qui se déverse automatiquement dans une plage de cellules, à partir de la cellule où vous entrez une formule.

    La syntaxe de la fonction FILTER est la suivante :

    FILTER(tableau, include, [if_empty])

    Où :

    • Array (obligatoire) - la plage ou le tableau de valeurs que vous souhaitez filtrer.
    • Inclure (obligatoire) - les critères fournis sous forme de tableau booléen (valeurs VRAI et FAUX).

      Sa hauteur (lorsque les données sont en colonnes) ou sa largeur (lorsque les données sont en lignes) doit être égale à celle de l'objet tableau argument.

    • Si_vide (facultatif) - la valeur à renvoyer lorsqu'aucune entrée ne répond aux critères.

    La fonction FILTRE est uniquement disponible dans Excel pour Microsoft 365 et Excel 2021. Dans Excel 2019, Excel 2016 et les versions antérieures, elle n'est pas prise en charge.

    Formule Excel de base FILTER

    Pour commencer, examinons quelques cas très simples afin de mieux comprendre comment fonctionne une formule Excel pour filtrer les données.

    À partir de l'ensemble de données ci-dessous, supposons que vous souhaitiez extraire les enregistrements ayant une valeur spécifique dans le champ Groupe Pour ce faire, nous fournissons l'expression B2:B13="C" à la fonction inclure qui produira un tableau booléen requis, avec TRUE correspondant aux valeurs "C".

    =FILTER(A2:C13, B2:B13="C", "Aucun résultat")

    En pratique, il est plus pratique de saisir les critères dans une cellule distincte, par exemple F1, et d'utiliser une référence de cellule au lieu de coder en dur la valeur directement dans la formule :

    =FILTER(A2:C13, B2:B13=F1, "Aucun résultat")

    Contrairement à la fonction Filtre d'Excel, la fonction n'apporte aucune modification aux données d'origine. Elle extrait les enregistrements filtrés dans la plage dite de déversement (E4:G7 dans la capture d'écran ci-dessous), en commençant par la cellule où la formule est saisie :

    Si aucun enregistrement ne correspond aux critères spécifiés, la formule renvoie la valeur que vous avez placée dans le champ si_vide argument, "Aucun résultat" dans cet exemple :

    Si vous préférez ne rien retourner dans ce cas, alors fournissez une chaîne vide ("") pour le dernier argument :

    =FILTRE(A2:C13, B2:B13=F1, "")

    Si vos données sont organisées horizontalement de gauche à droite comme indiqué dans la capture d'écran ci-dessous, la fonction FILTER fonctionnera également très bien. Veillez simplement à définir des plages appropriées pour la fonction tableau et inclure de sorte que le tableau source et le tableau booléen aient la même largeur :

    =FILTER(B2:M4, B3:M3= B7, "Aucun résultat")

    Fonction FILTRE d'Excel - notes d'utilisation

    Pour filtrer efficacement dans Excel avec des formules, voici quelques points importants à prendre en compte :

    • La fonction FILTER répartit automatiquement les résultats verticalement ou horizontalement dans la feuille de calcul, selon l'organisation de vos données d'origine. Veillez donc à toujours avoir suffisamment de cellules vides en bas et à droite, sinon vous obtiendrez une erreur #SPILL.
    • Les résultats de la fonction FILTER d'Excel sont dynamiques, c'est-à-dire qu'ils se mettent à jour automatiquement lorsque les valeurs de l'ensemble de données d'origine changent. Toutefois, la plage fournie pour la fonction FILTER d'Excel n'a pas été modifiée. tableau n'est pas mis à jour lorsque de nouvelles entrées sont ajoutées aux données sources. Si vous souhaitez que l'argument tableau pour le redimensionner automatiquement, puis le convertir en tableau Excel et construire des formules avec des références structurées, ou créer une plage nommée dynamique.

    Comment filtrer dans Excel - exemples de formules

    Maintenant que vous savez comment fonctionne une formule de filtre Excel de base, il est temps de voir comment l'étendre pour résoudre des tâches plus complexes.

    Filtre à critères multiples (logique AND)

    Pour filtrer les données à l'aide de plusieurs critères, vous devez fournir deux expressions logiques ou plus pour le champ inclure argument :

    FILTRE(tableau, ( gamme1 = critères1 ) * ( gamme2 = critères2 ), "Aucun résultat")

    L'opération de multiplication traite les tableaux avec le Logique ET en s'assurant que seuls les enregistrements qui répondent tous les critères sont retournés. Techniquement, cela fonctionne de cette façon :

    Le résultat de chaque expression logique est un tableau de valeurs booléennes, où VRAI équivaut à 1 et FAUX à 0. Ensuite, les éléments de tous les tableaux situés aux mêmes positions sont multipliés. Comme la multiplication par zéro donne toujours zéro, seuls les éléments pour lesquels tous les critères sont VRAIS entrent dans le tableau résultant, et par conséquent seuls ces éléments sont extraits.

    Les exemples ci-dessous montrent cette formule générique en action.

    Exemple 1 : Filtrer plusieurs colonnes dans Excel

    En étendant un peu plus notre formule Excel FILTER de base, nous allons filtrer les données sur deux colonnes : Groupe (colonne B) et Gains (colonne C).

    Pour cela, nous avons mis en place les critères suivants : tapez le nom du groupe cible dans F2 ( critères1 ) et le nombre minimum requis de victoires en F3 ( critères2 ).

    Étant donné que nos données sources sont en A2:C13 ( tableau ), les groupes sont en B2:B13 ( gamme1 ) et les victoires sont en C2:C13 ( gamme2 ), la formule prend cette forme :

    =FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "Aucun résultat")

    Vous obtenez ainsi une liste des joueurs du groupe A qui ont obtenu 2 victoires ou plus :

    Exemple 2 : Filtrer les données entre les dates

    Tout d'abord, il convient de noter qu'il n'est pas possible de créer une formule générique pour filtrer par date dans Excel. Dans différentes situations, vous devrez construire les critères différemment, selon que vous souhaitez filtrer par une date spécifique, par mois ou par année. Le but de cet exemple est de démontrer l'approche générale.

    À notre échantillon de données, nous ajoutons une colonne supplémentaire contenant les dates du dernier gain (colonne D). Et maintenant, nous allons extraire les gains qui ont eu lieu au cours d'une période spécifique, disons entre le 17 et le 31 mai.

    Veuillez noter que dans ce cas, les deux critères s'appliquent à la même plage :

    =FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "Aucun résultat")

    Où G2 et G3 sont les dates entre lesquelles il faut filtrer.

    Filtre à critères multiples (logique OR)

    Pour extraire des données basées sur une condition OU multiple, vous utilisez également des expressions logiques comme dans les exemples précédents, mais au lieu de les multiplier, vous les additionnez. Lorsque les tableaux booléens renvoyés par les expressions sont additionnés, le tableau résultant aura 0 pour les entrées qui ne répondent à aucun critère (c'est-à-dire que tous les critères sont FAUX), et ces entrées seront filtrées. Les entrées pour lesquelles àau moins un critère est VRAI seront extraites.

    Voici la formule générique pour filtrer les colonnes avec la logique OR :

    FILTRE(tableau, ( gamme1 = critères1 ) + ( gamme2 = critères2 ), "Aucun résultat")

    A titre d'exemple, extrayons une liste de joueurs qui ont ceci ou cela nombre de victoires.

    En supposant que les données sources sont dans A2:C13, que les gains sont dans C2:C13, et que les numéros de gains qui nous intéressent sont dans F2 et F3, la formule serait la suivante :

    =FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "Aucun résultat")

    En conséquence, vous savez quels joueurs ont gagné toutes les parties (4) et lesquels n'en ont gagné aucune (0) :

    Filtrer en fonction de plusieurs critères AND et OR.

    Lorsque vous devez appliquer les deux types de critères, rappelez-vous cette règle simple : joignez les critères ET avec l'astérisque (*) et les critères OU avec le signe plus (+).

    Par exemple, pour obtenir une liste de joueurs qui ont un nombre donné de victoires (F2) ET qui appartiennent au groupe mentionné dans E2 OU E3, construisez la chaîne d'expressions logiques suivante :

    =FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "Aucun résultat")

    Et vous obtiendrez le résultat suivant :

    Comment filtrer les doublons dans Excel

    Lorsque vous travaillez avec de grandes feuilles de calcul ou que vous combinez des données provenant de différentes sources, il est souvent possible que des doublons se glissent.

    Si vous cherchez à filtrer doublons et extraire les éléments uniques, puis utiliser la fonction UNIQUE comme expliqué dans le tutoriel ci-dessus.

    Si votre objectif est de filtrer les doublons pour extraire les entrées qui apparaissent plus d'une fois, puis utilisez la fonction FILTER avec COUNTIFS.

    L'idée est d'obtenir le nombre d'occurrences pour tous les enregistrements et d'extraire celles qui sont supérieures à 1. Pour obtenir le nombre d'occurrences, vous fournissez la même plage pour chaque enregistrement critères_plage / critères une paire de COUNTIFS comme celui-ci :

    FILTRE( tableau , COUNTIFS( colonne 1 , colonne1, colonne2 , colonne2 )>1, "Aucun résultat")

    Par exemple, pour filtrer les lignes en double des données de A2:C20 en fonction des valeurs des 3 colonnes, voici la formule à utiliser :

    =FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "Aucun résultat")

    Astuce : pour filtrer les doublons en fonction des valeurs de l'onglet colonnes de clés pour inclure uniquement ces colonnes spécifiques dans la fonction COUNTIFS.

    Comment filtrer les blancs dans Excel

    Une formule permettant de filtrer les cellules vides est, en fait, une variante de la formule FILTRE d'Excel avec des critères ET multiples. Dans ce cas, nous vérifions si toutes les colonnes (ou certaines d'entre elles) contiennent des données et excluons les lignes où au moins une cellule est vide. Pour identifier les cellules non vides, vous utilisez l'opérateur "différent de" () associé à une chaîne vide ("") comme ceci :

    FILTRE(tableau, ( colonne 1 "") * ( colonne2 =""), "Aucun résultat")

    Avec les données source dans A2:C12, pour filtrer les lignes contenant une ou plusieurs cellules vides, la formule suivante est entrée dans E3 :

    Filtrer les cellules contenant un texte spécifique

    Pour extraire les cellules qui contiennent un certain texte, vous pouvez utiliser la fonction FILTRE conjointement avec la formule classique Si la cellule contient :

    FILTER(array, ISNUMBER(SEARCH("" texte ", gamme )), "Aucun résultat")

    Voici comment cela fonctionne :

    • La fonction SEARCH recherche une chaîne de texte spécifiée dans une plage donnée et renvoie soit un nombre (la position du premier caractère), soit une erreur #VALUE ! (texte non trouvé).
    • La fonction ISNUMBER convertit tous les chiffres en VRAI et les erreurs en FAUX et transmet le tableau booléen résultant à la fonction inclure de la fonction FILTER.

    Pour cet exemple, nous avons ajouté le Noms de famille des joueurs dans B2:B13, en tapant la partie du nom que nous voulons trouver dans G2, puis en utilisant la formule suivante pour filtrer les données :

    =FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "Aucun résultat")

    En conséquence, la formule récupère les deux noms de famille contenant "han" :

    Filtrer et calculer (Somme, Moyenne, Min, Max, etc.)

    La fonction FILTER d'Excel a ceci de particulier qu'elle peut non seulement extraire des valeurs assorties de conditions, mais aussi résumer les données filtrées. Pour cela, combinez FILTER avec des fonctions d'agrégation telles que SUM, AVERAGE, COUNT, MAX ou MIN.

    Par exemple, pour agréger les données d'un groupe spécifique dans F1, utilisez les formules suivantes :

    Total des victoires :

    =SOMME(FILTRE(C2:C13, B2:B13=F1, 0))

    Victoire moyenne :

    =MOYENNE(FILTRE(C2:C13, B2:B13=F1, 0))

    Gains maximums :

    =MAX(FILTRE(C2:C13, B2:B13=F1, 0))

    Gains minimums :

    =MIN(FILTRE(C2:C13, B2:B13=F1, 0))

    Veuillez prêter attention au fait que, dans toutes les formules, nous utilisons le zéro pour le si_vide La fourniture d'un texte tel que "Aucun résultat" entraînerait une erreur #VALUE, ce qui est évidemment la dernière chose que vous souhaitez :)

    Formule de FILTRE sensible à la casse

    Une formule FILTER standard d'Excel n'est pas sensible à la casse, c'est-à-dire qu'elle ne fait aucune distinction entre les caractères minuscules et majuscules. Pour distinguer la casse du texte, immergez la fonction EXACT dans le fichier inclure Ceci obligera FILTER à effectuer un test logique en respectant la casse :

    FILTRE(tableau, EXACT( gamme , critères ), "Aucun résultat")

    Supposons que vous ayez les deux groupes A et a Pour ce faire, utilisez la formule suivante, où A2:C13 est la donnée source et B2:B13 sont les groupes à filtrer :

    =FILTER(A2:C13, EXACT(B2:B13, "a"), "Aucun résultat")

    Comme d'habitude, vous pouvez saisir le groupe cible dans une cellule prédéfinie, par exemple F1, et utiliser cette référence de cellule au lieu du texte codé en dur :

    =FILTER(A2:C13, EXACT(B2:B13, F1), "Aucun résultat")

    Comment filtrer les données et ne renvoyer que des colonnes spécifiques ?

    Dans la plupart des cas, les utilisateurs d'Excel souhaitent filtrer toutes les colonnes à l'aide d'une seule formule. Mais si votre tableau source contient des dizaines, voire des centaines de colonnes, vous souhaiterez certainement limiter les résultats à quelques-unes des plus importantes.

    Exemple 1 : Filtrer certaines colonnes adjacentes

    Dans le cas où vous souhaitez que certaines colonnes voisines apparaissent dans le résultat d'un FILTRE, n'incluez que ces colonnes dans le fichier tableau car c'est cet argument qui détermine les colonnes à retourner.

    Dans l'exemple de la formule FILTER de base, supposons que vous souhaitiez retourner les 2 premières colonnes ( Nom et Groupe ). Ainsi, vous fournissez A2:B13 pour l'élément tableau argument :

    =FILTER(A2:B13, B2:B13=F1, "Aucun résultat")

    Comme résultat, nous obtenons une liste de participants du groupe cible défini dans F1 :

    Exemple 2 : Filtrer les colonnes non adjacentes

    Pour que la fonction FILTER renvoie des colonnes non contiguës, utilisez cette astuce :

    1. Réaliser une formule de FILTRE avec la ou les conditions souhaitées en utilisant la totalité du tableau pour tableau .
    2. Emboîtez la formule ci-dessus à l'intérieur d'une autre fonction FILTER. Pour configurer la fonction "wrapper", utilisez une constante de tableau de valeurs VRAIES et FAUX ou de 1 et 0 pour la fonction FILTER. inclure où VRAI (1) indique les colonnes à conserver et FAUX (0) indique les colonnes à exclure.

    Par exemple, pour renvoyer uniquement Noms (1ère colonne) et Gains (3e colonne), nous utilisons {1,0,1} ou {TRUE,FALSE,TRUE} pour le champ inclure de la fonction FILTER externe :

    =FILTRE(FILTRE(A2:C13, B2:B13=F1), {1,0,1})

    Ou

    =FILTRE(FILTER(A2:C13, B2:B13=F1), {VRAI,FAUX,VRAI})

    Comment limiter le nombre de lignes renvoyées par la fonction FILTER ?

    Si votre formule FILTER trouve un grand nombre de résultats, mais que votre feuille de calcul a un espace limité et que vous ne pouvez pas supprimer les données ci-dessous, vous pouvez limiter le nombre de lignes que la fonction FILTER renvoie.

    Voyons comment cela fonctionne sur un exemple d'une formule simple qui attire les joueurs du groupe cible en F1 :

    =FILTRE(A2:C13, B2:B13=F1)

    La formule ci-dessus affiche tous les enregistrements qu'elle trouve, soit 4 lignes dans notre cas. Mais supposons que vous n'ayez de la place que pour deux enregistrements. Pour afficher uniquement les deux premières lignes trouvées, voici ce que vous devez faire :

    • Introduisez la formule FILTER dans la formule tableau de la fonction INDEX.
    • Pour le numéro de rang de l'argument INDEX, utilisez une constante de tableau verticale comme {1;2}. Elle détermine le nombre de lignes à retourner (2 dans notre cas).
    • Pour le numéro de colonne utilisez une constante de tableau horizontale comme {1,2,3}, qui spécifie les colonnes à retourner (les 3 premières colonnes dans cet exemple).
    • Pour prendre en charge les erreurs éventuelles lorsqu'aucune donnée correspondant à vos critères n'est trouvée, vous pouvez envelopper votre formule dans la fonction IFERROR.

    La formule complète prend cette forme :

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "Aucun résultat")

    Lorsque vous travaillez avec de grands tableaux, l'écriture manuelle des constantes de tableau peut s'avérer fastidieuse. Pas de problème, la fonction SEQUENCE peut générer automatiquement les numéros séquentiels pour vous :

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "No result")

    La première SEQUENCE génère un tableau vertical contenant autant de numéros séquentiels que spécifié dans le premier (et seul) argument. La seconde SEQUENCE utilise la fonction COLUMNS pour compter le nombre de colonnes dans le jeu de données et produit un tableau horizontal équivalent.

    Conseil. Pour renvoyer les données de colonnes spécifiques et non pas toutes les colonnes, dans la constante horizontale du tableau que vous utilisez pour le fichier numéro de colonne Par exemple, pour extraire les données des 1ère et 3ème colonnes, utilisez {1,3}.

    La fonction FILTRE d'Excel ne fonctionne pas

    Lorsque votre formule FILTER Excel donne lieu à une erreur, il s'agit très probablement de l'une des situations suivantes :

    Erreur #CALC !

    Se produit si l'option si_vide est omis, et aucun résultat répondant aux critères n'est trouvé. La raison en est qu'actuellement Excel ne supporte pas les tableaux vides. Pour éviter de telles erreurs, assurez-vous de toujours définir l'argument si_vide dans vos formules.

    Erreur #VALEUR

    Se produit lorsque le tableau et inclure argument ont des dimensions incompatibles.

    #N/A, #VALUE, etc.

    Différentes erreurs peuvent se produire si une valeur dans le inclure est une erreur ou ne peut être converti en une valeur booléenne.

    #NAME erreur

    Cela se produit lorsque vous essayez d'utiliser FILTER dans une ancienne version d'Excel. N'oubliez pas qu'il s'agit d'une nouvelle fonction, qui n'est disponible que dans Office 365 et Excel 2021.

    Dans le nouvel Excel, une erreur #NAME se produit si vous avez accidentellement mal orthographié le nom de la fonction.

    #SPILL erreur

    Le plus souvent, cette erreur se produit si une ou plusieurs cellules de la plage de déversement ne sont pas complètement vides. Pour la corriger, il suffit d'effacer ou de supprimer les cellules non vides. Pour étudier et résoudre les autres cas, veuillez consulter l'erreur #SPILL ! dans Excel : ce qu'elle signifie et comment la corriger.

    #REF ! erreur

    Se produit lorsqu'une formule FILTER est utilisée entre différents classeurs, et que le classeur source est fermé.

    Voilà comment filer des données dans Excel de manière dynamique. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

    Télécharger le cahier d'exercices

    Filtrer dans Excel avec des formules (fichier .xlsx)

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.