Separar un numero alfanumérico en columnas
Bueno pues tengo un pequeño problema estoy manejando en excel números de este estilo 1E3324220197 la cuestión aquí es que quiero separar este numero en cinco columnas de manera que quede así 1 E 3324 2201 97 debido a que son más de 100 filas con números de este tipo resulta un tanto engorroso y casi imposible efectuarlos uno por uno, si alguno de ustedes puede resolver mi problema mediante algún macro u otra manera de hacerlo y las instrucciones precisas de como correr el macro les agradeceré muchísimo la ayuda ya que mis conocimientos en excel no son tan avanzados
1 respuesta
Respuesta de 230283
1
1
230283, * Bachiller en Ingeniería Industrial
Pienso que seria mucho más sencillo con fórmulas para que de paso te vayas familiarizando de como funcionan.
Comprendo tu caso muy bien. Dentro de breves momento te explico ampliamente. Veo que eres nuevo en el foro. Te pediría que aun NO finalices ni puntúes.
Dentro de breves te doy la solución
Christian
Comprendo tu caso muy bien. Dentro de breves momento te explico ampliamente. Veo que eres nuevo en el foro. Te pediría que aun NO finalices ni puntúes.
Dentro de breves te doy la solución
Christian
Voy a hacer con una celda. Al hacerlo con uno lo podremos rellenar hacia abajo para que afecte al resto de tus celdas con valores alfanuméricos.
Supongamos que el valor 1E3324220197 esta en la celda:
Ahora haremos las siguientes fórmulas en 5 celdas distintas que hagan referencia en la celda con dato el cual es A1.
En la celda B1: Extraerá 1
=VALOR(IZQUIERDA(A1;1))
En la celda C1: Extraera E
=EXTRAE(A1;2;1)
En la celda D1: Extraera 3324
=VALOR(EXTRAE(A1;3;4))
En la celda E1: Extraera 2201
=VALOR(EXTRAE(A1;7;4))
En la celda F1: Extraera 97
=VALOR(DERECHA(A1;2))
++++ OJO: Fijate si tu separador de argumentos es punto y coma o coma. Yo he utilizado punto y coma.
Una vez hecho esto arrastra las 5 celdas con fórmulas hacia abajo para que desdoble automáticamente el resto de celdas con código alfanuméricos.
No olvides finalizar y puntuar al final de esta página.ç
Christian
Supongamos que el valor 1E3324220197 esta en la celda:
Ahora haremos las siguientes fórmulas en 5 celdas distintas que hagan referencia en la celda con dato el cual es A1.
En la celda B1: Extraerá 1
=VALOR(IZQUIERDA(A1;1))
En la celda C1: Extraera E
=EXTRAE(A1;2;1)
En la celda D1: Extraera 3324
=VALOR(EXTRAE(A1;3;4))
En la celda E1: Extraera 2201
=VALOR(EXTRAE(A1;7;4))
En la celda F1: Extraera 97
=VALOR(DERECHA(A1;2))
++++ OJO: Fijate si tu separador de argumentos es punto y coma o coma. Yo he utilizado punto y coma.
Una vez hecho esto arrastra las 5 celdas con fórmulas hacia abajo para que desdoble automáticamente el resto de celdas con código alfanuméricos.
No olvides finalizar y puntuar al final de esta página.ç
Christian
Hola Christian:
Primero que nada muchas gracias por responder mi suplica de ayuda especialmente tan rapido.
Segunda, efectivamente soy nuevo en este foro y en estos menesteres, pero realmente se me facilita esto de excel digo con guías como la tuya.
Y bueno corrí las fórmulas que me diste y efectivamente para este caso en particular me funciono muy bien, el detalle es que la hoja que estoy trabajando contiene variaciones en estos números. Explico:
Se dan casos como el siguiente:
2E4435222012002 en este caso quiero que la separación quede igual en 5 columnas que seria así 2 E 44352 2201 2002
la cuestión aquí es que estos números son para control de inventario y son jalados de sistema y tienen algunas variaciones, si corro las fórmulas que me diste solo me afectan al ejemplo original que te proporcione
La bronca es que los números que quedan en la columna C son secuenciales pero no en orden de acuerdo a los reportes que recibo y lla columna E marcaría el año del registro que en ocasiones viene como 97 o 05 o 2005
entonces la columna que quiero trabajar esta así
1E3244220197 lo que requiero seria así 1 E 3244 2201 97
3f3422052005 2 F 34 2205 2005
4R12345710007 4 R 12345 7100 07
Como vez crees que exista algo para hacerlo, de verdad agradecería mucho tu respuesta ya que ilustrarías a un principiante ademas de ahorrarme muchos dolores de cabeza y tiempo en mi trabajo
de antemano gracias
Tu caso es complejo tal como lo planteas. Pero creo que tiene solución. Para determinar una manera de solucionar un caso en Excel es necesario poder analizar para que Excel piense y realice el trabajo de calcular, tomar decisiones inclusive por nosotros.
Por ello, debemos encontrar un patrón en tu caso con los códigos que tienes. Tengo unas preguntas las cuales me centrare en los últimos 3 códigos que has escrito en tu mensaje.
1.- Los dos primeros códigos tienen 12 caracteres sin embargo el ultimo hay 13. ¿Esto es posible?
2.- La clave bien podría estar en el año que estaría en la quinta celda. Veo que puede ser de 2 o de 4 caracteres. ¿Mi pregunta es es de 4 dígitos cuando los últimos 4 dígitos de tu seria es mayor a 2000? Por ejemplo en el segundo código que escribes.
3.- ¿Y la celda sera de dos dígitos el año cuando los últimos cuatro dígitos sea menor a 2000? Por ejemplo en el cuarto y primer código que indicas
+++
Espero ser lo bastante explicito en mis dudas para poder analizar y ver tu caso con cautela.
A la espera de tu confirmación sobre mis dudas.
Christian
Por ello, debemos encontrar un patrón en tu caso con los códigos que tienes. Tengo unas preguntas las cuales me centrare en los últimos 3 códigos que has escrito en tu mensaje.
1.- Los dos primeros códigos tienen 12 caracteres sin embargo el ultimo hay 13. ¿Esto es posible?
2.- La clave bien podría estar en el año que estaría en la quinta celda. Veo que puede ser de 2 o de 4 caracteres. ¿Mi pregunta es es de 4 dígitos cuando los últimos 4 dígitos de tu seria es mayor a 2000? Por ejemplo en el segundo código que escribes.
3.- ¿Y la celda sera de dos dígitos el año cuando los últimos cuatro dígitos sea menor a 2000? Por ejemplo en el cuarto y primer código que indicas
+++
Espero ser lo bastante explicito en mis dudas para poder analizar y ver tu caso con cautela.
A la espera de tu confirmación sobre mis dudas.
Christian
Saludos christian.
Pues bien primero que nada una vez más por tu respuesta, y pues enfocándonos al caso entiendo las dudas que me planteas espero dar respuesta a todas para que me puedas ayudar:
1.- Los códigos de los caracteres pueden variar debido a que los números que manejo se integran de la siguiente manera.
1E2345220197 por decir algo.
El numero 1 indica el grupo de clasificación (siempre sera de un solo dígito en rango del 1 al 7)
La letra E me indica el origen de adquisición que siempre sera una letra puede ser E, F, A DE etc etc.
La serie 2345 son números progresivos que están disponibles en sistema de aquí que los caracteres del numero aumenten o disminuyan, ya que comienzan desde el 01 pueden llegar asta el 1257689 por decir algo
El 2201 me indica el centro de responsabilidad al que esta asignado el bien que en el caso que se analiza siempre sera de cuatro dígitos, puede ser 2201 hasta el 2299 (también son progresivos pero siempre de cuatro dígitos).
97 me indica el año de adquisición o bien de captura en el sistema, aquí la cuestión es que es aleatorio pues bien por decisión humana se pudo capturar el año como 1997 o 97 y en caso como el año 2000 en adelante se da lo mismo bien se pudo capturar como 00 o bien en el 2007 así o como 07.
Siento que quizá la clave pudiese estar en el numero progresivo y la fecha ya que los otros rangos no cambian
El problema es que cada vez trabajo hojas más grandes actualmente de más de 7000 filas originalmente cuando eran menos datos me las ingeniaba con la opción datos/texto en columna pero con esta cantidad de datos me es realmente imposible ya que bien pueden comenzar la lista con códigos de 12 dígitos y de pronto llegar 13 o 14 o por números intercalados entre fila y fila
Como vex creo que es algo complicado verdad, bueno de nuevo agradezco tu interés en mi caso y espero tu respuesta.
Pues bien primero que nada una vez más por tu respuesta, y pues enfocándonos al caso entiendo las dudas que me planteas espero dar respuesta a todas para que me puedas ayudar:
1.- Los códigos de los caracteres pueden variar debido a que los números que manejo se integran de la siguiente manera.
1E2345220197 por decir algo.
El numero 1 indica el grupo de clasificación (siempre sera de un solo dígito en rango del 1 al 7)
La letra E me indica el origen de adquisición que siempre sera una letra puede ser E, F, A DE etc etc.
La serie 2345 son números progresivos que están disponibles en sistema de aquí que los caracteres del numero aumenten o disminuyan, ya que comienzan desde el 01 pueden llegar asta el 1257689 por decir algo
El 2201 me indica el centro de responsabilidad al que esta asignado el bien que en el caso que se analiza siempre sera de cuatro dígitos, puede ser 2201 hasta el 2299 (también son progresivos pero siempre de cuatro dígitos).
97 me indica el año de adquisición o bien de captura en el sistema, aquí la cuestión es que es aleatorio pues bien por decisión humana se pudo capturar el año como 1997 o 97 y en caso como el año 2000 en adelante se da lo mismo bien se pudo capturar como 00 o bien en el 2007 así o como 07.
Siento que quizá la clave pudiese estar en el numero progresivo y la fecha ya que los otros rangos no cambian
El problema es que cada vez trabajo hojas más grandes actualmente de más de 7000 filas originalmente cuando eran menos datos me las ingeniaba con la opción datos/texto en columna pero con esta cantidad de datos me es realmente imposible ya que bien pueden comenzar la lista con códigos de 12 dígitos y de pronto llegar 13 o 14 o por números intercalados entre fila y fila
Como vex creo que es algo complicado verdad, bueno de nuevo agradezco tu interés en mi caso y espero tu respuesta.
Después de pensar y realizar pruebas pude resolver tu caso.
Escribe las siguientes fórmulas en las celdas que a continuación se describen:
El valor en la celda A1 que sea: 1E3324220197
Celda B1:
=VALOR(IZQUIERDA(A1;1))
++++++
En la celda C1:
=EXTRAE(A1;2;1)
+++++++
En la celda E1: (El resto de cálculos depende de esta formula)
=VALOR(SI(Y(VALOR(EXTRAE(DERECHA(A1;8);1;4))>=2201;VALOR(EXTRAE(DERECHA(A1;8);1;4))<=2299);EXTRAE(DERECHA(A1;8);1;4);SI(Y(VALOR(EXTRAE(DERECHA(A1;6);1;4))>=2201;VALOR(EXTRAE(DERECHA(A1;6);1;4))<=2299);EXTRAE(DERECHA(A1;6);1;4))))
+++++++
En la celda D1:
=VALOR(EXTRAE(A1;3;HALLAR(E1;A1;1)-3))
+++++++
Y finalmente en F1:
=VALOR(EXTRAE(A1;HALLAR(E1;A1;1)+4;LARGO(A1)))
++++++
Fíjate en tu separador de argumentos. Yo he trabajado con punto y coma ";"
Con este paquete de fórmulas, espero que tu caso sea resuelto por completo. Me comentas como te fue. Estoy seguro que ya no tendrás esos dolores de cabeza. Jajaja!
Ahora si te pediría que puedas finalizar y puntuar al final de esta página
Christian
Escribe las siguientes fórmulas en las celdas que a continuación se describen:
El valor en la celda A1 que sea: 1E3324220197
Celda B1:
=VALOR(IZQUIERDA(A1;1))
++++++
En la celda C1:
=EXTRAE(A1;2;1)
+++++++
En la celda E1: (El resto de cálculos depende de esta formula)
=VALOR(SI(Y(VALOR(EXTRAE(DERECHA(A1;8);1;4))>=2201;VALOR(EXTRAE(DERECHA(A1;8);1;4))<=2299);EXTRAE(DERECHA(A1;8);1;4);SI(Y(VALOR(EXTRAE(DERECHA(A1;6);1;4))>=2201;VALOR(EXTRAE(DERECHA(A1;6);1;4))<=2299);EXTRAE(DERECHA(A1;6);1;4))))
+++++++
En la celda D1:
=VALOR(EXTRAE(A1;3;HALLAR(E1;A1;1)-3))
+++++++
Y finalmente en F1:
=VALOR(EXTRAE(A1;HALLAR(E1;A1;1)+4;LARGO(A1)))
++++++
Fíjate en tu separador de argumentos. Yo he trabajado con punto y coma ";"
Con este paquete de fórmulas, espero que tu caso sea resuelto por completo. Me comentas como te fue. Estoy seguro que ya no tendrás esos dolores de cabeza. Jajaja!
Ahora si te pediría que puedas finalizar y puntuar al final de esta página
Christian
Algo que quería agregar:
Este pack de fórmulas que están distribuidas en la Fila 1 podrás arrastrar al resto de filas una vez que hayas hecho las 5 fórmulas de la Fila 1.
He estado probando y funciona!. Si tu separador es punto y coma te sugiero que copiesm y pegues la fórmula en sus respectivas celdas. Si es coma tu separador entonces deberás cambiarlo.
Me comentas los resultados
No olvides finalizar al final de esta página
Christian
Este pack de fórmulas que están distribuidas en la Fila 1 podrás arrastrar al resto de filas una vez que hayas hecho las 5 fórmulas de la Fila 1.
He estado probando y funciona!. Si tu separador es punto y coma te sugiero que copiesm y pegues la fórmula en sus respectivas celdas. Si es coma tu separador entonces deberás cambiarlo.
Me comentas los resultados
No olvides finalizar al final de esta página
Christian
Primero que nada solo puedo decir QUE BARBAROOOOOOOOOOO de verdad que estas fórmulas corrieron super genial de verdad mil gracias hermano no por nada ostentas el titulo de expertazo.
Y pues de paso para decirte que he de agregarte como experto favorito sale por que voy a tener muchas dudas aparte de esa sirve que de una vez te conviertes en mi asesor jajajaja que gandalla no pero no en serio de verdad espero que las próximas dudas me ayudes con la amabilidad y la humildad que te caracterizaron sale
Que más te puedo decir más que
Gracias christian
Y pues de paso para decirte que he de agregarte como experto favorito sale por que voy a tener muchas dudas aparte de esa sirve que de una vez te conviertes en mi asesor jajajaja que gandalla no pero no en serio de verdad espero que las próximas dudas me ayudes con la amabilidad y la humildad que te caracterizaron sale
Que más te puedo decir más que
Gracias christian
- Compartir respuesta
- Anónimo
ahora mismo