Un visitante del blog, me ha escrito en un comentario que tiene una lista en Excel de números que contienen una letra, pero a él solo le interesa el número, y me comenta si existe mediante una formula, quitar esta letra automáticamente y dejar únicamente el número, en caso contrario debe de celda por celda eliminar manualmente la letra con el consiguiente coste en tiempo que esto supone. Voy a aprovechar este comentario no solo para explicárselo a él sino a todos vosotros por si en alguna ocasión esto os puede servir de ayuda.
Mediante este Truco os voy a explicar como quitar letras, espacios, símbolos de una celda y dejar exclusivamente el numero.
NOTA. Este truco requiere de programación en Visual Basic, no os preocupéis seguir con atención cada uno de los pasos, por que el código del programa os lo voy a dar ya escrito, vosotros solo tenéis que copiar y pegar.
Comenzamos, la explicación del truco con una hoja de Excel en la que nos encontramos con diez celdas (quien dice 10 dice 3000 celdas) que contienen datos combinados de letras, números, caracteres, espacios, etc.
1º Si no tenemos activado el cuadro de edición de Visual Basic, vamos activarlo, (Saber si lo tenemos activado o no lo observamos si en la barra de menús tenemos el menú "Programador), para ello:
a) Le damos a la flecha que aparece en la barra de herramientas de acceso rápido de Excel, y le damos a la opción Mas Comandos.
b) Le damos a la opción "Mas Frecuentes", y activamos la casilla de verificación de la opción "Mostrar Ficha programador en la cinta de opciones" y le damos a "Aceptar".
Ahora vemos que nuestra hoja de calculo dentro de la barra de menús nos aparece el menú "Programador"
2º Ahora que tenemos el menú Programador, pinchamos sobre él, y de los botones que nos aparecen, pinchamos sobre Visual Basic.
3º Nos aparece una nueva ventana para realizar la programación en Visual Basic, para acceder a la ventana de programación, pinchamos sobre el botón "Agregar Modulo", y elegimos la opción "Modulo".
4º En el espacio en blanco que nos aparece copiamos y pegamos el código que os escribo a continuación:
Function SOLO_NUMEROS(In_Str)
Application.Volatile
Dim Temp_Str As String, Letra As String
Temp_Str = ""
On Error Resume Next
For c = 0 To Len(In_Str)
Letra = Mid(In_Str, c, 1)
If InStr("0123456789", Letra) > 0 Then
Temp_Str = Temp_Str & Letra
End If
Next
SOLO_NUMEROS = Temp_Str
End Function
Application.Volatile
Dim Temp_Str As String, Letra As String
Temp_Str = ""
On Error Resume Next
For c = 0 To Len(In_Str)
Letra = Mid(In_Str, c, 1)
If InStr("0123456789", Letra) > 0 Then
Temp_Str = Temp_Str & Letra
End If
Next
SOLO_NUMEROS = Temp_Str
End Function
Este es un código programado en Visual Basic para eliminar letras, símbolos y espacios de una celda y dejar solo los números.
Una vez pegado este código en nuestra ventana de Visual Basic nos aparecerá así:
A continuación vamos a Guardar nuestro programa, para ello le damos al botón Guardar.
En la siguiente ventana que nos aparece en la opción Guardar como tipo elegimos la opción "Libro de Excel Habilitado para Macros", le ponemos un nombre y le damos a Guardar.
Por último sobre la ventana de Visual Basic la cerramos pulsando sobre la X roja de la ventana superior derecha.
5º Una vez que tenemos el programa diseñado y guardado en nuestro hoja de calculo, vamos a proceder a convertir las celdas con letras, símbolos y espacios en celdas con solo los números. Para ellos nos situamos en la celda donde queremos que nos aparezca el resultado.
6º En la barra de formulas ponemos el signo igual = y a continuación escribimos la siguiente formula: VALOR(Solo_Numeros(A1))
Tener en cuenta que donde pone A1, es donde esta la celda que queremos convertir, si estuviera en otra celda, sustituimos A1 por la celda en cuestión, en nuestro ejemplo esta en la celda A1.
7º Una vez escrita la formula pulsamos INTRO, aparecerá en la celda donde hemos escrito la formula solo los números eliminando así espacios, signos y letras.
8º A continuación pinchamos sobre esta celda, y pinchamos sobre el cuadradito que nos aparece en la esquina inferior derecha. Y sin solar el botón del ratón arrastramos hasta el final de las celdas, convirtiendo cada una de ellas en números exclusivamente.
8º A continuación pinchamos sobre esta celda, y pinchamos sobre el cuadradito que nos aparece en la esquina inferior derecha. Y sin solar el botón del ratón arrastramos hasta el final de las celdas, convirtiendo cada una de ellas en números exclusivamente.
Hola! muy buenos tus consejos, yo queria preguntarte, para validacion de datos:
ResponderEliminarComo hago para que en una celda solo me permita ingresar texto
Como hago para que una celda me permita ingresar numeros y texto.
Lo pregunto porque hasta ahora no he podido lograrlo.
Muchas gracias
Pamela
I intended to draft you a bit of word in order to thank you again for those nice solutions you've featured in this article. This is quite pretty open-handed with people like you to offer unhampered all a few individuals could possibly have distributed for an e book to help make some dough for themselves, mostly considering that you could have tried it in case you decided. These solutions in addition served as the great way to know that most people have the same dreams just as my personal own to know the truth very much more around this issue. I know there are many more fun situations in the future for individuals who read your blog post.
ResponderEliminarMy site :: sea ray boats for sale used
Buen ejercicio, pero si tengo valores decimales, elimina el punto =S
ResponderEliminarMe ocurría lo mismo, Eduardo. Si no tienes más de un punto (o coma) decimal por celda, puedes añadir un "." (o ",") a los números de esta línea: If InStr("0123456789", Letra) > 0 Then
ResponderEliminarDe modo que te quede esto : If InStr("0123456789.", Letra) > 0 Then
Me solución la misma cuestión
Me reporta un error #error Como puedo arreglarlo
EliminarFunction SOLO_NUMEROS(In_Str)
Application.Volatile
Dim Temp_Str As String, Letra As String
Temp_Str = ""
On Error Resume Next
For c = 0 To Len(In_Str)
Letra = Mid(In_Str, c, 1)
If InStr("0123456789.", Letra) > 0 Then
Temp_Str = Temp_Str & Letra
End If
Next
SOLO_NUMEROS = Temp_Str
End Function
Excelente
ResponderEliminarBuenos días, señores y si quiero dejar solo las letras como debo hacer??
ResponderEliminarme has ahorrado una cantidad de trabajo enorme :) es muuuuy efectivo, gracias :)
ResponderEliminarGenial resolviste mi problema thanks !!!!
ResponderEliminarmuchas gracias por el aporte, pero necesito ayuda ya que debo vincular de una celdas la que contiene fecha con horas a otra pero que solo traspase la fecha sin horas, espacios ni guiones. Lo intente con la opción formato de celda pero al pegar este como valor me entrega visualmente la fecha pero si coloco el puntero en la celda se ve con horas
ResponderEliminarNecesito copiar la informacion para pegarla en otra hoja y al momento de pegarla me quedan todos los bloques como #VALOR... help
ResponderEliminarGracias me ahorrastes mucho trabajo.
ResponderEliminarMil gracias por compartir esta herramienta, es realmente util, saludos!!
ResponderEliminarCapooooo justo lo que estaba buscano
ResponderEliminarexcelente... de verdad que me fue de mucha utilidad
ResponderEliminarexcelenteeee, graciassssssss, y ahora como haria para colocarle a esos numeros una coma en el segundo decimal?
ResponderEliminarINCREIBLE pero que bueno estooooooo
ResponderEliminarME HA VENIDO DE LUJO
En una tabla donde aparecen varios valores sólo algunos salen con signo "<" necesito una manera de que en todas las celdas donde aparezcan los signos "<" los quite y luego el número lo divida en 3
ResponderEliminar