La función FORMULATEXTO y Excel 2010

jueves, diciembre 04, 2014

Una de las nuevas funciones en Excel 2013 es FORMULATEXTO. Esta función, disponible solamente en Excel 2013 y Excel 365, transforma la fórmula de una celda en texto.


¿Para que sirve?, me preguntarán Básicamente, para documentar fórmulas, como la que aparece en la imagen. La fórmula calcula la fecha del tercer lunes de un mes determinado (la nota sobre el tema la publicaré próximamente).

En algunas de mis notas suelo incluir el texto de la fórmula. Para obternerlo suelo copiar la fórmula directamente de la barra de las fórmulas y pegarla en una celda previamente formada como Texto o pegarla quitando el símbolo "=" para que Excel no la interprete como fórmula.

Dado que la mayor parte de mis notas las desarrollo con Excel 2010, decidí que podría crear una UDF (función definida por el usuario) que imite el funcionamiento de FORMULATEXTO para poder usarla en versiones de Excel anteriores a Excel 2013.

El código de la función es el siguiente


Function formulaText(rcell As Range, vType As Boolean) As String

    If rcell.HasFormula = False Then
        formulaText = "#NA!"
        Exit Function
    End If
  
    Select Case vType
        Case Is = False
            formulaText = rcell.FormulaLocal
        Case Is = True
            formulaText = Mid(rcell.FormulaLocal, 2, Len(rcell.FormulaLocal) - 1)
    End Select
    
End Function



La función tiene dos argumentos:

  • rcell: es la celda que contiene la fórmula
  • vType: que puede ser 0 o FALSO (incluye el símbolo "=" al principio de la fórmula) o 1  o VERDADERO (el texto no muestra el símbolo "=")


4 comments:

Juan Rodriguez 05 diciembre, 2014 13:42  

La verdad es que es un poco complicada de entender, creo que sería conveniente si pudieras adjuntar un excel con algún ejemplo, para poder ver el posible potencial que tiene esta función.
Un saludo

Jorge Dunkelman 05 diciembre, 2014 18:54  

No tan complicada, como puedes ver en la ayuda en línea de Excel.
Además de la posibilidad de documentar fórmulas usadas en la hoja, otro usopodría ser medir el largo de la f´romula. Fuera de eso no le veo mucho potencial que digamos.

Emilio Carmona 11 febrero, 2015 06:43  

Excelente Jorge, se agradeceria contar con una UDF de ESFORMULA (disponible solo a partir de excel 2013) en excel 2010

Jorge Dunkelman 11 febrero, 2015 11:59  

En su forma más elemental sería

Function esformula(rCell As Range) As Boolean
esformula = rCell.HasFormula
End Function

Si la celda contiene una fórmula da TRUE; en caso contrario FALSE

Publicar un comentario

Google+ Followers

Seguidores

Google+ Badge

Términos Legales

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP