En al sección "
TusDudas" del presente blog, un lector (al cual vuelvo a agradecer sus palabras) me plantea el tema que detallo a continuación: "
tengo la cadena de texto GEL DE BA¾O Y DUCHA VOYAG. Ese ¾ es incorrecto, y necesito reemplazarlo por la letra correspondiente, o sea una Ñ"
Esta cuestión se resuelve de forma muy sencilla con la función:
=SUSTITUIR(texto, texto_original, texto_nuevo)
En texto colocamos la cadena de caracteres, en texto_original el caracter que está mal y en text_nuevo el caracter correcto. Nos queda:
y todo bien. pero las cosas no son tan sencillas si las analizamos un poco mas.
que sucede si existen dos, tres o mas caracteres para sustituir?
[+/-] Ver el resto / Ocultar
Estimo que mi lector se encuentra trabajando con algún tipo de copiar y pegar desde la web... o datos html... o bases de datos mysql, que generalmente retornan de forma incorrecta muchos caracteres.
Puede suceder, sin animo de complicar la cosa, que una misma frase contenga varias letras erróneas. Podría realizar una serie de funciones matriciales anidadas y todo eso... pero mejor hago algo mas fácil y recurro al Editor de VBA, para crear mi propia función.
Una imagen con el problema planteado por mi:
una frase... varios errores.
Entonces propongo lo siguiente: Editor de VBA, Insertar / Modulo y pegamos este código:
Public Function ReemplazarCaracteres(Texto As String, letrasMalas As Range, letrasBuenas As Range)
'variables de uso local
Dim T1, T2, Resultado As String
Dim I As Integer
'uno en cadenas de texto las celdas del segundo
'y tercer argumento:
For I = 1 To letrasMalas.Cells.Count
T1 = T1 & letrasMalas(I)
T2 = T2 & letrasBuenas(I)
Next I
'con este bucle recorro la cadena de "letrasMalas"
'y reemplazo con su correspondiente "letrasBuenas"
For I = Len(T1) To 1 Step -1
aa = Trim(Mid(T1, I, 1))
bb = Trim(Mid(T2, I, 1))
Resultado = Replace(Texto, aa, bb)
Texto = Resultado
Next I
'retorno el resultado de la función:
ReemplazarCaracteres = Resultado
End Function
La funcion tiene tres argumentos, obligatorios:
1) Texto (que es la celda en donde se encuentra la frase)
2) letrasMalas (un rango de celdas en donde introduje todos los caracteres erróneos)
3) letrasbuenas (un rango de celdas en donde introduje los caracteres correctos)
Una vez que la ingreso, el resultado es:
Verán que el segundo y tercer argumento son dos rangos: $D$1:$D$4 y $E$1:$E$4, los cuales muestro a continuación:
notá, estimado lector, que sigo un orden: Ñ reemplaza a 3/4 --- A reemplaza a % y así sucesivamente.
Si llegasen a existir mas caracteres erróneos, solo debemos agregarlos en la columna D y en E que letra será el que lo reemplace. Y, desde ya, pasar los nuevos rangos como argumentos.
Toda vez que aplicamos las funciones y corroboramos que los datos son correctos, podemos seleccionar el rango ir a Copiar y luego a Pegado Especial / Valores, para que Excel elimine las funciones... ya que si son miles y miles el aplicativo se puede ralentizar.
Espero que te sea de utilidad.
Comentarios
Publicar un comentario