Bonsoir Tom,
D'abord le plus facile : ch est simplement le nom donné à la plage A2:A1221. Pourquoi ch :ce nom provient de l'exemple que j'ai dans mon petit mémo que je te joins et qui explique comment extraire les doublons d'une liste à savoir :
Mémo :
Cas1:La liste initiale doit commencer
en A2, C1 doit être libre et si on déplace le champ Champ1, il faut déplacer la colonne A entière
:
En C2:
=INDEX($A:$A;MIN(SI(ch<>"";SI(NB.SI(C$1:C1;ch)=0;LIGNE(ch);LIGNES(ch)+LIGNE(ch)))))
Valider avec Maj+ctrl+entrée
Supprimer les 0
avec Outils/Options/Affichage/Valeur 0 OU en testant la
formule :
Si(INDEX($A:$A;MIN(SI(ch<>"";SI(NB.SI(C$1:C1;ch)=0;LIGNE(ch);LIGNES(ch)+LIGNE(ch)))))=0;"":
INDEX($A:$A;MIN(SI(ch<>"";SI(NB.SI(C$1:C1;ch)=0;
LIGNE(ch);LIGNES(ch)+LIGNE(ch)))))
Ou en complétant la formule :par
&"" (meilleure solution)
=(INDEX($A:$A;MIN(SI(ch<>"";SI(NB.SI(C$1:C1;ch)=0;LIGNE(ch);LIGNES(ch)+LIGNE(ch)))))&"")
Si A1 est vide(pas de titre) possibilité de simplifier la formule :
=INDEX($A:$A;MIN(SI(Ch<>"";SI(NB.SI(C$1:C1;Ch)=0;LIGNE(Ch)))))
Valider avec Maj+ctrl+entrée
(=INDEX(A:A;FAUX) en
matriciel donne le contenu de A1)
Voir exemple :
http://www.cjoint.com/c/GAcsFEraJDNComme tu le constateras, la fonction INDEX va chercher dans la plage A:A la ligne contenant l'information de la plus petite occurrence (MIN) d'une référence. Il s'agit d'une formule matricielle (à introduire par CTRL/MAJ/ENTREE) donc on teste d'abord si la ligne est <> blanc dans la plage puis si la référence est déjà apparue dans la colonne C jusqu'à la ligne -1 en cours de traitement (si <> 0 cela veut dire que l'on a affaire à un doublon et donc à éliminer). Le traitement se fait en mémoire et si tu veux voir comment le calcul se fait, je te conseille de te positionner sur une des cellule de la colonne C où se trouve la formule et puis de cliquer sous l'onglet Formules sur "Evaluer la formule" (à droite) et tu suivras pas à pas le déroulement du calcul. Si tu ne connaissait pas je te le conseille quand tu as des problèmes : cela permet de comprendre où se situe l'erreur dans la formule). Conseils : l'affichage dans cet utilitaire est petit et quand on a affaire à une formule matricielle, il est difficile de suivre le déroulement car beaucoup de données donc il vaut mieux limiter la plage et au lieu de mettre A:A plutôt mettre A2: A10 par exemple (ne pas oublier de changer la plage du nom ch)
Pour finir, il y a l'astuce d'ajouter &"" pour éviter de mettre un zéro quand on rencontre les cellules vides en colonne A.. Cela permet de contrecarrer Excel qui met automatiquement un 0 quand il doit afficher le résultat d'une cellule vide. Comme tu le verras dans le mémo, il y a d'autre moyen (paramétrer Excel pour enlever les 0 non significatifs que je n'aime pas car on peut avoir besoin de ce 0 dans d'autres endroits du tableau ou bien tester le résultat et mettre "" si 0 mais cela fait une formule kilométrique et mange du temps d'exécution) mais je préfère celle-ci.
J'espère avoir été clair et sinon pose les questions qui te chiffonnent (expliquer le fonctionnement d'une formule matricielle est toujours délicats).
A bientôt sur le Forum
Chris