top of page

Aves repetidas consecutivas

Tenemos las siguientes aves:


























Debemos de enumerar las aves que aparecen consecutivamente.


En la celda B2, creamos una variable, la llamamos único, usamos la función UNICOS, como argumento matriz, seleccionamos el rango A2:A19, probamos variable.


=LET(unico;UNICOS(A2:A19);unico)














Vamos a crear un contador, que vamos a asignar a cada águila única, para ello, creamos otra variable, la llamamos contador, usamos la función SECUENCIA, como argumento filas, usamos la función CONTARA, y, como argumento de CONTARA, ponemos la variable único.


=LET(unico;UNICOS(A2:A19);contador;SECUENCIA(CONTARA(unico));contador)


Tenemos una matriz desbordada desde el numero 1 al número 10.















Creamos otra variable, la llamamos búsqueda, usamos la función BUSCARX, como argumento valor buscado, seleccionamos el rango A2:A19, como argumento matriz de búsqueda, ponemos la variable único, como argumento matriz devuelta, ponemos la variable contador.


=LET(unico;UNICOS(A2:A19);contador;SECUENCIA(CONTARA(unico));busqueda;BUSCARX(A2:A19;unico;contador);busqueda)


Obtenemos una matriz desbordada con el índice de cada ave, donde podemos ver que se repite de forma consecutiva un índice cuando el ave es la misma.























Creamos otra variable, la llamamos unión, usamos APILARH, como argumento matriz1, usamos INDICE, como argumento matriz, seleccionamos el rango A2:A19, como argumento numero de fila, usamos SECUENCIA, como argumento filas, usamos CONTAR, y, contamos la variable búsqueda, omitimos el argumento numero de columna.


=LET(unico;UNICOS(A2:A19);contador;SECUENCIA(CONTARA(unico));busqueda;BUSCARX(A2:A19;unico;contador);union;APILARH(INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)))


Como argumento matriz2, volvemos a usar INDICE, como argumento matriz, seleccionamos el rango A2:A19, como argumento numero de fila, volvemos a usar SECUENCIA, como argumento filas, contamos la variable búsqueda, y, sumamos 1, omitimos el argumento columnas, como argumento inicio, ponemos 2, como argumento paso, ponemos 1, y, omitimos el argumento número de columna.


=LET(unico;UNICOS(A2:A19);contador;SECUENCIA(CONTARA(unico));busqueda;BUSCARX(A2:A19;unico;contador);union;APILARH(INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)));INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)+1;;2;1)));union)


Obtenemos una matriz desbordada de dos columnas, en la primera columna tenemos las aves, y, en la segunda columna tenemos las aves, pero, empezando por la segunda ave, al final, tenemos un par de errores porque no hay aves que añadir.

























Creamos otra variable, la llamamos comparar, usamos INDICE, como argumento matriz, ponemos la variable unión, omitimos el argumento numero de fila, como argumento numero de columna, ponemos 1.


=LET(unico;UNICOS(A2:A19);contador;SECUENCIA(CONTARA(unico));busqueda;BUSCARX(A2:A19;unico;contador);union;APILARH(INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)));INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)+1;;2;1)));comparar;INDICE(union;;1)


Ponemos el signo igual, volvemos a poner INDICE, como argumento matriz, seleccionamos el rango A2:A19, omitimos el argumento numero de fila, como argumento numero de columna, ponemos 2.


=LET(unico;UNICOS(A2:A19);contador;SECUENCIA(CONTARA(unico));busqueda;BUSCARX(A2:A19;unico;contador);union;APILARH(INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)));INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)+1;;2;1)));comparar;INDICE(union;;1)=INDICE(union;;2);comparar)


Obtenemos una matriz desbordada donde el ave de la primera columna es igual al ave de la segunda columna.























Donde aparece VERDADERO es un ave que se repite, ahora, vamos a preguntar si la variable comparar es igual a VERDADERO, en ese caso, que nos devuelva el rango A2:A19, en caso contrario, que nos devuelva un texto en blanco.


=LET(unico;UNICOS(A2:A19);contador;SECUENCIA(CONTARA(unico));busqueda;BUSCARX(A2:A19;unico;contador);union;APILARH(INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)));INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)+1;;2;1)));comparar;INDICE(union;;1)=INDICE(union;;2);SI(comparar;A2:A19;""))


Obtenemos las aves que se repiten de forma secuencial.





















Usamos la función SI.ERROR, y, que nos devuelva un texto en blanco, si la expresión nos devuelve un texto en blanco.


=LET(unico;UNICOS(A2:A19);contador;SECUENCIA(CONTARA(unico));busqueda;BUSCARX(A2:A19;unico;contador);union;APILARH(INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)));INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)+1;;2;1)));comparar;INDICE(union;;1)=INDICE(union;;2);SI.ERROR(SI(comparar;A2:A19;"");""))


Nos quedamos con los valores únicos.


=LET(unico;UNICOS(A2:A19);contador;SECUENCIA(CONTARA(unico));busqueda;BUSCARX(A2:A19;unico;contador);union;APILARH(INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)));INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)+1;;2;1)));comparar;INDICE(union;;1)=INDICE(union;;2);UNICOS(SI.ERROR(SI(comparar;A2:A19;"");"")))


Usamos UNIRCADENAS, como argumento delimitador, entre comillas dobles, ponemos coma, ignoramos celdas vacías, como argumento texto1, es la expresión anterior.


=LET(unico;UNICOS(A2:A19);contador;SECUENCIA(CONTARA(unico));busqueda;BUSCARX(A2:A19;unico;contador);union;APILARH(INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)));INDICE(A2:A19;SECUENCIA(CONTAR(busqueda)+1;;2;1)));comparar;INDICE(union;;1)=INDICE(union;;2);UNIRCADENAS(",";VERDADERO;UNICOS(SI.ERROR(SI(comparar;A2:A19;"");""))))


Ya lo tenemos.
















Miguel Angel Franco

 
 
 

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page