# Averiguar si es formula



## Ramon Garrido (Feb 9, 2006)

1)Como puedo saber si una celda contiene una formula usando Excel y no VBA.
2) Como puedo traer como resultado en una celda el texto de una formula que esta en otra celda sin usar VBA


----------



## RalphA (Feb 11, 2006)

> 1)Como puedo saber si una celda contiene una formula usando Excel y no VBA.


1a Si usted pone el cursor sobre la celda, podrá ver la fórmula en el “Formula bar”.
1b. Si usted hace click en Edit, Go To, Special, Formula, todas las celdas que contienen una fómula serán marcadas.



> 2) Como puedo traer como resultado en una celda el texto de una formula que esta en otra celda sin usar VBA


2. Yo necesito una mejor explicación para poder contestarle esta pregunta.


----------



## Ramon Garrido (Feb 12, 2006)

Gracias por la respuesta....

Ok.. Permitame explicarme:

1) Necesito una función que determine si el contenido de una celda es formula. He usado la función ESREF pero no funciona.
2) Si es fórmula, necesito traerme el texto de la formula y no el resultado como lo hace normalmente.
3) Puedo hacer 1 y 2 sin usar VBA ?


----------



## RalphA (Feb 12, 2006)

Ramón:

Contestando nuevamente sus tres preguntas:

1. Creo que la función “TYPE()” debería dar la solución a su primer pregunta, pero no he podido decifrar cómo hacerla funcionar correctamente para una fórmula.  ¿Quizá otra persona podrá ayudarnos?
2. No tengo contestación.
3. No tengo contestación.


----------



## RalphA (Feb 12, 2006)

Ranón:

Tengo buenas noticias, al menos para su primer pregunta.  Fuí al MrExcel en inglés, planteé su problema, y trataron de ayudarme tres estrellas de Excel, a saber: Norrie, Aladín, y Paddy.  El último me dió la solución, que intentaré describir, utilizando el ejemplo siguiente:

En A1, ponga 1
En A2, ponga =2
En A3, ponga =3

En B1, ponga  1; se verá el número 1
En B2, ponga =A2*2; se verá el resultado 4
En B3, ponga =SUM(A1:A3); se verá el resultado 6

Ponga el cursor en C1, luego haga click en el Main Menu bar, en “Insert”, escoja “Name”, “Define”. 
Allí, en la ventanita bajo “Names in workbook:”, escriba un nombre adecuado (yo usé EsFormula).
En la ventanita “Refers to:”, que se encuentra en la parte baja, escriba la fórmula, 
=GET.CELL(6,OFFSET(INDIRECT("rc",FALSE),0,-1))
Note que los dos últimos números, “0,-1”, se refieren a bajar 0 filas (no cambiar de la hilera en que se hace la referencia), y a moverse a la derecha –1 columnas, es decir, moverse a la izquierda una columna, en el presente caso.  Si usted va a querer el resultado en otra celda, tendrá que cambiar estos dos numeros en forma apropiada.
Ahora, haga click en “Add” (en la mano derecha de la ventanita “Define Name” en que hemos estado trabajando, y, “OK”.

Ahora, en la celda C1, en donde suponemos queremos comenzar el uso de EsFormula, entre la fórmula: =EsFormula
y copie hacia abajo hasta, digamos, C5.

Veremos:
En C1,  1
En C2,  =A2*2
En C3,  =SUM(A1:A3) 
En C4, vacía
En C5, vacía

¿Qué le parece, Ramón?  Esos “gurus” de MrExcel que yo mancioné son una maravilla, ¿verdad?

Ahora, para ver únicamente la formulas, puede uno, digamos:
En la celda E1, poner =IF(LEFT(C1,1)=”=”,c1,””)
Y copiar hacia abajo.  Veremos:
E1 está vacía
E2 muestra  =As*2
E3 muestra  =SUM(A1:A3)
E4 y para abajo todas están vacías.


----------



## Greg Truby (Feb 13, 2006)

Bueno no leí cuidadosamente ese último, Rafa, pero veo que estás usando Get.Cell(6...) en una fórmula nombrada que fue justamente la solución que yo iba a proponer.  Y si Aladin y Paddy te la dieron, sé que debe de ser buena. Pero *¡OJO!* Ramón, si la razón por la cual usted no querría utilizar VBA para determinar si la celda contiene una fórmula es para no salir pescado en la red de seguridad.  Favor sepa que MS cerró esta escapatoria con Excel 2003.  Get.Cell es uno de los macros de Excel 4.0 que sale incluído para compatabilidad con versiones antiguas.  Uno podría usar los macros 4.0 sin aparecer en el «radar» de seguridad con las versiones hasta 2002.  Pero la verdad es que un sinvergüenza podría  hacer maldades con ellos y por eso ya seguridad pesca esos macros también.

Cordialmente,


----------



## jponce (Feb 18, 2008)

RalphA<SCRIPT type=text/javascript> vbmenu_register("postmenu_916798", true); </SCRIPT>  Esta pregunta y respuesta yo la anduve buscando por mucho tiempo, a mí en lo particular me a ayudado muchísimo, sin embargo; tengo una pregunta ¿Podrá hacerse esto como una fórmula personalizada que por ejemplo yo coloque =esformula(a1), y me desplegue el contenido de la fórmula en (a1)?

Gracias de antemano


----------



## galileogali (Feb 18, 2008)

Si lo que quieres es obtener la string de la Formula contenida, cambia el Parametro 6 de GET.CELL(6,....), por GET.CELL(41,....)

Supongo que habras notado que en lugar de GET.CELL, debemos usar en español:
= INDICAR.CELDA(41,......)


----------



## jponce (Feb 19, 2008)

Yo tengo la versión en Inglés. 
Como antes mencione esta fórmula que nos proporcionó RalphA me ayuda mucho, con el único inconveniente que yo tendría que colocarme en la parte derecha de la fórmula que necesite desplegar. Entonces me pregunto si puede hacer una pequeña Macro bajo este mismo principio que por ejemplo yo tenga los siguiente datos:
r1c1     1
r2c1 

Entonces


----------



## jponce (Feb 19, 2008)

Yo tengo la versión en Inglés. 
Como antes mencione esta fórmula que nos proporcionó RalphA me ayuda mucho, con el único inconveniente que yo tendría que colocarme en la parte derecha de la fórmula que necesite desplegar. Entonces me pregunto si puede hacer una pequeña Macro bajo este mismo principio donde la celda sea variable. 


a3 = a1+a2
b3 = b1+b2

Entonces con una fórmula yo podría tener fácilmente el dato de la a3 o  si prefiero el dato de la b3.

ejemplo  si coloco =esformula(a3)  ' Me desplegaría = a1+a2
            Si coloco =esformula(b3)  ' Me desplegaría = b1+b2


----------

