Separar cadena de texto según comas decimales

Entrada núm: 24 of 24 de la serie Análisis de datos

Reestructuración de datos

De nuevo nos enfrentamos con una reestructuración de datos. El problema me lo plantea un usuario de YouTube:

Como separo unos digitos que vienen en decimal como “,” y separador como “,” .

Ejemplo: 0,254565,0,19898418,1,154648

La segunda coma siempre sera el separador y la primera seria el decimal. Le agradezco la solución, que pueda hacer que esos numeros como el ejemplo se separen en tres celdas y que incluya la decimal coma.

La particularidad es que solo la segunda y la cuarta comas son separadores auténticos, el resto son comas decimales legítimas.

Si intentamos aplicar la utilidad de TEXTO A COLUMNAS, que viene en la pestaña de DATOS de Excel, nos encontramos que ninguna de las dos variantes nos ofrece soluciones satisfactorias. Solo en el caso hipotético de que se diera la improbable circunstancia de que la longitud de las cadenas es exáctamente igual en número de decimales y enteros, solo en ese caso, repito, se podría aplicar con éxito esta utilidad nativa, en su variante de ANCHO FIJO. Ahí seleccionaríamos nosotros solo las comas en la posición segunda y cuarta y el problema quedaría resuelto.

Pero dada la alta improbabilidad de esta circunstancia, no nos queda más remedio que acudir a nuestros conocimientos de Excel. Si optamos por usar fórmulas nativas, con las que ya he resuelto algún problema parecido, deberíamos usar combinaciones de IZQUIERDA; DERECHA y EXTRAER, en un esquema bastante complejo. Así que, una vez condenados a la complejidad, yo siempre prefiero optar por las macros.

La subrutina que he diseñado toma como entrada el valor de la celda activa, o sea:

0,254565,0,19898418,1,154648

Con ese valor realiza una segmentación caracter a caracter y encuentra las posiciones de las comas no decimales, la segunda y la cuarta. Después es ya solo cuestión de resegmentar los tres números auténticos que contiene la cadena. Aquí os adjunto el código que debe ejecutarse con la selección de la celda activa que contiene el valor a segmentar efectuada previamente, o sea la celda activa.

El resultado de esta macro nos da los tres números que buscábamos, ya segmentados y ya preparados para el posterior análisis que haya que hacer. Aunque nos han quedado como fórmula de hoja, son fácilmente transformables en valores, si fuera necesario, sin más que copiar y pegar sobre sí mismos como valores.

Aplicar la macro a un conjunto de valores

Como lo más normal es que tengamos un gran número de casos a los que aplicar la macro, lo más eficaz sería hacer la selección previa completa del segmento de columna apropiado y ejecutar una macro genérica que fuera cambiando la celda activa y llamara a la macro anterior consecutivamente. Este código es muy sencillo:

Series Navigation<< Buscar en dos tablas con BUSCARV y ELEGIR

Comments

So empty here ... leave a comment!

Deja tu comentario aquí:

Sidebar



A %d blogueros les gusta esto: