top of page
Foto del escritorJaime Franco Jimenez

Encontrar los registros duplicados

Vamos a ver un ejemplo, de como podemos obtener los valores que se duplican dentro de un modelo.


Trabajamos con el modelo que suelo trabajar, pero con menos filas, donde hay filas que se repiten, por ejemplo, la siguiente fila, se repite dos veces más, al igual, que otras provincias.




Lo vamos a realizar en varios pasos.


Tenemos que preguntar si en el rango A2:A2, es igual al valor de A2, donde fijamos el primer A2, quedaría, $A$2:A2=A2.


Si miramos el modelo, el valor de la referencia A2, es Granada, estamos comparando Granada consigo mismo.


Lo haremos con la función CONTAR.SI.CONJUNTO, quedando de la siguiente manera:

=CONTAR.SI.CONJUNTO($A$2:A2;A2)


Nos devuelve 1, porque de momento aparece una vez, arrastramos, y, vemos las veces que aparece cada provincia, fijémonos en la segunda función.


=CONTAR.SI.CONJUNTO($A$2:A3;A3)


En este caso, va a contar desde el rango A2:A3, que son las provincias de Granada, y, Madrid, y, pregunta si algún valor es igual al de la celda A3, que es Madrid, como hay una coincidencia, también, nos devuelve 1.


Ahora, miremos la siguiente expresión, siendo su resultado el número 3.


=CONTAR.SI.CONJUNTO($A$2:A11;A11)














El valor de la celda A11, es Granada, entonces, esta contando las veces que aparece Granada en el rango A2:A11, que son tres.


Pues esto es lo que hace con el resto de las provincias.


Pero, para encontrar un registro duplicado, debemos de comparar cada celda consigo mismo, es decir, lo que hemos hecho anteriormente, debemos de hacerlo con B2, C2, y, D2, quedando de la siguiente manera:


=CONTAR.SI.CONJUNTO($A$2:A2;A2;$B$2:B2;B2;$C$2:C2;C2;$D$2:D2;D2)


Arrastramos, y, vemos las veces que aparece cada provincia.

























El que aparece, una sola vez, es un registro que no se repite, por lo que en la celda de al lado, voy a preguntar que si el resultado de la función CONTAR.SI.CONJUNTO, es mayor a 1, me devuelva la fila, en caso contrario, voy a poner un texto en blanco.


Lo haremos de forma matricial.


=SI(F2:F25>1;FILA(F2:F25);"")


Obtenemos una matriz desbordada, con las filas donde hay coincidencias, y, blanco, donde no la hay.























Necesito ordenar estas filas de menor a mayor, para anulas los blancos, para ello, voy a usar la función K.ESIMO.MENOR, esta función tiene dos argumentos, el primero de ellos, es el rango con el que vamos a trabajar, y, el segundo argumento, es el numero menor que queremos que nos devuelva, el primero, segundo…


La pregunta es ¿Cuántos números me tiene que devolver?, porque estos valores pueden cambiar.


En la celda de al lado, voy a contar los números de dicha matriz, para ello, voy a usar la función CONTAR.


=CONTAR(G2#)


Me devuelve 6, quiere decir que la función K.ESIMO.MENOR, me tiene que devolver los seis primeros números, pero, el resultado de CONTAR, lo debo de convertir en una matriz de seis números, empezando desde el numero 1, para usarlo, en el argumento K de la función K.ESIMO.MENOR.


Para ello, después del signo igual, voy a escribir la función SECUENCIA, y, abro un paréntesis, solo voy a usar el argumento fila, que es la función CONTAR.


=SECUENCIA(CONTAR(G2#))


Tenemos una matriz desbordada desde el numero 1 hasta el número 6.









Ya tenemos el argumento K, la función completa quedaría:


=K.ESIMO.MENOR(G2#;SECUENCIA(CONTAR(G2#)))


Tenemos los números de filas ordenados de menos a mayor.












Voy a usar la función INDICE, para traerme estas filas del modelo.


El argumento array, son las columnas desde A hasta D.


=INDICE(A:D


Como argumento numero de fila, es la función K.ESIMO.MENOR.


=INDICE(A:D;K.ESIMO.MENOR(G2#;SECUENCIA(CONTAR(G2#)))


Para el argumento numero de columna, solo podemos especificar una columna, pero tenemos que especificar que nos devuelva las cuatro columnas, por lo que voy a usar una constante de matriz, como sigue:


=INDICE(A:D;K.ESIMO.MENOR(G2#;SECUENCIA(CONTAR(G2#)));{1\2\3\4})


Tenemos una matriz desbordada con las filas.








Pero, aun se repiten, por lo que voy a hacer uso de la función UNICOS.


=UNICOS(INDICE(A:D;K.ESIMO.MENOR(G2#;SECUENCIA(CONTAR(G2#)));{1\2\3\4}))


Ya tenemos los registros que se repiten dentro del modelo.







16 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Comments


bottom of page