Sexto carácter
- Jaime Franco Jimenez

- 2 jul 2023
- 2 Min. de lectura
Vamos por el sexto carácter, tenemos el siguiente valor:

Ya tenemos a texto el primer, segundo, tercer, cuarto, y, quinto digito.

Por lo que solo debemos de preocuparnos del sexto digito, en este caso, debemos de buscar el número 9, volvemos a usar la función K.ESIMO.MAYOR, en este caso, que nos devuelva el sexto valor mayor.
ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));6)
Usamos LET, creamos una variable, y, almacenamos la expresión anterior.
=LET(x;ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));6)
Debemos de tener en cuenta, que si ponemos el numero 100.000, debe de poner cien, en caso contrario, debe de poner ciento, como argumento calculo de LET, usamos el condicional SI, debemos de preguntar dos veces para ello, ponemos el operador lógico Y, la primera pregunta, que es el argumento valor logico1, es si la variable “x” es igual a 1.
=LET(x;ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));6);1));SI(Y(x=1
Como argumento valor logico2, debemos de preguntar si la suma de los últimos cinco caracteres es cero.
=LET(x;ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));6);1));SI(Y(x=1;SUMA(ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));{1;2;3;4;5});1)))=0)
Como argumento valor si verdadero, entre comillas dobles, ponemos la palabra Cien.
=LET(x;ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));6);1));SI(Y(x=1;SUMA(ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));{1;2;3;4;5});1)))=0);"Cien"
Como argumento valor si falso, usamos BUSCARX, como argumento valor buscado, es la variable “x”, como argumento matriz de búsqueda, seleccionamos el rango H1:H9, como argumento matriz devuelta, seleccionamos el rango L1:L9, como argumento si no se encuentra, ponemos un texto en blanco, cerramos paréntesis de BUSCARX, del condicional SI, y, de LET.
=LET(x;ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));6);1));SI(Y(x=1;SUMA(ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));{1;2;3;4;5});1)))=0);"Cien";BUSCARX(x;H1:H9;L1:L9;"")))
Aceptamos, y, vemos que aparece novecientos.

Cambiamos el numero 9 por el número 1, vemos el resultado correcto.

Ponemos el siguiente número, y, vemos que aparece Cien.

Pero, vemos un error en el campo 5 carácter, y, en el campo 4 carácter aparece la palabra Mil, para solventar el error del campo 5 carácter, ponemos el argumento valor si falso del cuarto SI.

Vemos que también se ha resuelto el campo 4 carácter.

Si ponemos el siguiente número, vemos que en el campo 5 carácter, aparece “y cuatro”.

Para este caso, no debería de aparecer nada, vamos a la expresión del campo 5 carácter, en el segundo condicional SI, preguntamos si el primer carácter de la variable “x” es distinto a 2, y, si el segundo carácter de la variable “x” es distinto a cero, es en esta expresión, donde ponemos la letra “y.
=SI.ERROR(LET(x;ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));{5;4});1));SI(Y(INDICE(x;1)=1;INDICE(x;2)>=1;INDICE(x;2)<=9);BUSCARX(ABS(CONCAT(x));H10:H19;I10:I19;"");SI(Y(INDICE(x;1)<>2;INDICE(x;2)<>0);BUSCARX(INDICE(x;1);H1:H9;K1:K9;"")&" y "&BUSCARX(INDICE(x;2);H1:H9;I1:I9;"");SI(Y(INDICE(x;1)<>0;INDICE(x;2)=0);BUSCARX(INDICE(x;1);H1:H9;K1:K9;"");""))));"")
Pues, antes de este condicional SI, ponemos otro condicional SI, preguntamos si el primer carácter de la variable “x” es cero, que ponga un texto en blanco.
=SI.ERROR(LET(x;ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));{5;4});1));SI(Y(INDICE(x;1)=1;INDICE(x;2)>=1;INDICE(x;2)<=9);BUSCARX(ABS(CONCAT(x));H10:H19;I10:I19;"");SI(Y(INDICE(x;1)=2;INDICE(x;2)<>0);"Veinti"&BUSCARX(INDICE(x;2);H1:H9;I1:I9;"");SI(INDICE(x;1)=0;"";SI(Y(INDICE(x;1)<>2;INDICE(x;2)<>0);BUSCARX(INDICE(x;1);H1:H9;K1:K9;"")&" y "&BUSCARX(INDICE(x;2);H1:H9;I1:I9;"");SI(Y(INDICE(x;1)<>0;INDICE(x;2)=0);BUSCARX(INDICE(x;1);H1:H9;K1:K9;"");""))))));"")
Aceptamos, y, vemos que el campo5 carácter aparece en blanco.

Después del texto, debe de aparecer la palabra Mil, para ello, vamos a la expresión del campo 4 carácter, después del signo igual con el condicional SI, preguntamos si el valor de B10 es distinto a blanco, en ese caso, que ponga la palabra Mil, en caso contrario, que ejecute la expresión que había.
=SI(B10<>"";"Mil";BUSCARX(ABS(EXTRAE(B1;K.ESIMO.MAYOR(SECUENCIA(LARGO(B1));4);1));H1:H9;M1:M9;""))
Si ponemos un numero de menos de 4 cifras, obtendremos, también, un error, volvamos a la expresión del campo 4 carácter, después de:
=SI(B10<>"";"Mil"
Pues, ya tenemos controlado el sexto digito.
Miguel Angel Franco




Comentarios