¿Cómo comparar dos columnas y encontrar diferencias en Excel?


45

Tengo dos columnas en Excel que quiero comparar y encontrar las diferencias entre ellas.

Suponer:

  • Col A tiene 50 números, es decir, 0511234567
  • Col B tiene 100 números en el mismo formato

Creo que esto se puede hacer con las funciones y fórmulas integradas de Excel. Me parece fuera de tema.
Matt Handy

¿puedes especificar cómo hacer eso?

Entonces, ¿desea saber qué números están en Col A solamente y qué números están en Col B solamente?
Tom Shaw

Vea esta pregunta SO para su respuesta.
Patrick Honorez

No, primero quiero saber todos esos números que no están en Col A, pero en Col B y luego quiero saber todos los números que están en Col A, pero no en B. Col

Respuestas:


55

Usar formato condicional

Resalte la columna A . Haga clic en Formato condicional > Crear nueva regla > Use esta fórmula para determinar qué celdas formatear > Ingrese el ff. fórmula:

=countif($B:$B, $A1)

Haga clic en el botón Formato y cambie el color de la Fuente a algo que le guste.

Repita lo mismo para la columna B , excepto que use esta fórmula y pruebe con otro color de fuente.

=countif($A:$A, $B1)

Usando una columna separada

En la columna C , ingrese el ff. fórmula en la primera celda y luego copiarla.

=if(countif($B:$B, $A1)<>0, "-", "Not in B")

En la columna D , ingrese el ff. fórmula en la primera celda y luego copiarla.

=if(countif($A:$A, $B1)<>0, "-", "Not in A")

Ambos deberían ayudarlo a visualizar qué elementos faltan en la otra columna.


¿En qué versión (s) de Excel se probó esto?
Peter Mortensen

1
¿Dónde está el "formato condicional"? En un menú? En un menú contextual?
Peter Mortensen

En una versión anterior de OpenOffice, correspondiente a Excel pre-ribbon (es un clon de Excel después de todo), hay un comando de menú Formato -> Formato condicional .
Peter Mortensen

1
Esto es sobre Excel, pero en OpenOffice / LibreOffice usar $B:$Bpara referirse a la columna completa Bno funciona. En su lugar, use $B$1:$B$1048576(donde 1048576 es la fila con el número más alto). Nota $delante de los números (las llamadas referencias absolutas ): esto hace que funcione como se espera para operaciones como Rellenar (denominado aquí "copiar") o Rellenar .
Peter Mortensen

14

Microsoft tiene un artículo que detalla cómo encontrar duplicados en dos columnas. Se puede cambiar fácilmente para encontrar elementos únicos en cada columna.

Por ejemplo, si desea que Col C muestre entradas exclusivas de Col A y Col D muestre entradas exclusivas de Col B:

A   B   C                                          D
1   3   =IF(ISERROR(MATCH(A1,$B$1:$B$5,0)),A1,"")  =IF(ISERROR(MATCH(B1,$A$1:$A$5,0)),B1,"")
2   5   (fill down)                                (fill down)
3   8   ..                                         ..
4   2   ..                                         ..
5   0   ..                                         ..


4

Digamos que quieres encontrarlos en col. B sin partido en col. A. Poner en C2:

=COUNTIF($A$2:$A$26;B2)

Esto le dará 1 (o más) si hay una coincidencia, 0 de lo contrario.

También puede ordenar ambas columnas individualmente, luego seleccionar ambas, Ir a especial, seleccionar Diferencias de fila. Pero eso dejará de funcionar después del primer elemento nuevo, y tendrá que insertar una celda y luego comenzar de nuevo.


4

Si entiendo bien tu pregunta:

=if(Ax = Bx; True_directive ; False_directive)

Reemplace las directivas Verdadero / falso por una función o por una cadena como "Igual" o "diferente".


@pasta esto no funcionará si las dos columnas no están ordenadas por igual, creo que la pregunta no es sobre eso.
SIslam

3

Depende del formato de sus celdas y sus requisitos funcionales. Con un "0" inicial podrían formatearse como texto.

Entonces podría usar la función IF para comparar celdas en Excel:

=IF ( logical_test, value_if_true, value_if_false )

Ejemplo:

=IF ( A1<>A2, "not equal", "equal" )

Si están formateados como números, puede restar la primera columna de la otra para obtener la diferencia:

=A1-A2

2

Esta fórmula comparará directamente dos celdas. Si son iguales, se imprimirá True, si existe una diferencia, se imprimirá False. Esta fórmula no imprimirá cuáles son las diferencias.

=IF(A1=B1,"True","False")

1

Estoy usando Excel 2010 y solo resalto las dos columnas que tienen los dos conjuntos de valores que estoy comparando, y luego hago clic en el menú desplegable Formato condicional en la página de inicio de Excel, elijo las reglas Resaltar celdas y luego las diferencias. Luego le indica que resalte las diferencias o similitudes y le pregunta qué color de resaltado desea usar ...


0

La comparación se puede hacer con el código Excel VBA. El proceso de comparación se puede hacer con la Worksheet.Countiffunción Excel VBA .

Se compararon dos columnas en diferentes hojas de trabajo en esta plantilla. Encontró resultados diferentes a medida que se copiaba una fila completa a la segunda hoja de trabajo.

Código:

Dim stk, msb As Worksheet
Set stk = Sheets("Page1")
Set msb = Sheets("Page2")

Application.ScreenUpdating = False
sat = (msb.Range("A" & Rows.Count).End(xlUp).Row) + 1
For i = 2 To stk.Range("A" & Rows.Count).End(xlUp).Row
    If WorksheetFunction.CountIf(msb.Range("A2:A" & msb.Range("A" & Rows.Count).End(xlUp).Row), stk.Cells(i, "A")) = 0 Then
        msb.Range("a" & sat).EntireRow.Value = stk.Range("a" & i).EntireRow.Value
        msb.Range("a" & sat).Interior.ColorIndex = 22
        sat = sat + 1
    End If
Next
...

El video del tutorial: https://www.youtube.com/watch?v=Vt4_hEPsKt8

El archivo de ejemplo se puede descargar aquí


1
Si va a vincular su blog y su canal de YouTube, debe divulgar su afiliación. Si no lo hace, puede ser acusado de spam.
DavidPostill

0

Esto está usando otra herramienta, pero acabo de encontrar esto muy fácil de hacer. Usando Notepad ++:

En Excel, asegúrese de que sus 2 columnas estén ordenadas en el mismo orden, luego copie y pegue sus columnas en 2 nuevos archivos de texto y luego ejecute una comparación (desde el menú de complementos).


0

La combinación de funciones NOT MATCH funciona bien. Lo siguiente también funciona:

= SI ( ESERROR ( BUSCARV (<< elemento de la lista más grande >>, << lista smaler >>, 1 , FALSO )), << elemento de la lista más grande >>, "")

RECUERDE: la lista más pequeña DEBE clasificarse ASCENDENTE: un requisito de vlookup

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.