Monsieur Excel
Pour tout savoir faire sur Excel !

19 juillet 2012

Un format conditionnel génial !

Le problème de ce jour est encore un test pour les petits génies d’Excel. Vous avez une liste de noms en colonne A, chaque nom pouvant être répété une ou plusieurs fois.

Votre mission est de construire un format conditionnel qui mette de façon alternative en bleu, puis en jaune, et en alternant encore ensuite, chaque groupe de deux (ou plus) noms identiques, comme nous le voyons en colonne A dans la copie d’écran ci-dessous.

Si vous êtes un petit génie d’Excel, vous parviendrez à construire ce format conditionnel en faisant appel à un calcul intermédiaire effectué dans une autre colonne !

Si vous êtes un grand génie d’Excel, vous n’aurez pas besoin d’utiliser une colonne de calculs intermédiaires.

Vous pouvez voir la solution que je vous propose, dans laquelle je me suis inspiré des suggestions de mon collègue Roberto Mensa, dans la copie d’écran ci-dessous.

Pour la première condition, celle qui donne un fond bleu, la première partie est évidente : (NB.SI($A:$A;$A2)>1) vérifie que le nom est au moins doublé.

La seconde partie vérifie que le nom est différent du nom précédent et qu’il est aussi égal au nom suivant, et – surtout – que cela fait un nombre impair de fois que cela arrive ! Voilà cette partie : EST.IMPAIR(SOMME(($A$1:$A1<>$A$2:$A2)*($A$2:$A2=$A$3:$A3)))

Remarque 1 – Ce qui est impressionnant, c’est que cette partie de la formule utilisée pour la première condition est en fait une formule matricielle.

Si l’on avait utilisé cette formule dans une cellule normale, il aurait fallu la valider par [Ctrl]-[Maj]-[Entrée] pour qu’elle fonctionne. En fait, dans un format conditionnel, une formule matricielle peut fonctionner, mais elle doit être saisie comme une formule simple, donc seulement validée avec [Entrée] !

La seconde condition est nettement plus simple : =NB.SI($A:$A;$A2)-1 vérifie tout simplement qu’il y a au moins un doublon et – puisque la première condition ne s’est pas appliquée, sinon on n’arriverait pas à la seconde – que cela fait un nombre pair de fois que cela arrive !

Remarque 2 – On pouvait aussi utiliser =NB.SI($A:$A;$A2)>1 pour le même résultat… En fait, n’importe quelle valeur positive correspond à VRAI pour une condition.

3 Commentaire(s):

  • effectivement bien pratique! Mais la prochaine version d'excel 2013 semble proposer des automatismes sur le sujet.
    La question sera de savoir comment automatiser ou non la reconnaissance des formules autres que les "types" comme addition, moyenne etc...

    By Anonymous atophisse, sur 1:42 PM  

  • Ne fonctionne pas avec

    Lenoir
    Legris
    Legris
    Legris
    Lenoir
    Levert
    Levert

    By Anonymous Anonyme, sur 11:11 PM  

  • Cher anonyme,

    Vous n'avez apparemment pas bien lu notre énoncé.

    Chaque nom peut apparaître plusieurs fois, mais ces apparitions sont toujours voisines.

    Ce n'est pas le cas dans votre exemple où les deux "Lenoir" ne sont pas voisins !

    By Blogger Hervé Thiriez, sur 8:34 AM  

Enregistrer un commentaire

<< Accueil