Comment éviter les doublons selon une liste
CarlGU
-
Vaucluse Messages postés 27336 Date d'inscription Statut Contributeur Dernière intervention -
Vaucluse Messages postés 27336 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous
j'ai cherché dans ce forum (et sur d'autres) une réponse à mon soucis mais je n'ai pas trouvé. Voici ce que je souhaite sous Excel 2003 :
Je souhaite gérer le planning de + 500 agents. Dans une colonne (qui correspond à un jour travaillé), je dois saisir un code par agent (1 agent = 1 ligne donc + 500 lignes) en fonction du travail qu'il aura à effectuer dans la journée. Avec 500 lignes, je peux resaisir un code déjà saisie : l'erreur est humaine.
Je souhaite éviter la saisie de certains codes (par exemple, le code CH4 qui correspond à l'utilisateur du chariot n°4 car il ne peut pas y avoir 2 agents sur un même chariot) mais permettre l'utilisation de certains autres (par exemple, le code CP qui correspond aux congés payés car je peux avoir plusieurs agents en congé le même jour).
Je ne peux pas utiliser une MFC car il ne fait pas la différence entre CH4 et CP et donc quel que soit le code saisie, la case devient rouge si le code se reproduit. J'ai également utilisé la fonction NB.SI mais dès que je saisie le 1er code, il me renvoit l'erreur comme quoi le code existe déjà (ce qui correspond à mon message d'avertissement) alors que je le saisie pour la 1ere fois. J'ai créé une liste avec les codes qui ne doivent pas être répété mais impossible de faire appel à cette liste dans une fonction SI ou NB.SI ou SOMMEPROD, la réponse est toujours #VALEUR.
Bref, je tourne en rond. Merci de vos lumières.
Carl
j'ai cherché dans ce forum (et sur d'autres) une réponse à mon soucis mais je n'ai pas trouvé. Voici ce que je souhaite sous Excel 2003 :
Je souhaite gérer le planning de + 500 agents. Dans une colonne (qui correspond à un jour travaillé), je dois saisir un code par agent (1 agent = 1 ligne donc + 500 lignes) en fonction du travail qu'il aura à effectuer dans la journée. Avec 500 lignes, je peux resaisir un code déjà saisie : l'erreur est humaine.
Je souhaite éviter la saisie de certains codes (par exemple, le code CH4 qui correspond à l'utilisateur du chariot n°4 car il ne peut pas y avoir 2 agents sur un même chariot) mais permettre l'utilisation de certains autres (par exemple, le code CP qui correspond aux congés payés car je peux avoir plusieurs agents en congé le même jour).
Je ne peux pas utiliser une MFC car il ne fait pas la différence entre CH4 et CP et donc quel que soit le code saisie, la case devient rouge si le code se reproduit. J'ai également utilisé la fonction NB.SI mais dès que je saisie le 1er code, il me renvoit l'erreur comme quoi le code existe déjà (ce qui correspond à mon message d'avertissement) alors que je le saisie pour la 1ere fois. J'ai créé une liste avec les codes qui ne doivent pas être répété mais impossible de faire appel à cette liste dans une fonction SI ou NB.SI ou SOMMEPROD, la réponse est toujours #VALEUR.
Bref, je tourne en rond. Merci de vos lumières.
Carl
A voir également:
- Comment éviter les doublons selon une liste
- Liste déroulante excel - Guide
- Doublons photos - Guide
- Comment éviter les pubs sur youtube - Accueil - Streaming
- Liste des sites internet à éviter - Guide
- Liste code ascii - Guide
4 réponses
Bonjour
il aurais été intèressant de savoir quelles formules de MFC vous utilisez, car il n'y a pas de raison que cela ne fonctionne pas, de même que pour la validation.
Cette formule, à partir de A1:
=ET(A1<>"CP";NB.SI($A$1:$A$500;A1)>1)
pour la MFC vous mettra les deux cellules identiques au format dés que vous aurez effectué la 2° entrée, sauf pour celles dont le code et CP
idem pour un message de validation personalisée.
vous pouvez rajoutez des condtions dans le ET si vous avez plusiers codes.
Vous pouvez aussi, si vous avez beaucoup de code à autoriser:
1°) faire une liste des codes autorisés
2°)la nommer: LISTE pour l'exemple
3°) utiliser la formule à partir de A1:
=ET(NB.SI(LISTE;A1)=0;NB.SI($A$1:$A$100;A1)>1)
qui affichera tous les doublons en A sauf ceux des codes autorisés
Pour que l'on puisse vous aider, dites nous ce que vous avez adopté comme formule.
Crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
il aurais été intèressant de savoir quelles formules de MFC vous utilisez, car il n'y a pas de raison que cela ne fonctionne pas, de même que pour la validation.
Cette formule, à partir de A1:
=ET(A1<>"CP";NB.SI($A$1:$A$500;A1)>1)
pour la MFC vous mettra les deux cellules identiques au format dés que vous aurez effectué la 2° entrée, sauf pour celles dont le code et CP
idem pour un message de validation personalisée.
vous pouvez rajoutez des condtions dans le ET si vous avez plusiers codes.
Vous pouvez aussi, si vous avez beaucoup de code à autoriser:
1°) faire une liste des codes autorisés
2°)la nommer: LISTE pour l'exemple
3°) utiliser la formule à partir de A1:
=ET(NB.SI(LISTE;A1)=0;NB.SI($A$1:$A$100;A1)>1)
qui affichera tous les doublons en A sauf ceux des codes autorisés
Pour que l'on puisse vous aider, dites nous ce que vous avez adopté comme formule.
Crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
Bonjour,
Excel je ne le trouve pas adapté pour certains problèmes de planification.
essaie experts planning c'est un annuaire en ligne avec des liens, photos, diapos,...
J'espère t'avoir donné unepiste
Tiens nous au courant
cordialement
Excel je ne le trouve pas adapté pour certains problèmes de planification.
essaie experts planning c'est un annuaire en ligne avec des liens, photos, diapos,...
J'espère t'avoir donné unepiste
Tiens nous au courant
cordialement
Et avec la mise en forme automatique ? Il n'y a pas moyen de faire apparaître en rouge les entrées qui sont des doublons et sont différents de CP ?
Cela est très facile sur Excel 2007, mais sur 2003, j'imagine qu'un truc du genre :
=NON(ESTERREUR(RECHERCHEV(A1;A1:A500;1;FAUX)))
doit pouvoir fonctionner...
Cela est très facile sur Excel 2007, mais sur 2003, j'imagine qu'un truc du genre :
=NON(ESTERREUR(RECHERCHEV(A1;A1:A500;1;FAUX)))
doit pouvoir fonctionner...
Désolé de ne pas avoir répondu plus tôt mais élections oblige, j'étais occupé ailleurs.
Je te remercie pour ta réponse et j'ai fait avec tes solutions. Voici le résultat adopté :
D'abord pour répondre à Identifiant-comment, je suis obligé d'utiliser Excel car j'ai des calculs de taux d'occupation de certains codes ainsi que des tris, des filtres élaborés et des Tableaux Croisés Dynamiques créés à partir de ces données.
Ensuite, Vaucluse, j'ai suivi tes conseils :
1°) création d'une liste des codes autorisés (ils sont nombreux)
2°) la nommer LISTE
3°) en C6, Format - Mise en Forme Conditionnelle (MFC) et saisie de la formule en critère1 ("La formule est") =ET(NB.SI(LISTE;C6)=0;NB.SI($C$6:$C$xxx;C6)>1) ou xxx est le nombre de ligne de mon tableau et où je donne comme Format, la cellule devient rouge.
4*) Recopie de cette MFC à toutes les cellules de mon tableau (à l'aide du pinceau vu le nombre de celule). Attention à bien faire correspondre la formule à la bonne colonne : par exemple, en S258, la MFC est =ET(NB.SI(LISTE;S258)=0;NB.SI($S$6:$S$xxx;S258)>1).
Voilà, grâce à cette méthode, dès que le code qui n'est pas autorisé (donc n'appartient pas à la liste) est saisie une 2e fois, la cellule devient rouge.
Je n'ai pas réussi à faire cette méthode en Validation de données (à chaque 1ere saisie, il me dit que le code est déjà saisie).
Pas grave, la méthode me convient et j'évite ainsi de saisir 2 agents sur le même chariot, ce qui est impossible, vu qu'il n'y a qu'un seul volant ... et c'est ce que je veux. Donc merci à toi.
Cordialement
Carl
(Sic)"Recopie de cette MFC à toutes les cellules de mon tableau (à l'aide du pinceau vu le nombre de celule)."
pour cela il suffit de sélectionner tous les champs àntraiter, de rentrer la formule qui correspond à la première cellule et de valider en maintenat la touche ctrl enfoncée. La MFC ou la formule entrée s'applique alors à toutes les cellules sélectionnées d'un suel coup.
Resic "Attention à bien faire correspondre la formule à la bonne colonne :"
ici et pour aller de pair
Pas de quoi, c'est avec plaisir. Pour compléter les infos sur les manip d'excel, ça peut servir à l'avenir:
(Sic)"Recopie de cette MFC à toutes les cellules de mon tableau (à l'aide du pinceau vu le nombre de cellules)."
pour cela il suffit de sélectionner tous les champs à traiter, de rentrer la formule qui correspond à la première cellule et de valider en maintenant la touche ctrl enfoncée. La MFC ou la formule entrée s'applique alors à toutes les cellules sélectionnées d'un seul coup.
Resic "Attention à bien faire correspondre la formule à la bonne colonne :"
ici et pour aller de pair avec la remarque précédente, il suffisait d'écrire
=ET(NB.SI(LISTE;C6)=0;NB.SI(C$6:C$xxx;C6)>1)en enlevant le $ devant les noms de colonnes, ainsi le C6:C$xxx s'ajuste automatiquement à la colonne concernée
(pout info $C$6 bloque tout, $C6 bloque la colonne pas la ligne et C$6 bien sur l'inverse.>obtenu facilement avec le curseur sur le nom de cellule dans la barre de formule et la touche F4 en pressions successives)
bonne route
Au plaisir
PS (bien que les élections soient terminées :-)): pour utiliser la validation de données et étant pris en compte qu'il s'agit cette fois d'autoriser avant d'interdire, il faut utiliser une formule inverse, soit:
=NB.SI($A$1:$A$100;A1)=1 autorisera une seule entrée de chaque type entre A1 et A100.
toutefois, cette limite ne s'applique pas aux tableaux déja remplis