Supprimer doublons sur 2 colonnes et ajouter 2 conditions suppl.
laeti1012
Messages postés
8
Statut
Membre
-
via55 Messages postés 14730 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14730 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
A voir également:
- Supprimer doublons sur 2 colonnes et ajouter 2 conditions suppl.
- Supprimer rond bleu whatsapp - Guide
- Faire 2 colonnes sur word - Guide
- Comment supprimer une page sur word - Guide
- 2 ecran pc - Guide
- Whatsapp 2 - Guide
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
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
Tout d'abord, merci beaucoup pour votre réponse rapide!
Malheureusement, cela ne fonctionne pas... Mais je me suis sûrement mal exprimé, désolé...
Je pourrais vous mettre un exemple du fichier, mais je ne sais pas comment faire... (vraiment debutante dans le forum...).
Tu vas sur le site cjoint.com, tu telecharges ton fichier, tu vas en bas de la page faire créer un lien, une fois le lien crée tu fais clic droit sur ce lien et tu le copies puis tu reviens ici le coller dans ton prochain message
Dans l'attente..
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.
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
MERCI 1000 FOIS Via55 pour votre aide!!