Todo lo que debes saber sobre la función EVALUAR en Excel

la función evaluar en excel: cómo usarla y cuando no debes usarla

Antes de empezar con este tema, te lo digo claro:

No te recomiendo que uses la función EVALUAR en tus archivos de Excel.

Y no lo digo porque sea difícil de entender o porque tenga “trucos ocultos” (que los tiene). Lo digo por dos razones de peso que deberías tener muy presentes:

  1. Porque EVALUAR puede ejecutar fórmulas a partir de texto… y eso abre la puerta a errores graves, inyecciones maliciosas y otros regalitos que no quieres tener en tu archivo.
  2. Porque es una función obsoleta, sin soporte oficial. Es decir, si algo falla, nadie de Microsoft va a ayudarte.

Ahora que ya te he advertido, vamos al lío.

¿Qué es EVALUAR en Excel?

La función EVALUAR (o EVALUATE, si tienes Excel en inglés) es una función heredada del Excel de los 90, concretamente de las macros XLM de Excel 4.0. Su función es sencilla de entender:

Convierte una cadena de texto en una fórmula real y devuelve el resultado.

Así de potente y así de peligrosa.

Por ejemplo, si tienes en una celda el texto «1+1», EVALUAR puede leerlo, interpretarlo como fórmula y devolverte el número 2.

Pero no te emociones: no puedes usarla escribiendo =EVALUAR() directamente en una celda, porque eso da el curioso error de la imagen.

Entonces… ¿cómo demonios se usa?

¿Dónde funciona EVALUAR y dónde no?

✅ Funciona en:

  • Excel para Windows de escritorio (siempre que esté habilitado el contenido de macros)
  • Libros con macros (extensión .xlsm)
  • Macros VBA (como método Application.Evaluate)
  • Nombres definidos (como veremos más abajo)

❌ NO funciona en:

  • Excel Online
  • Excel para móviles
  • Archivos .xlsx
  • Archivos con macros deshabilitadas
  • Entornos colaborativos o con protección activa

Cómo activar EVALUAR mediante un nombre definido

Esta es la forma más común de utilizar EVALUAR hoy en día sin VBA:

  • Abre el Administrador de Nombres En la pestaña Fórmulas > Administrador de nombres o pulsa Ctrl + F3.
  • Crea un nuevo nombre Pulsa en “Nuevo” y escribe, por ejemplo, EvaluaTexto.
  • Introduce la fórmula EVALUAR En el campo “Se refiere a”, escribe algo como =EVALUAR($A1) (suponiendo que estás en la celda B1 y que el texto está en la columna A).
  • Usa ese nombre en la hoja En B1, escribe =EvaluaTexto. ¡Y listo! Si en A1 tienes el texto =3*7, B1 te devolverá 21.

Esto, bien montado, te permite aplicar evaluaciones dinámicas a una lista de fórmulas escritas como texto.

¿Y si quiero hacerlo con VBA?

También puedes usar EVALUAR en tus macros, de forma directa, así: vbaCopiarEditarFunction EvalFormula(texto As String) As Variant EvalFormula = Application.Evaluate(texto) End Function

Después puedes usar =EvalFormula(«SUMA(A1:A10)») como si fuera una función nativa.

Eso sí: el archivo tiene que estar habilitado para macros y los macros deben estar activos.

¿Cuándo tiene sentido usar EVALUAR en Excel?

Vale, ya sabes cómo se activa EVALUAR.

Pero la gran pregunta es: ¿realmente la necesitas?

Spoiler: en la mayoría de los casos, no.

Vamos a ver algunos usos reales donde EVALUAR tiene su gracia, pero también sus limitaciones, y luego te presento alternativas modernas que hacen lo mismo de forma más limpia, segura y compatible.

💡 Ejemplo práctico: Evaluar fórmulas escritas como texto

Supongamos que en la columna A tienes varias fórmulas escritas como texto:

Con el nombre definido Resultado = EVALUAR($A1) puedes calcular los resultados automáticamente en la columna B.

Esto es útil, por ejemplo:

  • Para mostrar fórmulas «en limpio» en una tabla y calcular sus resultados al lado.
  • Para hojas donde los usuarios eligen entre varias expresiones predefinidas.
  • Para construir pequeñas calculadoras que cambian según la selección del usuario.

Ahora bien, esto no recalcula solo si cambian las celdas referenciadas dentro del texto.

🔁 Solución: hacer la fórmula volátil. Puedes forzar la actualización así:

=SI(HOY(), EVALUAR($A1), «»)

O si lo usas en VBA, añade Application.Volatile dentro de la función.

Los riesgos reales de usar EVALUAR

Esto no es una advertencia genérica. EVALUAR tiene peligros muy concretos:

Ejecuta fórmulas sin control

Si alguien introduce en la celda un texto tipo =DDE(…) o algo similar, Excel lo ejecutará. No hay filtros. Ni alertas. Ni revisión. Se ejecuta y punto.

Es un imán para el malware

Durante años, las macros XLM (de donde viene EVALUAR) se han usado para distribuir virus y troyanos. Microsoft lo sabe, y por eso:

  • Las macros XLM ahora vienen desactivadas por defecto.
  • EVALUAR no tiene soporte oficial.
  • Y todo archivo que la use levanta sospechas automáticamente en sistemas protegidos.

No es compatible con Excel Online

Si haces un modelo colaborativo, olvídate. Abrir un archivo con EVALUAR en Excel Online mostrará un aviso de “contenido no compatible”. Así que si compartes tu archivo por Teams, SharePoint o similares, esto es un problema.

No deja rastro en las celdas

Como usas nombres definidos, los resultados aparecen… pero no ves la fórmula. Eso dificulta la depuración, el mantenimiento y el traspaso del archivo a otras personas. Y si además combinas varios nombres definidos con EVALUAR, el archivo se vuelve una caja negra.

Alternativas modernas a EVALUAR

Afortunadamente, Excel ha evolucionado. Hoy tienes formas mucho más robustas y limpias de lograr efectos similares.

LET

Permite definir nombres dentro de una fórmula. Es útil para evitar escribir la misma lógica varias veces, y para estructurar fórmulas complejas.

=LET(rango, A1:A10, SUMA(rango))

Recomendado cuando:

  • Quieres usar variables en una fórmula.
  • Necesitas claridad y mantenimiento.
  • Trabajas en Excel 365.

LAMBDA

Te permite crear funciones personalizadas sin escribir código VBA.

Ejemplo: puedes crear una función llamada CalculoInteligente que reciba un parámetro y, según su valor, ejecute distintos cálculos.

=LAMBDA(tipo, rango, SI(tipo=»SUMA», SUMA(rango), SI(tipo=»PROMEDIO», PROMEDIO(rango), «Tipo no válido»)))

Puedes guardarla como nombre definido y usarla como una función nativa.

No necesita macros y funciona en Excel Online.

INDIRECTO

No evalúa fórmulas, pero sí referencias.

Si lo que necesitas es construir referencias dinámicas del tipo “Hoja1!A1”, esta es la función adecuada.

=INDIRECTO(«Hoja1!A» & B1)

VBA (Evaluate)

Si trabajas con macros, puedes crear funciones personalizadas con Application.Evaluate() y controlar bien el comportamiento.

Function EvalFormula(texto As String)
EvalFormula = Application.Evaluate(texto)
End Function

Ideal cuando necesitas evaluación de texto pero con validaciones, control de errores y estructura.

Power Query

Si necesitas evaluar expresiones más complejas o controlar mejor los cálculos, Power Query tiene su propia función: Expression.Evaluate.

No es para todos los públicos, pero en escenarios de análisis de datos más potentes puede ser una opción más segura y controlada.

Resumiendo

EVALUAR puede llegar a ser útil… pero no es para cualquiera.

Puede sacarte de un apuro en modelos muy concretos, pero también puede generarte más dolores de cabeza que soluciones si no sabes lo que haces.

Yo te recomiendo:

  • Evitarla si puedes lograr el mismo efecto con LET, LAMBDA o VBA.
  • No usarla en entornos colaborativos ni archivos que vayan a circular por email.
  • Documentar muy bien su uso si decides incorporarla en algún archivo.
  • Guardar SIEMPRE como archivo con macros (.xlsm), y comprobar que el contenido se actualiza correctamente.