FILTRE : extraire automatiquement les lignes selon l’intervalle de matricules.

 

FILTRE  : extraire automatiquement les lignes selon l’intervalle de matricules.


=FILTER(Liste_Paie_Personel;(Liste_Paie_Personel[Matricule] >=B1)*(Liste_Paie_Personel[Matricule] <=C1); "Aucun résultat")

il m'affiche #NOM?

Le message #NOM? signifie que Excel ne reconnaît pas la fonction ou un nom dans votre formule.
Dans votre cas, il y a 3 causes possibles (et comment corriger) :

1) Fonction en français : utilisez FILTRE (pas FILTER)

En Excel français, la fonction s’appelle FILTRE.
Essayez exactement :

=FILTRE(Liste_Paie_Personel ; (Liste_Paie_Personel[Matricule] >= B1) * (Liste_Paie_Personel[Matricule] <= C1) ; "Aucun résultat")

NB : il faut qu'il n'y pas une colonne vide  avant la colonne Matricule vous pouvez la mettre en fin du tableau pas au dĂ©but

2) Vérifier le nom du tableau et le nom de la colonne

L’erreur apparaĂ®t aussi si Excel ne trouve pas le nom Liste_Paie_Personel ou la colonne Matricule.

  • Cliquez dans votre source → onglet CrĂ©ation de tableau → regardez le Nom du tableau (par ex. Tableau1, T_Paie, etc.).
  • Regardez l’orthographe exacte de la colonne (espaces, majuscules, accents).
  • Ajustez la formule en consĂ©quence.

Exemples :

=FILTRE(T_Paie ; (T_Paie[Matricule] >= B1) * (T_Paie[Matricule] <= C1) ; "Aucun résultat")

ou

=FILTRE(Tableau1 ; (Tableau1[Matricule] >= B1) * (Tableau1[Matricule] <= C1) ; "Aucun résultat")

3) Si la colonne Matricule est au format texte

Si vos matricules sont stockés en texte, forcez la comparaison en nombre avec VALEUR() :

=FILTRE(Liste_Paie_Personel ; (VALEUR(Liste_Paie_Personel[Matricule]) >= B1) * (VALEUR(Liste_Paie_Personel[Matricule]) <= C1) ; "Aucun résultat")

Option pratique : un seul champ (si C1 est vide, prendre D1)

Si vous mettez un seul matricule (ex. B1=2, C1 vide), utilisez :

=TRIER(FILTRE(Liste_Paie_Personel[[Nom document]:[Lien]];(Liste_Paie_Personel[Matricule] >=SI(C1=""; D1; C1))*(Liste_Paie_Personel[Matricule] <=SI(D1=""; C1; D1))*(Liste_Paie_Personel[Matricule] <> "");
    "Aucun rĂ©sultat");
  7;
  VRAI)

  • C1 = 2 et D1 = 20 → 
  •  2 Ă  20
  • C1 = 2 et D1 vide → uniquement le matricule 2
  • C1 = 2 et D1 = 2 → uniquement le matricule 2


  • Si FILTRE n’existe pas dans votre Excel

    La fonction FILTRE n’est disponible que dans Microsoft 365 / Excel 2021+.
    Si vous avez Excel 2019/2016, vous pouvez :

    • Utiliser Filtre avancĂ© (DonnĂ©es → Trier & Filtrer → Filtrer avancĂ©) avec critères B1–C1
    • Ou passer par Power Query pour un filtrage dynamique
    • Ou (plus technique) une formule matricielle avec INDEX/SI/PETITE.VALEUR (je peux vous la fournir si besoin)

    Vérifications rapides

    1. Remplacez FILTER par FILTRE → la plupart du temps, ça règle #NOM?.
    2. Confirmez le vrai nom du tableau et de la colonne.
    3. Si besoin, entourez la colonne matricule de VALEUR().

    Solution : FILTRE + TRIER

    Voici votre formule améliorée, triée par le matricule en ordre croissant :

    =TRIER(
        FILTRE(Liste_Paie_Personel ; (Liste_Paie_Personel[Matricule] >= B1) * (Liste_Paie_Personel[Matricule] <= C1) ; "Aucun rĂ©sultat");
        1;
        VRAI

    )

    🔍 Explications

    • TRIER(plage ; colonne ; ordre)
    • 1 → on trie selon la 1ʳᵉ colonne du rĂ©sultat filtrĂ© (qui est votre colonne Matricule)
    • VRAI → tri croissant
    • FAUX → tri dĂ©croissant

    🔎 Si votre colonne Matricule n'est pas la première du tableau filtré

    Exemple :

    • Colonne 1 = Nom
    • Colonne 2 = PrĂ©nom
    • Colonne 3 = Matricule → alors il faut trier sur 3 :
    =TRIER(
        FILTRE(Liste_Paie_Personel ; (Liste_Paie_Personel[Matricule] >= B1) * (Liste_Paie_Personel[Matricule] <= C1) ; "Aucun rĂ©sultat");
        3;
        VRAI)
     

    formule, qui gère proprement les cas où C2 et/ou D2 sont vides et où les bornes sont inversées.


    =TRIER(FILTRE(Liste_Paie_Personel[[Nom document]:[Lien]];(Liste_Paie_Personel[Matricule] >=SI(C2="";D2;SI(ET(C2>D2;D2<>"");D2;C2)))*(Liste_Paie_Personel[Matricule] <=SI(D2=""; C2; SI(ET(D2<C2;C2<>"");C2;D2)))*(Liste_Paie_Personel[Matricule] <> ""); "Aucun résultat"); 6; VRAI)

    version plus robuste 

    Raisonnement terminĂ© dans 3 Ă©tapes Voici une version plus robuste et plus lisible de cette formule, qui gère proprement les cas oĂą C2 et/ou D2 sont vides et oĂą les bornes sont inversĂ©es. Elle conserve la logique : filtrer par Matricule compris entre deux bornes inclusives, puis trier le rĂ©sultat.

    ✅ RecommandĂ© (sans LET, compatible largement)
    Excel=TRIER(  FILTRE(    Liste_Paie_Personel[[Nom document]:[Lien]];    (Liste_Paie_Personel[Matricule]<>"") *    (Liste_Paie_Personel[Matricule] >= SI(ET(C2="";D2=""); -1E99; SI(C2=""; D2; SI(D2=""; C2; MIN(C2; D2))))) *    (Liste_Paie_Personel[Matricule] <= SI(ET(C2="";D2="");  1E99; SI(C2=""; D2; SI(D2=""; C2; MAX(C2; D2)))))    ;    "Aucun rĂ©sultat"  );  6; 1)Afficher plus de lignesAjouter Ă  la cellule
    Ce que cette version améliore


    Bornes intelligentes

    Si C2 et D2 sont vides → on prend tout (bornes −1E99 Ă  +1E99).
    Si une seule des deux cellules est renseignĂ©e → on utilise cette valeur comme seule borne (l’autre devient −/+∞).
    Si les deux sont renseignĂ©es mais inversĂ©es → on corrige automatiquement avec MIN/MAX.


    Lisibilité & stabilité

    Condition explicite sur Matricule non vide : (Liste_Paie_Personel[Matricule]<>"").
    Paramètre ordre de TRIER mis à 1 (croissant) plutôt que VRAI (plus clair et conforme à la doc).

    Points à vérifier dans votre fichier


    Indice de tri (6) : TRIER(...; 6; 1) signifie que vous triez selon la 6ᵉ colonne de la plage [[Nom document]:[Lien]].

    Assurez-vous que cette plage contient au moins 6 colonnes et que la 6ᵉ est bien la colonne voulue pour le tri.
    Sinon, ajustez le 6 au bon index relatif (1 = « Nom document », 2 = prochaine colonne, etc.).


    Type de Matricule : la comparaison suppose des valeurs numériques.

    Option si vous disposez de LET (Excel 365 moderne, nom de fonction LET en français)

    Si votre Excel supporte LET, voici une version plus courte et maintenable :

    Excel=LET(  bInf; SI(ET(C2="";D2=""); -1E99; SI(C2=""; D2; SI(D2=""; C2; MIN(C2; D2))));  bSup; SI(ET(C2="";D2="");  1E99; SI(C2=""; D2; SI(D2=""; C2; MAX(C2; D2))));  TRIER(    FILTRE(      Liste_Paie_Personel[[Nom document]:[Lien]];      (Liste_Paie_Personel[Matricule]<>"") *      (Liste_Paie_Personel[Matricule]>=bInf) *      (Liste_Paie_Personel[Matricule]<=bSup);      "Aucun rĂ©sultat"    );    7; 1  ))Afficher plus de lignesAjouter Ă  la cellule

    Pourquoi votre formule actuelle peut poser souci

    La logique de gestion des bornes via SI(ET(C2>D2;D2<>"");D2;C2) est difficile à lire et peut produire des bornes incohérentes selon les combinaisons (vides/inversées).
    Utiliser VRAI pour l’ordre dans TRIER fonctionne (coercition en 1), mais 1 est plus explicite.


    Petite question pour finaliser
    Sur quelle colonne voulez-vous trier exactement dans [[Nom document]:[Lien]] ? Si ce n’est pas la 7ᵉ, dites-moi le numĂ©ro (ou le nom de la colonne) et je vous renvoie la formule ajustĂ©e.
    Fournissez vos commentaires sur BizChat

    🔍 Que signifient les bornes -1E99 et +1E99 ?

    Ce sont simplement des valeurs très petites et très grandes, utilisĂ©es comme bornes par dĂ©faut lorsqu’aucune valeur n’est saisie dans C2 ou D2.

    • -1E99 = −10⁹⁹
      → un nombre extrĂŞmement faible (pratiquement « moins l’infini » pour Excel)

    • +1E99 = +10⁹⁹
      → un nombre extrĂŞmement Ă©levĂ© (pratiquement « plus l’infini » pour Excel)

    🎯 Pourquoi les utiliser ?

    Excel ne possède pas de fonctions « moins l’infini » ou « plus l’infini ».
    Donc on utilise un nombre tellement grand (ou petit) qu’il ne restreint jamais le filtre.

    Ainsi :

    • Si aucune borne n’est donnĂ©e, alors :
      • borne minimale = -1E99 → tout est ≥
      • borne maximale = +1E99 → tout est ≤
        👉 le filtre laisse passer tous les matricules

    C’est simplement un truc de formulation pour Ă©viter des SI compliquĂ©s, et rester certain que la condition reste vraie.

    đź§  Important

    Ces valeurs ne seront jamais affichées ni dans vos données, ni dans le résultat.
    Elles sont internes Ă  la formule pour rendre la logique propre et robuste.

    Formule finale TRIER/FILTRE avec le double intervalle ajouter intervalle date mais la colonne date est texte

    1) Ajoute la colonne de conversion dans ta table

    Dans la table Liste_Paie_Personel (le non du tableau), ajoute une nouvelle colonne (nom conseillé : Date_Conv) et mets-y cette formule dans la 1re ligne de la table :

    =DATE(DROITE([@Date];4)+0; SUPPRESPACE(SUBSTITUE(SUBSTITUE([@Date];"Mois";""); DROITE([@Date];4);""))+0; 1)

    2) Votre formule finale TRIER/FILTRE avec le double intervalle

    ✅ Cette version :

    • respecte tes bornes matricule C2–D2 (bornes intelligentes si vide),
    • accepte F2 et G2 en texte (ex. Mois 2 2026) ou vides,
    • inverse automatiquement si F2 > G2 (via MIN/MAX),
    • trie par la 6ᵉ colonne en ordre croissant.
    =TRIER(
      FILTRE(
        Liste_Paie_Personel[[Nom document]:[Lien]];
        (Liste_Paie_Personel[Matricule]<>"") *
        (Liste_Paie_Personel[Matricule] >= SI(ET(C2="";D2=""); -1E+99; SI(C2=""; D2; SI(D2=""; C2; MIN(C2; D2))))) *
        (Liste_Paie_Personel[Matricule] <= SI(ET(C2="";D2="");  1E+99; SI(C2=""; D2; SI(D2=""; C2; MAX(C2; D2))))) *
        (
          Liste_Paie_Personel[Date_Conv] >= MIN(
            SI(F2=""; DATE(1900;1;1);
              DATE(DROITE(F2;4)+0; SUPPRESPACE(SUBSTITUE(SUBSTITUE(F2;"Mois";""); DROITE(F2;4);""))+0; 1)
            );
            SI(G2=""; DATE(9999;12;31);
              DATE(DROITE(G2;4)+0; SUPPRESPACE(SUBSTITUE(SUBSTITUE(G2;"Mois";""); DROITE(G2;4);""))+0; 1)
            )
          )
        ) *
        (
          Liste_Paie_Personel[Date_Conv] <= MAX(
            SI(F2=""; DATE(1900;1;1);
              DATE(DROITE(F2;4)+0; SUPPRESPACE(SUBSTITUE(SUBSTITUE(F2;"Mois";""); DROITE(F2;4);""))+0; 1)
            );
            SI(G2=""; DATE(9999;12;31);
              DATE(DROITE(G2;4)+0; SUPPRESPACE(SUBSTITUE(SUBSTITUE(G2;"Mois";""); DROITE(G2;4);""))+0; 1)
            )
          )
        );
        "Aucun rĂ©sultat"
      );
      6; 1

    )

    Notes utiles

    • Saisie en F2 & G2 : tu peux mettre Mois 2 2026, Mois 12 2025, etc. (la formule les convertit).
    • Si F2 ou G2 est vide, la borne devient illimitĂ©e (1900 / 9999).
    • Si tu prĂ©fères saisir de vraies dates dans F2/G2 (ex. 01/02/2026), tu peux remplacer, dans la formule, chaque bloc SI(F2=""; …; DATE(DROITE(F2;4)…)) par SI(F2="";DATE(1900;1;1);F2) (idem pour G2).

    Commentaires

    Posts les plus consultés de ce blog

    đź›  Utilisation de CustomUIEditor pour Personnaliser le Ruban Excel

    đź—“️ Simulateur de CongĂ©s et Calendrier Collaboratif sous Google Sheets

    RECHERCHEX avec plusieurs conditions (ET / OU) – Guide complet et exemples