Ordenar alfabeticamente pero tambien segun su numero.

Estoy con un problema, calculo que debe ser bastante sencillo, pero no puedo resolverlo.

Necesito ordenar esa lista, alfabéticamente, pero también según su numero.. Y ven en la foto, me lo toma por el primer numero, entonces un "rodamiento 600" esta entre medio de los "6000" ¿Cómo podría hacer para solucionar eso?

Y por otro lado, ¿cómo hacer que se ordene automáticamente cuando cargo alguno nuevo? Ya que se me pone primero en la lista y no se ordena.

Respuesta
1

Uff! Pues no, creo que sencillo no es, pero imposible tampoco.
Primero, a ver si he entendido bien el problema: en todos los rodamientos aparece un código númerico que normalmente esta entre dos espacios (como en el "Rodamiento 60202 2RS") pero que también puede estar al final del nombre (como en el "Rodamiento 608") y el problema es que deseas ordenar considerando ese códogo como un número en lugar de ordenarlo como texto que es lo que hace excel normalmente.
Si es así te propongo una solución que no es complicada pero sí un poco tediosa, primero te la explico por partes y luego te propongo una simplificación ¿Ok?
1. Aquí la clave está en extraer ese número y ordenarlo como número y no como texto.
2. Este número estará o bien entre dos espacios o bien entre un espacio y el final del nombre
Voy a suponer que en la columna A tienes la descripción y en la B el valor de stock.
1. En la columna C puedes calcular la posición del primer espacio como: =HALLAR(" ";A2)
2. En la columna D puedes extraer el resto de cadena desde el espacio hacia la derecha: =DERECHA(A2;LARGO(A2)-C2)
3. En la columna E puedes calcular la posición del segundo espacio tal y como hiciste con el primero, ojo que algunos darán error, ya nos ocuparemos de eso en el siguiente paso.
La formula sería: =HALLAR(" ";D2)
4. En la columna F finalmente obtendríamos el número con la formula:
=SI.ERROR(IZQUIERDA(D2;E2);D2)*1
Es importante no olvidar el *1 ya que es lo que convertirá el texto en número.
Como puedes ver utilizo un SI. ERROR para adaptar la formula a los casos en los que solo hay un espacio en el nombre.
Una vez hecho esto tienes una columna con el Número y otra con el Nombre. Ahora para obtener el orden que tu deseas utiliza la función de ordenar de excel (Datos / Ordenar ) y agrega un primer nivel para ordenar por número y un segundo nivel para ordenar por descripción.

Con esto te debería funcionar pero si quieres hacerlo más simple en lugar de utilizar las cuatro formulas que te he indicado puedes resumirlas todas como:
=SI.ERROR(IZQUIERDA(DERECHA(A2;LARGO(A2)-HALLAR(" ";A2));HALLAR(" ";DERECHA(A2;LARGO(A2)-HALLAR(" ";A2))));DERECHA(A2;LARGO(A2)-HALLAR(" ";A2)))*1
Es una formula enrevesada para el ojo humano pero no es problema para el excel.
Es más simple de lo que parece a primera vista, pero si te surge alguna duda solo pregunta, aquí estamos para ayudar.

Hola, muchas gracias por responder.

Me quedo algo así, y sigo sin solucionarlo, ¿en qué estoy fallando? Trate de mover las fórmulas a las columnas, y creo que lo hice bien, pero no me dio resultado.

Me quedo así:

Vamos por partes:
1. Parece que tienes algo mal en la columna 4 (los errores de la columna 2 no afectan).
¿Puedes poner el excel en "mostrar fórmulas" y enviarme de nuevo la captura de pantalla?
Para mostrar fórmulas tienes que ir a "Formulas" y luego en la sección de "Auditoría de fórmulas" le das a "Mostrar fórmulas" o si no Ctrl+`
2. Eso de los Retenes es nuevo! ¿Cómo debería ordenarlos? ¿Tratando cada cifran entre guiones como un número?
Y ¿Qué orden deberían tener los retenes en relación a los rodamientos? ¿Alfabético?
3. ¿Tienes alguna otra categoría de producto que no sean rodamientos o retenes? Si es así envíame unos cuantos códigos de ejemplo para ver como podemos gestionarlo.

Gracias por preocuparte Ivan.

¿

Podrías pasarme un mail de contacto? ¿Así te muestro el libro completo?

Si hay mucho otro tipo de repuestos, ese es el problema, y se pueden agregar muchisimos mas.

Me da un poco de reparo poner mi email personal aquí, piensa que esta web es dominio público.
Si no te importa mejor súbelo a dropbox, google drive o alguno de estos y pásame el enlace.

Hola Ivan, buen día.

Me parece bien tu postura.

https://www.dropbox.com/preview/Libro1.xlsx?role=work 

Fíjate si podes verlo desde ahí.

Saludos.

No puedo verlo, me redirige a la página de compra de dropbox premium :s

Hola Ivan, buen día.

Visita esta página, ahí también lo publique y pude adjuntar el archivo.

https://www.lawebdelprogramador.com/foros/Excel/1716745-Formula-para-ordenamiento-alfabetico-y-a-su-vez-numerico.html

Pues es bastante complejo el tema, casi casi que necesitarías una solución a medida.
Yo de momento te he montado un sistema para que ordene todo por orden alfabético, pero que los rodamientos te los ordene en función del número.
El inconveniente es que los que acaban en ZZ, lineales, YAR y demás te los seguirá ordenando alfabéticamente como si no fueran rodamientos.

Te comprarto el libro modificado vía gdrive:
https://drive.google.com/file/d/1mKEPtqjgUuN4DbicHytgRPP_wv3Ns81r/view?usp=sharing 
Para que funcione tienes que ordenar primero por Nombre y luego por número, tal que así:

¿Te ayuda esto?

2 respuestas más de otros expertos

Respuesta
2

Y si extraes el número a otra columna y ahí ordenado por el número

Respuesta
2

Una opción más reducida para extraer el número:

=EXTRAE(A2,HALLAR(" ",A2)+1,HALLAR(" ",A2&" ",HALLAR(" ",A2)+1)-HALLAR(" ",A2)-1)*1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas