web-dev-qa-db-fra.com

Excel compare deux colonnes et met en surbrillance une fois trouvé

J'ai un fichier Excel avec 10 000 lignes dans la colonne A, certaines valeurs sont identiques.

Exemple:

A1 - P7767

A2 - P3443

A3 - P7767

A4 - P8746

A5 - P9435

etc...

J'ai ensuite une autre colonne avec 100 lignes qui ont certaines des valeurs trouvées dans la colonne A,

B1 - P7767

B2 - P8746

etc...

Je dois mettre en surbrillance toutes les cellules de la colonne A où la valeur se trouve dans l'une des valeurs de la colonne B

Donc, fondamentalement, la colonne B vérifie si elle peut trouver la même valeur n'importe où dans la colonne A; si la valeur est true, la cellule est laissée blanche si la valeur n'est pas trouvée dans la colonne B

J'espère que j'ai bien expliqué cela, que j'ai fait des recherches et que je pense devoir utiliser la mise en forme conditionnelle pour obtenir ce résultat, mais je suis vraiment bloqué sur la formule à utiliser et je n'arrive pas à trouver un exemple en ligne (peut-être que je ne cherche pas le terme correct car je ne suis pas sûr de savoir comment cela s'appelle exactement)

46
Izion

Il existe peut-être une option plus simple, mais vous pouvez utiliser VLOOKUP pour vérifier si une valeur apparaît dans une liste (et VLOOKUP est une formule puissante pour se familiariser de toute façon).

Donc, pour A1, vous pouvez définir un format conditionnel en utilisant la formule suivante:

=NOT(ISNA(VLOOKUP(A1,$B:$B,1,FALSE)))

Copier et coller spécial> Formats pour copier ce format conditionnel dans les autres cellules de la colonne A.

Que fait la formule ci-dessus:

  • VLOOKUP recherche la valeur de la cellule A1 (premier paramètre) dans l’ensemble de la colonne B ($ B: $ B), dans la première colonne (c’est le troisième paramètre, redondant ici, mais généralement, VLOOKUP recherche un tableau plutôt qu’un tableau). colonne). Le dernier paramètre, FALSE, spécifie que la correspondance doit être exacte plutôt que juste la correspondance la plus proche.
  • VLOOKUP renverra #ISNA si aucune correspondance n'est trouvée. Le NOT (ISNA (...)) renvoie donc la valeur true pour toutes les cellules pour lesquelles une correspondance est trouvée dans la colonne B.
77
David

Une formule simple à utiliser est

=COUNTIF($B:$B,A1)

La formule spécifiée est pour la cellule A1. Il suffit de copier et coller le format spécial dans l’ensemble de la colonne A

30
chris neilsen

REMARQUE: vous souhaiterez peut-être supprimer les éléments en double (par exemple, les entrées en double dans la même colonne) avant de suivre ces étapes pour éviter les faux positifs.

  1. Sélectionnez les deux colonnes
  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:

enter image description here

6
KERR

La meilleure façon de le faire, du moins pour moi, est la suivante:

Format conditionnel-> Ajouter une nouvelle règle-> Définissez votre propre formule:

=ISNA(MATCH(A2;$B:$B;0))

Où A2 est le premier élément de la colonne A à comparer et B est la colonne dans laquelle l'élément de A sera recherché.

Une fois que vous avez défini la formule et choisi le format, appliquez cette règle à tous les éléments de la colonne.

J'espère que cela t'aides

3
Jupiter Jones

Supposons que vous souhaitiez comparer une colonne A et une colonne H dans une même feuille de calcul.

Vous devez passer une autre colonne à côté de ces 2 colonnes et coller cette formule: = (Sheet1! A: A = Sheet1! H: H) FALSE ou TRUE apparaît dans la colonne. Vous pouvez donc utiliser cette nouvelle colonne pour colorer les valeurs non correspondantes à l'aide de la fonctionnalité de mise en forme conditionnelle des couleurs.

2
Java Main

A1 -> mise en forme conditionnelle -> la valeur de la cellule est B1 -> format: tout ce que vous voulez

j'espère que ça t'as aidé

2
QI3it

J'essayais de comparer les colonnes A à B et de mettre en surbrillance le texte identique, mais en utilisant le texte ci-dessus, certains textes ne correspondaient pas du tout. J'ai donc utilisé des codes de formulaire ( macro VBA pour comparer deux colonnes et différencier les cellules de surlignage de couleur ) et j'ai modifié quelques éléments pour l'adapter à mon application et trouver la colonne de votre choix (en cliquant dessus). Dans mon cas, j'utilise des nombres de lignes importants et différents sur chaque colonne. J'espère que cela t'aides:

Sub ABTextCompare ()

Dim Report As Worksheet
Dim i, j, colNum, vMatch As Integer
Dim lastRowA, lastRowB, lastRow, lastColumn As Integer
Dim ColumnUsage As String
Dim colA, colB, colC As String
Dim A, B, C As Variant

Set Report = Excel.ActiveSheet
vMatch = 1

'Select A and B Columns to compare
On Error Resume Next
 Set A = Application.InputBox(Prompt:="Select column to compare", Title:="Column A", Type:=8)
  If A Is Nothing Then Exit Sub
colA = Split(A(1).Address(1, 0), "$")(0)
 Set B = Application.InputBox(Prompt:="Select column being searched", Title:="Column B", Type:=8)
   If A Is Nothing Then Exit Sub
  colB = Split(B(1).Address(1, 0), "$")(0)
 'Select Column to show results
 Set C = Application.InputBox("Select column  to show results", "Results", Type:=8)
    If C Is Nothing Then Exit Sub
  colC = Split(C(1).Address(1, 0), "$")(0)

'Get Last Row
lastRowA = Report.Cells.Find("", Range(colA & 1), xlFormulas, xlByRows, xlPrevious).Row - 1 ' Last row in column A
lastRowB = Report.Cells.Find("", Range(colB & 1), xlFormulas, xlByRows, xlPrevious).Row - 1 ' Last row in column B

 Application.ScreenUpdating = False
'***************************************************
For i = 2 To lastRowA
      For j = 2 To lastRowB
          If Report.Cells(i, A.Column).Value <> "" Then
              If InStr(1, Report.Cells(j, B.Column).Value, Report.Cells(i, A.Column).Value, vbTextCompare) > 0 Then
                  vMatch = vMatch + 1
                  Report.Cells(i, A.Column).Interior.ColorIndex = 35 'Light green background
                  Range(colC & 1).Value = "Items Found"
                  Report.Cells(i, A.Column).Copy Destination:=Range(colC & vMatch)
                  Exit For
              Else
                  'Do Nothing
              End If
          End If
      Next j
  Next i
If vMatch = 1 Then
    MsgBox Prompt:="No Itmes Found", Buttons:=vbInformation
End If
'***************************************************
Application.ScreenUpdating = True

End Sub

1
SteppenWolf