Encontrar vocales y numerarlas
- Jaime Franco Jimenez

- 14 ago 2023
- 2 Min. de lectura
El siguiente ejemplo es otro desafío de Excel BI, pero, como ya he puesto muchos desafíos, lo vamos a resolver.
Tenemos las siguientes palabras.

Nos solicitan que separemos las vocales, numerándolas según posición que aparecen.
Empecemos…
Igual que en otros ejemplos, debemos de extraer cada carácter de cada cadena, para ello, en la celda B2, ponemos LET, creamos una variable, usamos la función EXTRAE, como argumento texto, es la celda A2, como argumento posición inicial, usamos la función SECUENCIA, como argumento filas, usamos la función LARGO, y, como argumento seleccionamos la celda A2, como argumento numero de caracteres, ponemos 1, probamos variable.
=LET(a;EXTRAE(A2;SECUENCIA(LARGO(A2));1);a)

Creamos otra variable, usamos la función APILARV, como argumento matriz1, entre comillas dobles ponemos “a”, como argumento mariz2, ponemos “e”, como argumento matriz3, ponemos “i”, como argumento matriz4, ponemos “o”, y, como argumento matriz5, ponemos “u”, probamos variable.
=LET(a;EXTRAE(A2;SECUENCIA(LARGO(A2));1);b;APILARV("a";"e";"i";"o";"u");b)

Creamos otra variable, usamos COINCIDIR, como argumento valor buscado, ponemos la variable “a”, como argumento matriz buscada, ponemos, de nuevo, la variable “a”, como tipo de coincidencia, ponemos exacta, probamos variable.
=LET(a;EXTRAE(A2;SECUENCIA(LARGO(A2));1);b;APILARV("a";"e";"i";"o";"u");c;COINCIDIR(a;a;0);c)
Obtenemos una secuencia de números desde el numero 1 al número 9.

Creamos otra variable, usamos la función BYROW, como argumento array, ponemos la variable “a”, como argumento función, ponemos LAMBDA, como argumento array de LAMBDA, creamos una variable, como argumento calculo, usamos BUSCARX, como argumento valor buscado, es la variable “x”, como argumento matriz de búsqueda, ponemos la variable “b”, como argumento matriz devuelta, ponemos la variable “b”, probamos variable.
=LET(a;EXTRAE(A2;SECUENCIA(LARGO(A2));1);b;APILARV("a";"e";"i";"o";"u");c;COINCIDIR(a;a;0);d;BYROW(a;LAMBDA(x;BUSCARX(x;b;b;"")));d)
Obtenemos las vocales, y, blanco donde no hay vocales.

Creamos otra variable, usamos el condicional SI, peguntamos si la variable “d” es igual a la variable “a”, concatenamos un guion medio con la variable “c”, en caso contrario, que devuelva un texto en blanco.
=LET(a;EXTRAE(A2;SECUENCIA(LARGO(A2));1);b;APILARV("a";"e";"i";"o";"u");c;COINCIDIR(a;a;0);d;BYROW(a;LAMBDA(x;BUSCARX(x;b;b;"")));e;SI(d=a;"-"&c;"");e)
Obtenemos los mismos valores, pero delante de cada número un guion medio.

Creamos otra variable, usamos la función APILARH, como argumento matriz1, ponemos la variable “d”, como argumento matriz2, ponemos la variable “e”, probamos variable.
=LET(a;EXTRAE(A2;SECUENCIA(LARGO(A2));1);b;APILARV("a";"e";"i";"o";"u");c;COINCIDIR(a;a;0);d;BYROW(a;LAMBDA(x;BUSCARX(x;b;b;"")));e;SI(d=a;"-"&c;"");f;APILARH(d;e);f)

Como argumento calculo de LET, usamos UNIRCADENAS, como argumento delimitador, entre comillas dobles, ponemos coma, ignoramos celdas vacías, como argumento texto1, usamos BYROW, como argumento array, ponemos la variable “f”, como argumento función, ponemos LAMBDA, como argumento array, declaramos una variable, como argumento cálculo, concatenamos la variable “x”.
=LET(a;EXTRAE(A2;SECUENCIA(LARGO(A2));1);b;APILARV("a";"e";"i";"o";"u");c;COINCIDIR(a;a;0);d;BYROW(a;LAMBDA(x;BUSCARX(x;b;b;"")));e;SI(d=a;"-"&c;"");f;APILARH(d;e);UNIRCADENAS(",";VERDADERO;BYROW(f;LAMBDA(x;CONCAT(x)))))
Aceptamos, arrastramos, y, ya lo tenemos.

Miguel Angel Franco




Comentarios