En ocasiones debemos realizar algún calculo combinando varias funciones en una gran formula, que al final resulta algo difícil de entender, por ejemplo la formula:
=REEMPLAZAR(A2, ENCONTRAR("facil",A2,1), LARGO("facil"),"complicada")
Que busca en un texto la palabra fácil y la reemplaza por la palabra complicada, este ejemplo es solo para hacer una demostración. Esta formula seria más fácil de usar de esta forma:
=ReemplazarTexto(A2,"facil","muy facil")
Para llegar a este resultado puedes crear una función personalizada, haciendo uso de las funciones que ya vienen incorporadas en Excel. Para acceder a ellas debes utilizar el objeto WorksheetFunction de VBA como en el siguiente ejemplo:
Function ReemplazarTexto(Valor As String, Buscar As String, NuevoValor As String) As String With WorksheetFunction ReemplazarTexto = .Replace(Valor, .Find(Buscar, Valor, 1), Len(Buscar), NuevoValor) End With End Function
La sección With WorksheetFunction … End With se usa para indicar que todo lo que se escriba a continuación de un punto (.) es parte del objeto WorksheetFunction, el cual es un objeto que contiene las funciones incorporadas en Excel, de otra forma tendríamos que llamarlas así: WorksheetFunction.Replace
Notas:
- No importa si tu Excel está en ingles o español, las funciones en el objeto WorksheetFunction, siempre estarán en ingles.
- Los parámetros de las funciones en este objeto son los mismos que usas en la hoja de cálculo.
- No todas las funciones de Excel están disponibles en el objeto WorksheetFunction.
- Si tienes algún problema o duda sobre como crear una función personalizada te recomiendo leer este articulo.
- ¿VBA?, si no estás familiarizado con VBA, puedes leer este articulo.