web-dev-qa-db-fra.com

Cellules de mise en forme conditionnelle si leur valeur est égale à TOUT valeur d'une autre colonne

J'ai des données dans les colonnes A et B. Les données de la colonne B sont principalement des doublons des données de A, mais pas toujours. Par exemple:

A
Budapest
Prague
Paris
Bukarest
Moscow
Rome
New York

B
Budapest
Prague
Los Angeles
Bukarest

Je dois effectuer une recherche dans la colonne A si les valeurs de B y existent. Si une ligne correspond, je dois changer la couleur d'arrière-plan de la ligne dans A en rouge ou quelque chose du genre.

Quelle fonction dois-je utiliser et comment?

Désolé, je suis un débutant dans Excel.

15
PeterInvincible

Voici la formule

créer une nouvelle règle dans la mise en forme conditionnelle basée sur une formule. Utilisez la formule suivante et appliquez-la à $ A: $ A

=NOT(ISERROR(MATCH(A1,$B$1:$B$1000,0)))


enter image description here

voici l'exemple de fiche à télécharger en cas de problème


METTRE À JOUR
voici la suggestion de @pnuts qui fonctionne également parfaitement:

=MATCH(A1,B:B,0)>0


30
Marcel

Aucune formule requise. Cela fonctionne sur autant de colonnes que nécessaire, mais comparera uniquement les colonnes de la même feuille de calcul:

  1. Sélectionnez les colonnes à comparer
  2. cliquez sur Mise en forme conditionnelle
  3. cliquez sur Highlight Cells Rules
  4. cliquez sur les valeurs en double (les valeurs par défaut devraient être OK)
  5. Les doublons sont maintenant surlignés en rouge

    • En prime, vous pouvez filtrer chaque ligne par couleur pour laisser les valeurs uniques dans la colonne ou uniquement les doublons.
4
KERR

Une autre solution plus simple consiste à utiliser cette formule dans la mise en forme conditionnelle (s’applique à la colonne A):

=COUNTIF(B:B,A1)

Cordialement!

3
async3

Tout ce que vous avez à faire pour cela est une simple boucle.
Cela ne gère pas les tests de mise en correspondance minuscule, majuscule . Si ce n'est pas exactement ce que vous recherchez, commentez et je peux réviser.

Si vous envisagez d'apprendre VBA. Ceci est un bon début.

TESTED:

Sub MatchAndColor()

Dim lastRow As Long
Dim sheetName As String

    sheetName = "Sheet1"            'Insert your sheet name here
    lastRow = Sheets(sheetName).Range("A" & Rows.Count).End(xlUp).Row

    For lRow = 2 To lastRow         'Loop through all rows

        If Sheets(sheetName).Cells(lRow, "A") = Sheets(sheetName).Cells(lRow, "B") Then
            Sheets(sheetName).Cells(lRow, "A").Interior.ColorIndex = 3  'Set Color to RED
        End If

    Next lRow

End Sub

EXAMPLE

3
peege

Je cherchais cela et j'ai adoré l'approche de Peege en utilisant une boucle for! (parce que j'apprends VBA en ce moment)

Cependant, si nous essayons de faire correspondre "n'importe quelle" valeur d'une autre colonne, pourquoi ne pas utiliser des boucles imbriquées comme suit?

Sub MatchAndColor()

Dim lastRow As Long
Dim sheetName As String


sheetName = "Sheet1"            'Insert your sheet name here
lastRow = Sheets(sheetName).Range("A" & Rows.Count).End(xlUp).Row

For lRowA = 1 To lastRow         'Loop through all rows
    For lRowB = 1 To lastRow
        If Sheets(sheetName).Cells(lRowA, "A") = Sheets(sheetName).Cells(lRowB, "B") Then

        Sheets(sheetName).Cells(lRowA, "A").Interior.ColorIndex = 3  'Set Color to RED
    End If

Next lRowB
Next lRowA

End Sub
1
Damian Duran