
Formateo un volcado de datos de nuestro software y estoy intentando agilizar el proceso. La primera columna contiene varios grupos de caracteres que están separados con _ entre cada grupo. Luego tomo esa columna y uso texto en columnas para separarlas. El problema es que realmente solo necesito separar los dos primeros grupos, el resto los dejaría combinados. A su vez, termino creando una concatenación para compilar todas las agrupaciones menores; sin embargo, no siempre son consistentes con la cantidad de columnas que se agrupan, lo que genera _ adicionales, que luego tengo que regresar y eliminar.
Tengo que construir esto todos los días, así que si puedo encontrar la fórmula adecuada para simplificar y construir una macro, sería fabuloso. Lo hago para separar las columnas H e I de A, luego combino con _ entre cada celda JM.
Captura de pantalla de ejemplo de datos:
Respuesta1
Este tipo de cosas es donde Excel realmente necesita algunos operadores de bases de datos como PART
.
No obstante, podemos hacerlo nosotros mismos.
1.B
Esto es fácil, por supuesto.
=LEFT(A2,FIND("_",A2,1)-1)
2.C
Éste no lo es realmente.
=MID(A2,FIND("_",A2,1)+1,FIND("_",A2,FIND("_",A2,1)+1)-FIND("_",A2,1)-1)
Si se toma el tiempo para analizarlo, encontrará que obtiene el MID
de una cadena cuya designación incluye un anidado FIND
para encontrar un _
dentro de una cadena que comenzó desde un FIND
de a _
. Cosas divertidas.
3.D
Una vez que tenga eso, obtener el resto se puede hacer de manera trivial de varias maneras. Esto me pareció rápido, que no incluye ningún valor arbitrario:
=MID(A2,LEN(B2)+LEN(C2)+3,LEN(A2))