Bill a une colonne de nombres triés par ordre croissant. Il existe de nombreuses valeurs en double dans la colonne, ce qui est très bien. Cependant, il doit localiser la première instance d’un nombre dans la colonne qui n’a pas de doublon. Bill se demande s’il existe une formule qui pourrait identifier la première valeur d’occurrence unique dans la colonne.

Il y a plusieurs façons de trouver la réponse tant désirée. Une façon consiste à ajouter une colonne d’aide à la droite de vos numéros. En supposant que votre premier nombre se trouve dans la cellule A2, vous pouvez saisir ce qui suit dans la cellule B2:

=IF(AND(A1<>A2,A3<>A2),"single","")

Copiez la formule autant de cellules que nécessaire et vous pourrez facilement repérer la première cellule qui a une valeur unique dans la colonne A.

Vous pouvez également utiliser la formule suivante dans la cellule B2:

=COUNTIF($A:$A,$A2)

Copiez-le autant que nécessaire; la formule indique le nombre de fois où la valeur de la colonne A apparaît dans la colonne A. Vous utiliserez alors la formule suivante pour déterminer la première valeur qui apparaît une fois dans la colonne A:

=INDEX($A:$A,MATCH(1,$B:$B,0))

Si une colonne d’assistance n’est pas possible, vous pouvez vous fier aux formules matricielles.

L’un ou l’autre affichera la première valeur qui se produit une seule fois:

=INDEX(A2:A999,MATCH(1,COUNTIF(A2:A999,A2:A999),0))

=SMALL(IF(COUNTIF(A2:A999,A2:A999)=1,A2:A999,""),1)

N’oubliez pas qu’il s’agit de formules matricielles, ce qui signifie que vous devez les saisir en utilisant Ctrl + Maj + Entrée. De plus, s’il n’y a pas de valeur unique dans la plage, la formule renvoie une erreur # N / A.

Si vous voulez savoir quelle ligne contient la première valeur d’occurrence unique, la formule de tableau suivante fera l’affaire:

=MATCH(1,COUNTIF(A2:A999,A2:A999),0)+1

Notez que la formule vérifie les cellules A2: A999. Puisque la ligne A1 est ignorée, le «+1» est requis à la fin de la formule. Si vous n’avez pas de ligne d’en-tête ou si vos données commencent dans une ligne autre que la ligne 2, vous souhaiterez ajuster la formule en conséquence.

Si vous ne souhaitez pas utiliser de formule, vous pouvez mettre en évidence les valeurs d’occurrence unique dans vos données à l’aide de la mise en forme conditionnelle.

Suivez ces étapes:

  1. Sélectionnez les cellules que vous souhaitez vérifier.

  2. Avec l’onglet Accueil du ruban affiché, cliquez sur l’option Mise en forme conditionnelle dans le groupe Styles. Excel affiche une palette d’options liées à la mise en forme conditionnelle.

  3. Choisissez Règles de mise en évidence des cellules. Excel affiche encore plus d’options.

  4. Choisissez Dupliquer les valeurs. Excel affiche la boîte de dialogue Valeurs en double. (Voir la figure 1.)

  5. À l’aide de la liste déroulante à gauche de la boîte de dialogue, choisissez Unique.

  6. Utilisez la liste déroulante à gauche de la boîte de dialogue pour indiquer le formatage des valeurs à occurrence unique.

  7. Cliquez sur OK.

À ce stade, vos valeurs à occurrence unique sont formatées comme vous l’avez spécifié à l’étape 6 et vous pouvez facilement les repérer. Si vous souhaitez afficher uniquement les valeurs d’occurrence unique, après avoir appliqué le format conditionnel, vous pouvez utiliser le filtrage pour accomplir la tâche.

Si vous préférez une approche macro, vous pouvez utiliser une macro telle que la suivante:

Sub FirstUnique()

Dim c As Range     Dim sMsg As String     Dim bLone As Boolean

If Selection.Cells.Count > 1 Then         For Each c In Selection.Cells             bLone = False             If c.Row = 1 Then                 If c <> c.Offset(1, 0) Then bLone = True             Else                 If c <> c.Offset(-1, 0) And _                    c <> c.Offset(1, 0) Then bLone = True             End If             If bLone Then                 sMsg = "First single-occurrence value found "

sMsg = sMsg & "at " & c.Address & vbCrLf                 sMsg = sMsg & "Value: " & c                 MsgBox sMsg                 Exit For             End If         Next c     Else         sMsg = "You must select at least 2 cells."

MsgBox sMsg     End If End Sub

Pour utiliser la macro, sélectionnez les cellules que vous souhaitez vérifier, puis exécutez-la. La macro affiche l’adresse et la valeur de la première valeur d’occurrence unique de votre sélection.

Vous devez noter que toutes les solutions proposées dans cette astuce (à l’exception de l’approche de mise en forme conditionnelle) nécessitent que les valeurs évaluées soient triées, comme Bill l’a dit. Si vos valeurs ne sont pas triées, vous devrez d’abord les trier ou rechercher une approche totalement différente pour vos résultats.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (3383) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.