Hola a todos:
Esta semana he tenido muy poco tiempo para escribir nuevos post, han sido muchas consultas y algunas me han llevado más tiempo de lo que había previsto.
No obstante, hoy voy a escribir una pequeña entrada sobre una función que resulta muy útil para aquellas tareas en las necesitemos invertir el orden de los caracteres de una cadena de texto.
Usando matrices y bucles también se podría llegar al mismo resultado, pero cuando ya existe en VBA una función específica, lo más eficiente es usarla 🙂
Vamos, imaginad que tenéis las siguientes frases en vuestra hoja Excel:
y necesitáis escribir ese texto al revés, es decir, invertir el orden de los caracteres que lo componen, por ejemplo, EXCEL SIGNUM quedaría así: MUNGIS LECXE (un poco difícil de pronunciar 🙂 .
Pues bien, para realizar este trabajo, vamos a usar una UDF (Función Definida por el Usuario):
Function Invertir(ByVal Micelda As String)
Invertir = StrReverse(Micelda)
End Function
Ahora podemos escribir nuestra función en la barra de fórmulas de nuestra hoja (Invertir) y nos aparecerá como cualquier otra, y donde solo tenemos un argumento, que es la celda seleccionada:
El resultado será este:
Como podéis observar con tres líneas de código realizamos la tarea rápidamente, sin necesidad de acudir a fórmulas matriciales complejas ni bucles que ralentizarían nuestro trabajo.
Ah, se me olvidaba, no queréis espacios en blanco entre las palabras, simplemente los elimináis:
Invertir = StrReverse(Replace(Micelda, " ", ""))
Y eso es todo por hoy. Espero que os sea de utilidad para temas de codificaciones o seguridad informática.
Descarga el archivo de ejemplo pulsando en: INVERTIR EL ORDEN DE LOS CARACTERES DE UNA CADENA DE TEXTO O NUMÉRICA
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Hola!! Tal vez puedas ayudarme! ¿Qué debo hacer si lo que necesito es reordenar la información (nombres propios) escritos en cada celda en toda una lista (aprox 100 items), de tal manera que en vez de aparecer «Pérez Martínez Juan» aparezca «Juan Pérez Martínez» ?
Ojalá me puedas ayudar porque hasta ahora estoy haciendo todo a mano y me ha llevado muchísimo tiempo 🙁
Gracias de antemano!