Repetir secuencia letras menos ultima letra
- Jaime Franco Jimenez
- 16 ago 2023
- 2 Min. de lectura
Para el siguiente ejemplo, vamos a repetir el alfabeto en mayúsculas, es decir, desde la letra “A” a la letra “Z”, y, después vamos a ir restando una letra por la derecha.
Pongamos que queremos crear una secuencia de 5, la primera secuencia seria:

La siguiente secuencia seria una letra menos por la derecha.

La siguiente secuencia, sería una letra menos por la derecha de la secuencia obtenida anteriormente.

Así hasta quedarnos con la letra “A”.
Empecemos…
Sabemos que el código ASCII de la letra “A” es 65, a partir de la letra “B” son números consecutivos a partir del valor 65.
En la celda K2, vamos a usar la función SECUENCIA, omitimos el argumento filas, como argumento columnas, seleccionamos la celda D1, como argumento inicio, ponemos 65, y, como argumento paso, ponemos 1.
=SECUENCIA(;D1;65;1)
Obtenemos una matriz desbordada en horizontal a partir del número 65.

Esto estaría bien, pero, solo para la primera fila, fijamos D1, arrastramos, y, lo vemos.
Tenemos la misma cadena para cada fila.

Lo que debe de ocurrir es que en la fila siguiente debe de aparecer una letra menos por la derecha.
Si en una celda, ponemos la celda D1, fijamos, y, restamos el valor de la fila 1, obtenemos 5. Es decir, 5 mas 1 es igual a 6, restamos 1, y, obtenemos 5, cuando arrastremos el valor de fila ira aumentado en 1.
=$D$1+1-FILA(A1)

Pues, estos son los valores para extraer, copiamos la expresión, vamos a la primera expresión, borramos el argumento columnas, y, pegamos la expresión.
=SECUENCIA(;$D$1+1-FILA(D1);65;1)
Delante del signo igual, ponemos la función CARÁCTER, para que nos devuelva el carácter al que corresponde cada código.
=CARACTER(SECUENCIA(;$D$1+1-FILA(D1);65;1))

Como vamos a arrastrar mas veces de lo necesario, quiere decir, que donde no haya valores que devolver, nos devolverá un error, pues, usamos la función SI.ERROR, como argumento valor, es la expresión anterior, y, como argumento valor si error, ponemos un texto en blanco.
=SI.ERROR(CARACTER(SECUENCIA(;$D$1+1-FILA(D1);65;1));"")
Arrastramos, pero más filas de las que necesitamos, y, ya lo tenemos.
En la celda J2, usamos SECUENCIA, como argumento filas, ponemos la celda D1, el resto de argumento lo omitimos.
Si queremos poner bordes, volvemos a seleccionar mas filas de las que necesitamos, y, más columnas de las que necesitamos a partir de la celda J2.
Desplegamos formato condicional, seleccionamos nueva regla.

En la ventana que se abre, seleccionamos la ultima opción, en la ventana de dar formato, ponemos:

Hacemos clic en formato, seleccionamos la pestaña borde, y, marcamos contorno.

Aceptamos.

Vamos a la celda K1, usamos LET, creamos una variable, y, ponemos la expresión que hemos usado anteriormente.
=LET(a;SECUENCIA(;$D$1+1-FILA(D1);65;1)
Creamos otra variable, ente comillas dobles, ponemos “De la letra ” concatenamos con la función CARÁCTER, como argumento ponemos la función MIN, y, como argumento ponemos la variable “a”.
=LET(a;SECUENCIA(;$D$1+1-FILA(D1);65;1);b;"De la letra "&CARACTER(MIN(a))
Concatenamos, entre comillas dobles con “a la letra “, concatenamos, de nuevo con la función CARÁCTER, como argumento ponemos la función MAS, y, como argumento ponemos la variable “a”.
=LET(a;SECUENCIA(;$D$1+1-FILA(D1);65;1);b;"De la letra "&CARACTER(MIN(a))&" a la letra "&CARACTER(MAX(a))
Concatenamos, entre comillas dobles, con “Total numero de palabras “, concatenamos con la función CONTARA, y, como argumento es la variable “a”, probamos variable.
=LET(a;SECUENCIA(;$D$1+1-FILA(D1);65;1);b;"De la letra "&CARACTER(MIN(a))&" a la letra "&CARACTER(MAX(a))&" Total numero de palabras "&CONTARA(a);b)
Aceptamos, y, ya tenemos nuestro ejemplo resuelto.

Miguel Angel Franco
Comments