Eliminar caracteres de una celda

Solo consultas sobre Funciones y Fórmulas Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Eliminar caracteres de una celda

Notapor faguebaz » 04 Jul 2007 20:40

Hola:

Tengo un archivo que contiene una columna con palabras, las cuales en algunos casos pueden llevar caracteres que no son letras, como signos de puntuación, interrogación, exclamación, etc

Ejemplo
árboles,
positivamente;
seguro?
maravilloso!
siguientes:

Cómo puedo hacer para eliminar esos signos y que me queden sólo las palabras?
No conseguí­ una función que lo haga. Si sólo fueran 4 signos, "texto en columnas" harí­a el trabajo, pero son muchos por ejemplo, ;:.?¿!¡"(<, etc.

Muchas gracias por la ayuda,

Saludos,

Faguebaz
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
faguebaz
Miembro Frecuente
Miembro Frecuente
 
Registrado: 30 Dic 2006 09:58

Re: Eliminar caracteres de una celda

Notapor sailepaty » 04 Jul 2007 22:42

Prueba con esta función, si necesitas mas signos solo agrégalos en el código y listo.

Código: Seleccionar todo
Function LimpiarTexto(Texto As String)
    Dim RegExp As Object
    Set RegExp = CreateObject("vbscript.regexp")
    With RegExp
        .Pattern = "['.""*/:<>?\\|]"
        .Global = True
        LimpiarNombre = .Replace(Texto, "")
    End With
End Function


Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
sailepaty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 27 Oct 2004 12:31
Ubicación: Dallas, TX

Re: Eliminar caracteres de una celda

Notapor galileogali » 04 Jul 2007 23:01

Segun parece SAILE me ha ganado de mano, asi que aqui mi version con una UDF.

Código: Seleccionar todo
Public Function DepuraTexto(impura As String) As String
Dim trans As String, LETRA As String, CARACT As Byte, i As Long


For i = 1 To Len(impura)
LETRA = UCase(Mid(impura, i, 1))
CARACT = Asc(LETRA)

trans = trans & IIf(CARACT > 64 And CARACT < 91, Mid(impura, i, 1), "")
Next i
DepuraTexto = trans

End Function
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
galileogali
Moderator
Moderator
 
Registrado: 07 Ene 2005 22:46
Ubicación: QUIROGA (ba), ARGENTINA

Re: Eliminar caracteres de una celda

Notapor galileogali » 04 Jul 2007 23:12

un pequeño "lapsus scripturae" en la UDF de SAILE...., donde dice LimpiarNombre deberia decir LimpiarTexto
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
galileogali
Moderator
Moderator
 
Registrado: 07 Ene 2005 22:46
Ubicación: QUIROGA (ba), ARGENTINA

Re: Eliminar caracteres de una celda

Notapor galileogali » 04 Jul 2007 23:34

Aprovechándome un poco de la idea de SAILE, pero sin vbsscript

Código: Seleccionar todo
Function LimpiarCadena(Texto As String) As String
Dim i As Integer, Patern As String, CARACT As String, Trans As String

Patern = "['.""&%*/:<>?\\|]"
Trans = Texto
For i = 1 To Len(Texto)
    CARACT = Mid(Texto, i, 1)
    If InStr(1, Patern, CARACT) Then Trans = Replace(Trans, CARACT, "")
Next i
LimpiarCadena = Trans

End Function
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
galileogali
Moderator
Moderator
 
Registrado: 07 Ene 2005 22:46
Ubicación: QUIROGA (ba), ARGENTINA

Notapor ST » 05 Jul 2007 00:43

+ que magnificas las aportaciones :-)...
ahora yo quisiera aprovecharme del teacher Gali para que 'nos retocara' su 1ª funcií²n ya que no contempla las letras con acentos y a decir verdad ahorita estoy como bebito....--> mi cpu no da una :-(
bueno ya me arrepenti,jeje solo hay que incluir el caracter 193 =í€ ...y listo (tome los datos de ejemplo de faguebaz)
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
ST
Miembro Frecuente
Miembro Frecuente
 
Registrado: 06 Jun 2005 17:56
Ubicación: Acapulco

Re: Eliminar caracteres de una celda

Notapor faguebaz » 05 Jul 2007 07:54

Hola:

Muchas Gracias por la respuesta. Dime por favor, donde debo colocar esta función para que trabaje. Me llama la atención que en su sintaxis no veo cómo indicarle en cual columna debe mirar para hacer lo que necesito.

Muchas Gracias,

Faguebaz
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
faguebaz
Miembro Frecuente
Miembro Frecuente
 
Registrado: 30 Dic 2006 09:58

Re: Eliminar caracteres de una celda

Notapor galileogali » 05 Jul 2007 08:04

Me comí­ los acentos. En sí­ se trata de algo bastante "lógico", es decir: "ME TILDí‰ CON LAS TILDES".

Bueno. ahora como para arreglarla solo se me ocurre un "patch"

Código: Seleccionar todo
Trans = Trans & IIf((CARACT > 64 And CARACT < 91) Or (CARACT > 91 And CARACT > 222), Mid(impura, i, 1), "")


Sin embargo, quedan en ese intervalo algunos caracteres que bien podrí­an ser usados como SIGNOS no alfabéticos (me refiero al alfabeto con cuna en Valladolid), pero bueno será, en ese supuesto, necesario agregar más Cases o bien plantear un Select Case. Ahora bien, cuantas más inclusiones o exclusiones se convengan habrá que ir pensando en las otras dos opciones (SAILE y 2da mia)
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
galileogali
Moderator
Moderator
 
Registrado: 07 Ene 2005 22:46
Ubicación: QUIROGA (ba), ARGENTINA

Re: Eliminar caracteres de una celda

Notapor ioyama » 05 Jul 2007 08:07

Hola faguebaz

Copia la fución en un módulo (si usas la de sailepaty, recuerda hacer la correción que anota Gali), después si lo que quieres es limpiar la celda A1, en B1 escribes =LimpiarTexto(A1) si usas la función de sailepaty o =DepuraTexto(A1) si es la de Gali.

En caso de que sólo te interese el texto limpio, copia B1 y pegas como valores en A1, luego eliminas B1.

La función opera como cualquiera de las "nativas" puedes hacer copias realativas o usarla con macros.

Un saludo desde Vitoria
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ioyama
Miembro Frecuente
Miembro Frecuente
 
Registrado: 28 Ene 2005 09:12
Ubicación: Vitoria

Re: Eliminar caracteres de una celda

Notapor galileogali » 05 Jul 2007 08:14

Perdon, se me dio vuelta un operador comparativo

Código: Seleccionar todo
Trans = Trans & IIf((CARACT > 64 And CARACT < 91) Or (CARACT > 91 And [b]CARACT < 222[/b]), Mid(impura, i, 1), "")
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
galileogali
Moderator
Moderator
 
Registrado: 07 Ene 2005 22:46
Ubicación: QUIROGA (ba), ARGENTINA

Re: Eliminar caracteres de una celda

Notapor faguebaz » 05 Jul 2007 10:52

Muchas Gracias ioyama por el invaluable dato final,:

Ambas versiones funcionan perfectamente.

Así­ que muchas gracias a TODOS,

Saludos,

faguebaz
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
faguebaz
Miembro Frecuente
Miembro Frecuente
 
Registrado: 30 Dic 2006 09:58

Re: Eliminar caracteres de una celda

Notapor KL » 05 Jul 2007 10:54

En todo caso, la funcion con RegExp deberia ser veces mas rapida que la del bucle, pero igual me equivoco :-)
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Funciones y Fórmulas

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados