martes, 23 de mayo de 2017

La función FORMULATEXTO y cómo sacar datos de una fórmula

Un lector del blog consultaba por la forma de extraer información a partir de las partes que componen una fórmula.

El comentario del usuario:
[...]Se trata de conseguir extraer de una celda con una formula del tipo =500*1,25 lo que va antes del signo *. pero al usar la función hallar, como * es precisamente un comodín me sale siempre la 1ª posición y aunque le ponga hallar "*1," tampoco funciona, aunque esto no me valdría porque podría darse el caso de que se multiplique por otro numero[...]


Para dar respuesta a este problema partiremos del siguiente conjunto de celdas formuladas:

La función FORMULATEXTO



Comprobamos que existe un patrón en todas las fórmulas, donde se está realizando un producto de varios importes y que, de acuerdo a lo solicitado, necesitamos trabajar únicamente con el primero de los valores (lo que va antes del signo *).

La solución nos la dará una función poco frecuente: FORMULATEXTO.
Esta función es interesante porque nos devuelve en modo cadena de texto las fórmulas o funciones introducidas en nuestras celdas.
Precisamente esta característica es de la que nos aprovecharemos para recuperar la información que necesitamos... ya que con las funciones de texto EXTRAER y ENCONTRAR trataremos la cadena de texto devuelta, consiguiendo finalmente nuestro objetivo.



La fórmula que buscamos para obtener lo requerido es (en la celda D2):
=EXTRAE(FORMULATEXTO(B2);2;ENCONTRAR("*";FORMULATEXTO(B2))-2)
donde del texto devuelto por la función FORMULATEXTO empezamos a extraer desde la posición 2, i.e., después del igual; y extraemos los caracteres hasta la posición anterior al signo de multiplicación o asterisco...
Si lo necesitáramos, para convertir el dato devuelto a número, podríamos anidar la fórmula anterior dentro de la función VALOR.

De esta forma hemos salvado el problema del lector y el conflicto que causaba usar el asterisco como signo de búsqueda, ya que es un operador de multiplicación pero también un carácter comodín.

No hay comentarios:

Publicar un comentario