En ocasiones debemos realizar algún cálculo combinando varias funciones en una gran fórmula, 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 fórmula sería 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 artículo.
- ¿VBA?, si no estás familiarizado con VBA, puedes leer este articulo.