L'art de la soustraction de listes sur Excel
L'art de la soustraction de listes sur Excel
La Formule pour "Ceux qui restent" (en B12) :
Pour afficher tous les employés dont la date est différente de celle en A11, on utilise l'opérateur <> (différent de) :
=UNIQUE(FILTRE(Liste_Paie_Personel[ID et Nom et Prenom]; Liste_Paie_Personel[Date_Conv]<>A11; "Tous les employés sont traités")) le problème ici je veux qu'elle compare avec la liste qui se trouve dans la colonne A pour qu'il me donne les employés qui reste pour la date A11 il me redonne tout alors qu'il doit me donner les employer qui reste
=> C'est un problème classique de logique de filtrage. Votre formule actuelle (<>A11) dit à Excel : "Montre-moi tous les employés qui ont une date différente de A11 dans TOUT le tableau historique".
Comme votre tableau Liste_Paie_Personel contient probablement les archives des mois précédents (janvier, décembre, etc.), Excel vous ressort tout le monde, car leur date historique est effectivement différente de A11.
Ce que vous voulez réellement, c'est une comparaison entre deux listes :
La liste globale de tous vos employés (votre base de référence).
La liste de ceux qui ont déjà un enregistrement à la date
A11.
1. La Formule de "Soustraction" (Ceux qui manquent)
Pour afficher les employés qui ne sont pas encore dans la liste de la date A11, utilisez cette formule (en supposant que votre liste globale d'employés est dans un tableau nommé Tbl_Personnel) :
=FILTRE(Liste_Paie_Personel[ID et Nom et Prenom];
NB.SI(A12#; Liste_Paie_Personel[ID et Nom et Prenom]=0;
"Tous les employés sont traités")
Pourquoi cette formule est la bonne ?
A12#: Le symbole#indique à Excel de regarder toute la liste dynamique qui commence en A12 (ceux qui sont déjà faits).NB.SI(...)=0: On demande à Excel de compter combien de fois l'employé apparaît dans la liste A12. S'il apparaît 0 fois, c'est qu'il reste à traiter !
L'art de la soustraction de listes sur Excel
Voici comment expliquer ce concept avancé de "Reste à faire" (To-Do List automatique).
Titre : Comment afficher les employés manquants pour une période donnée ?
Dans la gestion administrative, le plus difficile n'est pas de voir ce qu'on a fait, mais de voir ce qu'on a oublié de faire. Si vous avez une liste d'employés enregistrés pour le mois de février en colonne A, comment obtenir automatiquement en colonne B la liste de ceux qui manquent à l'appel ?
L'erreur à éviter
Utiliser le critère "Différent de la date" (<>A11) ne fonctionne pas si vous avez des archives. Excel vous redonnera les noms des mois précédents. Il ne faut pas filtrer par date, mais comparer deux listes.
La logique du "Compte à Zéro"
La solution repose sur la fonction NB.SI.
Nous prenons la liste de tous les employés de l'entreprise.
Nous demandons à Excel de vérifier si chaque nom existe déjà dans la liste des bulletins créés (colonne A).
Si le résultat est zéro, cela signifie que l'employé n'a pas encore son bulletin. Excel l'affiche alors en colonne B.
Les avantages de cette méthode
Automatique : Dès que vous enregistrez un nouveau bulletin en colonne A, le nom disparaît instantanément de la colonne B.
Visuel : Vous avez sous les yeux votre charge de travail restante.
Zéro oubli : Tant que la colonne B n'affiche pas "Tous les employés sont traités", votre travail n'est pas fini !
💡 Conseil technique
Pour que cela fonctionne, assurez-vous d'avoir une liste de référence (votre liste d'ID/Noms fixe) dans un tableau séparé. C'est cette liste qui servira de base pour savoir qui "devrait" être présent à la date A11.
Ce la ça marche mais il me répète les id
=FILTRE(Liste_Paie_Personel[ID et Nom et Prenom]; NB.SI(A12#; Liste_Paie_Personel[ID et Nom et Prenom]=0;"Tous les employés sont traités")
=> Le problème vient du fait que votre tableau Liste_Paie_Personel est une base de données historique : un même employé y apparaît plusieurs fois (une ligne pour janvier, une pour février, etc.).
Même si vous filtrez ceux qui ne sont pas en A12, Excel trouve toutes les occurrences passées de l'employé dans le tableau et les affiche. Pour corriger cela, il suffit d'imbriquer votre formule dans la fonction UNIQUE.
🛠️ La Formule Corrigée (Sans doublons)
=UNIQUE(FILTRE(Liste_Paie_Personel[ID et Nom et Prenom];
NB.SI(A12#; Liste_Paie_Personel[ID et Nom et Prenom])=0;
"Tous les employés sont traités"))
📝 Nettoyer vos listes dynamiques avec UNIQUE"
Pourquoi ma liste de "Reste à faire" affiche-t-elle plusieurs fois le même nom ?
Vous avez mis en place un système de comparaison de listes pour voir quels employés n'ont pas encore leur bulletin de paie. La logique est bonne, mais un bug visuel apparaît : certains noms s'affichent 5 ou 10 fois à la suite.
L'explication : La mémoire du tableau
Votre tableau Liste_Paie_Personel n'est pas une simple liste de noms, c'est un historique.
Si "MRAOUINE ZINA" travaille chez vous depuis 6 mois, elle a 6 lignes dans le tableau.
Quand vous demandez à Excel : "Montre-moi qui n'est pas dans la liste A12", il trouve les 6 lignes de Zina et les affiche toutes.
La Solution : La fonction UNIQUE
La fonction UNIQUE agit comme un filtre de sortie. Elle examine le résultat final produit par votre formule FILTRE et supprime instantanément toutes les répétitions.
Avant : Zina, Zina, Zina, Talbaki, Talbaki...
Après : Zina, Talbaki.
Pourquoi c'est indispensable pour un tableau de bord ?
Lisibilité : Votre liste de rappel (To-Do List) est compacte et claire.
Précision : Vous voyez exactement le nombre d'individus qu'il vous reste à traiter, et non le nombre de lignes historiques.
Professionnalisme : Votre interface de gestion ressemble à un véritable logiciel dédié où chaque information est unique et pertinente.
💡 Conseil de l'expert :
Si votre liste affiche encore des noms qui vous semblent identiques mais qu'Excel ne fusionne pas, vérifiez s'il n'y a pas un espace vide caché à la fin d'un nom dans votre base de données. Pour Excel, "ZINA" et "ZINA " sont deux personnes différentes ! Vous pouvez utiliser la fonction SUPPRESPACE à l'intérieur de la formule pour régler ce problème définitivement.
Commentaires
Enregistrer un commentaire