Traducir fórmulas de Excel de inglés a español y viceversa

Todos los usuarios de Excel deben saber que la hoja de cálculo fue diseñada desde sus inicios en inglés y por esta razón, el “motor” de Excel piensa y habla en inglés.

Hoy en día tenemos versiones de Excel en diferentes idiomas, pero nunca se ha reemplazado el “motor” en inglés, sino que se agrega un paquete de idioma que sirve como traductor para las fórmulas y las funciones.

Nosotros escribimos la función BUSCARV pero el paquete de idioma le pedirá al “motor” de Excel que trabaje con la función VLOOKUP. El paquete de idioma, nos obligará a utilizar el nombre BUSCARV y por esa razón, al intentar utilizar una fórmula que tenga el nombre de la función en inglés, obtendremos el error #¿NOMBRE?.

Hoy en día, a través de Internet, tenemos acceso a un gran número de publicaciones y en ocasiones nos encontramos con fórmulas que han sido escritas en inglés. Para poder utilizar dichas fórmulas, es necesario encontrar el nombre equivalente en español de las funciones utilizadas, y por esa razón decidí crear el traductor de fórmulas de Excel que nos facilitará esta tarea.

Para aprender a utilizar el traductor de fórmulas que he desarrollado, puedes ver el vídeo que está en la parte superior y descargar el archivo utilizando el enlace debajo del vídeo.

Cómo utilizar el traductor de fórmulas de Excel

Este traductor funcionará correctamente en una versión de Excel que sea diferente al inglés. Si quieres una traducción al español, deberás tener instalado Excel en español. Si tienes Excel en cualquier otro idioma, la traducción se realizará a dicho idioma.

El traductor funciona de la siguiente manera. En la primera columna se colocará la fórmula original, es decir, la fórmula tal como la encuentres en una publicación. Puedes colocar una fórmula en inglés o en español ya que la macro hará la traducción a ambos idiomas.

Si ingresas la fórmula en inglés, Excel mostrará el error #¿NOMBRE? porque no podrá interpretarla, pero no debes preocuparte porque el traductor hará la conversión adecuadamente. Por el contrario, si ingresas la fórmula en español, obtendrás algún resultado en la hoja de cálculo, pero no deberás prestarle mucha atención porque estamos interesados solamente en la traducción de la fórmula.

En la siguiente imagen se observa el resultado de haber ingresado la fórmula =SUM(1, 2, 3) en la primera fila y la fórmula =SUMA(1, 2, 3) en la segunda fila. La primera fila muestra un error porque contiene la fórmula en inglés y la segunda nos da el resultado 6 porque la fórmula está en español y Excel la ha interpretado correctamente.

Cómo traducir fórmulas de Excel de inglés a español y viceversa

Al pulsar el botón TRADUCIR obtendremos el equivalente de cada fórmula en las columnas de la derecha:

Traducir fórmulas de Excel

Para ambas filas obtenemos la versión en español y en inglés en la columna correspondiente. Debes saber que en ambas columnas se ha colocado un apóstrofo al inicio de la fórmula para que Excel trate dicho valor como una cadena de texto y no trate de interpretarlo como una fórmula.

De esta manera tan sencilla funciona el traductor de funciones. Colocamos la fórmula original en la primera columna y pulsamos el botón TRADUCIR para obtener su traducción. Considera que, debido a la configuración regional de mi equipo, la columna Español de la imagen anterior muestra las fórmulas utilizando la coma (,) pero si tienes una configuración donde se utiliza el punto y coma (;) el traductor respetará dicha configuración.

Si te interesa aprender la manera tan sencilla en la que he creado este traductor de fórmulas, te invito a que continúes leyendo este artículo para leer con detenimiento la explicación de la macro.

Macro para traducir una fórmula

Sin tienes una versión de Excel diferente al inglés, ya sea español, portugués, francés, alemán, etc., Excel utilizará dos propiedades para almacenar la fórmula de una celda. En una propiedad estará la fórmula en inglés y en la otra estará la fórmula en el idioma local de Excel.

Podemos aprovechar este comportamiento para crear nuestro propio traductor de fórmulas que nos ayude a obtener fácilmente el equivalente de cualquier fórmula de Excel. Al ingresar una fórmula válida en cualquier celda, la versión en inglés de la fórmula estará almacenada en la propiedad Formula y la versión en español en la propiedad FormulaLocal.

A continuación, se muestra el código completo de la macro y en seguida haré una explicación detallada de dicho código.

Private Sub CommandButton1_Click()

ultimaFila = Cells(Rows.Count, 16382).End(xlUp).Row

For i = 5 To ultimaFila

On Error Resume Next
Cells(i, 16381).formula = Cells(i, 16382).formula

If Err.Number = 0 Then
Cells(i, 16383).Value = "'" & Cells(i, 16381).FormulaLocal
Cells(i, 16384).Value = "'" & Cells(i, 16381).formula
Else
Cells(i, 16383).Value = "#ERROR"
Cells(i, 16384).Value = "#ERROR"
MsgBox "Error en la fórmula de la fila " & i & vbNewLine _
& "Error Number: " & Err.Number
End If

Next i

End Sub

Dentro del código verás algunos números como 16382 que se refieren a las últimas columnas de la hoja (la columna XFB es la columna 16382). Decidí utilizar las últimas columnas de la hoja porque no es tan común que las fórmulas tengan referencias a dichas celdas, pero no habría problema con implementar el traductor en cualquier otro rango.

La primera línea de código utiliza el método End(xlUp) para obtener la última fila con datos de la columna XFB. Si quieres saber un poco más sobre este método, puedes consultar el artículo Encontrar la última fila con VBA.

Una vez que conocemos la última fila ocupada, entramos en un bucle For-Next donde se inicializa la variable i con el número 5 porque esa es la primera fila debajo de los encabezados de columna. El bucle avanzará tantas filas como sea necesario hasta llegar a la última fila con datos.

Dentro del bucle For-Next tenemos varias instrucciones. La primera instrucción le indica a Excel que en caso de existir un error debe continuar con la ejecución de la macro. Esto se debe a que la instrucción que estamos por ejecutar es la asignación de la fórmula de la columna XFB (16382) a la propiedad Formula de la columna XFA (16381) la cual está oculta.

Esta asignación es importante porque se hace directamente a la propiedad Formula que está diseñada para contener las fórmulas en inglés. Si la fórmula original está en inglés, se hará la asignación directamente, pero si la fórmula original está en español, Excel hará la traducción por nosotros y la colocará en inglés.

En seguida hacemos una validación de la propiedad Err.Number para saber si hubo un error en la instrucción anterior. En caso de que no haya error, entonces podremos consultar la fórmula de la columna XFA (16381) y obtenerla en el idioma requerido.

Podemos acceder a la versión en español con la propiedad FormulaLocal y la asignamos a la columna XFC (16383). Observa que se concatena un apóstrofo (‘) antes de la fórmula para que Excel la muestre como una cadena de texto.

La siguiente instrucción obtiene la fórmula en inglés de la columna XFA (16381) y asigna la cadena de texto a la columna XFD (16384). Este procedimiento se repite para cada fila mientras tanto y no exista un error en la asignación de la fórmula.

En caso de que exista un error, se ejecutarán las instrucciones del bloque Else que insertarán la cadena de texto “#ERROR” en las columnas de la derecha y además mostrarán una notificación en pantalla para indicar la fila que contiene la fórmula con error y su código.

Limitaciones del traductor de fórmulas

Debes considerar que con este método de traducción se obtendrá el nombre equivalente de las funciones y el separador de argumentos correcto. Sin embargo, existen ciertos argumentos como el formato de fechas, que no son traducidos por la macro. Considera la siguiente fórmula en español:

=TEXTO(40254, "dd/mm/aaaa")

Al utilizar nuestra macro para traducir la fórmula, obtenemos el siguiente resultado:

=TEXT(40254, "dd/mm/aaaa")

El nombre de la función se ha traducido correctamente al inglés, pero el segundo argumento de la función se ha quedado igual. Este argumento no funcionará correctamente en una versión de Excel en inglés porque lo correcto debería ser “mm/dd/yyyy”.

Este tipo de cambios en los argumentos deberá ser hecho manualmente por ti, y aunque son pocas las fórmulas que requieren este tipo de modificaciones, deberás estar consciente de que el traductor no cambiará en lo absoluto los argumentos de las funciones.

Descargar archivo de trabajo