Supprimer doublons sur 2 colonnes et ajouter 2 conditions suppl.
laeti1012
Messages postés
8
Statut
Membre
-
via55 Messages postés 14393 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14393 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Cela fait plusieurs heures que je me penche sur mon problème et je ne trouve pas de solution :/ je m'en remets donc à tous les fins connaisseurs d'excel!!:-)
J'ai un fichier qui comporte plusieurs colonnes:
A: Nom de l'employé
B: Prénom de l'employé
C: ...
D: Status de L'Enfant
Si l'employé a plusieurs enfants, il y aura plusieurs lignes (car 1 enfant, par ligne).
J'ai créé une formule qui m'indique le nombre de parents (en supprimant les doublons). ET j'ai également ajouté dans mon formule le point suivant: si L'Enfant n'est pas à l'école (donc on a un "-" ou "pour info" dans la colonne statut), alors il ne faut pas compter le parent.
Voici la formule: SI(SOMMEPROD(($A$2:$A2=A2)*($B$2:$B2=B2))>1,0,SI(OU($D2="-",$D2="For info"),0,1))
Cette formule fonctionne bien pour autant que si le parent a plusieurs enfants, il faut que le 1er enfant cité soit mis à la 1ère ligne.
Si le 1er enfant cité n'est pas dans une école, la formule va mettre 0 (ce qui est juste). Mais au 2ème enfant, elle continue de me mettre 0 car le nom de l'employé est cité au-dessus et le contrôle sommeprod dit qu'il y a doubloon.
Comment puis-je ajouter une formule (et non une macro, si possible) qui fait mettre 1 à la 2ème ligne de L'Enfant car lui est à l'école?
J'espère être clair...
Merci d'avance pour votre précieuse aide!!
Laeti
Cela fait plusieurs heures que je me penche sur mon problème et je ne trouve pas de solution :/ je m'en remets donc à tous les fins connaisseurs d'excel!!:-)
J'ai un fichier qui comporte plusieurs colonnes:
A: Nom de l'employé
B: Prénom de l'employé
C: ...
D: Status de L'Enfant
Si l'employé a plusieurs enfants, il y aura plusieurs lignes (car 1 enfant, par ligne).
J'ai créé une formule qui m'indique le nombre de parents (en supprimant les doublons). ET j'ai également ajouté dans mon formule le point suivant: si L'Enfant n'est pas à l'école (donc on a un "-" ou "pour info" dans la colonne statut), alors il ne faut pas compter le parent.
Voici la formule: SI(SOMMEPROD(($A$2:$A2=A2)*($B$2:$B2=B2))>1,0,SI(OU($D2="-",$D2="For info"),0,1))
Cette formule fonctionne bien pour autant que si le parent a plusieurs enfants, il faut que le 1er enfant cité soit mis à la 1ère ligne.
Si le 1er enfant cité n'est pas dans une école, la formule va mettre 0 (ce qui est juste). Mais au 2ème enfant, elle continue de me mettre 0 car le nom de l'employé est cité au-dessus et le contrôle sommeprod dit qu'il y a doubloon.
Comment puis-je ajouter une formule (et non une macro, si possible) qui fait mettre 1 à la 2ème ligne de L'Enfant car lui est à l'école?
J'espère être clair...
Merci d'avance pour votre précieuse aide!!
Laeti
1 réponse
-
Bonjour Laeti
Pas sûr d'avoir tout compris, mais s'il s'agit de ne mettre 1 que lorsque l'enfant va à l'école et que c'est le premier allant à l'école dans la liste (même s'il est en position 2 ou 3 ...) c'est sur le statut école qu'il faut baser ta formule.
En supposant par exemple qu'il y a dans ce cas School dans la colonne statut :
=SI(ET(D2="School";SOMMEPROD(($A$2:A2=A2)*($B$2:B2=B2)*($D$2:D2="School"))=1);1;0)
Cdlmnt
Via
-
-
-
Super merci pour l'explication.
Alors voici le fichier:
http://www.cjoint.com/c/FDmhKXTTiRG
Donc certains parents ont plusieurs enfants et ces-derniers peuvent être dans une école (il n'y a pas qu'une école dans laquelle L'Enfant peut aller) ou dans une école non couverte ou pas encore à l'école ("-").
J'aimerais connaître le nombre de parents qui ont des enfants à l'école (donc sont exclus ceux dont les enfants sont "-" ou dans une école non couverte).
Avec ma formule de comptage des parents, si le 1er enfant cité n'est par exemple pas à l'école, cela va me mettre 0, mais ca me mettra également 0 sur le 2ème enfant alors qu'il est à l'école.
J'espère être un peu plus claire. -
Bonjour laeti,
Oui avec le fichier c'est plus clair !
Alors en B2 mets la formule :
=SI(ET(F2<>"-";F2<>"Ecole non couverte";SOMMEPROD(($C$2:C2=C2)*($D$2:D2=D2)*($F$2:F2<>"-")*($F$2:F2<>"Ecole non couverte"))=1);1;0)
Mais si tu veux avoir directement le nombre de parents qui ont des enfants à l'école (en excluant les - et les Ecole non couverte) dans une cellule (sans avoir à rajouter ta colonne de comptage en B) tu peux mettre dans une cellule cette formule matricielle
=NB(1/FREQUENCE(SI((F2:F22<>"-")*(F2:F22<>"Ecole non couverte");EQUIV(C2:C22&D2:D22;C2:C22&D2:D22;0));LIGNE(INDIRECT("1:"&LIGNES(C2:C22)))))
qui doit être validée par CTRl+MAJ+Entrée (la formule se met alors automatiquement entre { } )
Comme une matricielle est gourmande en ressources il faut cerner les plages au lieu de l'appliquer sur une colonne entière, par ex ici F2:F22, le 22 à modifier dans ton fichier qui doit être plus long
Cdlmnt
Via -
-