
Quiero analizar una declaración de concatenación de Excel para encontrar el resultado de la expresión adjunta. Por ejemplo: =CONCAT("=1-2-3+7*8")
debería devolver 52 y
=CONCAT("=AVERAGE(A1,A2)")
debería devolver el promedio de los dos campos. ¿Existe alguna función o alguna otra forma de lograr esto en Excel?
Respuesta1
Pruebe la siguiente función definida por el usuario:
Public Function raghav(rng As Range) As Variant
Dim s As String
s = Mid(rng(1).Formula, 2)
arr = Split(s, Chr(34))
For Each a In arr
If Left(a, 1) = "=" Then
raghav = Evaluate(a)
Exit Function
End If
Next a
End Function
Las funciones definidas por el usuario (UDF) son muy fáciles deinstalary use:
- 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.
Aeliminarla UDF:
- abrir la ventana VBE como arriba
- borrar el código
- cerrar la ventana VBE
Ausarla UDF de Excel:
=raghav(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 para obtener detalles sobre las UDF, consulte:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
¡Las macros deben estar habilitadas para que esto funcione!