
Quiero tener dos celdas en Excel:
En el primero de ellos (fx A1) quiero tener una ecuación como 2 + 2
En el segundo (fx A2) quiero tener la solución = 4.
¿Cómo puedo hacerlo?
Respuesta1
Primero ingrese la siguiente UDF en un módulo estándar:
Public Function eval(strng As String) As Variant
eval = Evaluate(strng)
End Function
luego en A2 ingresa:
=evaluar(A1)
Las funciones definidas por el usuario (UDF) son muy fáciles de instalar y utilizar:
- ALT-F11 abre la ventana VBE
- ALT-I ALT-M abre un módulo nuevo
- pegue las cosas y cierre la ventana de VBE
Si guarda el libro de trabajo, la UDF se guardará con él. Si está utilizando una versión de Excel posterior a 2003, debe guardar el archivo como .xlsm en lugar de .xlsx.
Para eliminar la UDF:
- abrir la ventana VBE como arriba
- borrar el código
- cerrar la ventana VBE
Para utilizar la UDF desde Excel:
=mifunción(A1)
Para obtener más información sobre las macros en general, consulte:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
y
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
y
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
para obtener detalles sobre las UDF
Las macros deben estar habilitadas para que esto funcione.!
Respuesta2
Es posible que no pueda hacer exactamente lo que desea utilizando una función de hoja de cálculo, esto esrespondido aquíy esto por diseño.
Puedes lograr esto con VBa (y tu publicación no indica usar VBa o no, así que supongo que no) o buscas could
el antiguo XLM GET.FORMULA() pero VBa es mejor (y no sé nada de XLM)
Es posible que puedas hacer algo como
=FORMULATEXT(formulaCell)
FORMULATEXT requires the morefunc.xll add-in.
Sin embargo, como solución alternativa y basándose en el ejemplo exacto de su pregunta, puede hacer lo siguiente (que funciona)
=SUM(LEFT(A1,1),RIGHT(A1,1))
Esto solo funcionará cuando la fórmula sea N+N (donde N es 1 dígito), pero dependiendo de cuántas filas de datos tenga, ¡esto puede ajustarse a sus necesidades!