BookTranslator
BookTranslator

Cómo traducir una hoja de cálculo de Excel sin romper fórmulas ni listas desplegables

Descubre el texto que un traductor celda por celda omite en un .xlsx (texto de fórmulas, texto enriquecido, enlaces, gráficos, macros), corrige las listas desplegables y los códigos que puede romper, y comprueba el resultado con un script gratuito y un libro de prueba.

BookTranslator

BookTranslator Team

16 min de lectura

Para traducir un libro de Excel completo, sube el archivo .xlsx a un traductor de documentos en lugar de traducir celda por celda. El comando Revisar > Traducir de Excel funciona sobre el texto que seleccionas (Soporte de Microsoft), lo cual está bien para una etiqueta y es lento para una lista de precios. Un traductor de archivos lee cada celda de texto, la traduce y la vuelve a escribir en la misma dirección, de modo que las fórmulas, los números y las fechas permanecen donde estaban.

Lo que no te dice es qué texto nunca leyó. El texto escrito dentro de una fórmula, una celda con una palabra en negrita, un enlace, una nota, el título de un gráfico: en una traducción celda por celda, todo esto puede volver en el idioma original. Y dos cosas pueden romperse: una lista desplegable cuyos valores permitidos no se tradujeron, y un código de producto que sí se tradujo.

Creamos un libro de prueba de dos hojas con texto en cada uno de esos lugares, escribimos un verificador gratuito que enumera dónde vive el texto, y pasamos el libro por una reproducción local del manejo de hojas de cálculo que utiliza BookTranslator. Esta guía muestra qué volvió, qué cambiar antes de subir el archivo y cómo comprobar el archivo traducido.

Respuesta rápida: qué se traduce en un libro

Dónde está el textoEjemplo de nuestra prueba¿Traducido por BookTranslator?Qué hacer
Celdas de texto sin formato, incluidas las filas de encabezado"Cuaderno azul", "Precio"SíNada
Números, fechas, booleanos4.5, 2026-10-30Se dejan como estabanRevisa los formatos numéricos para el mercado objetivo
Fórmulas=C2*D2Se dejan como estabanNada
Texto dentro de una fórmula=IF(D2>5,"In stock","Low stock")NoMueve las palabras a celdas (consulta el Paso 2)
Celda con formato mixto"Edición limitada de bolígrafo"No, se omite toda la celdaBorra primero el formato o tradúcelo a mano
Celdas con hipervínculo"Página del producto"NoEdita el texto del enlace después de traducir
Valor dentro de una celda desplegable"Papelería"Sí, pero la lista desplegable noCorrige la lista o la celda dejará de ser válida
Códigos con letras"A-77", "B-09"Se envían al traductorCompruébalos después de traducir
Códigos solo con dígitos o símbolos"00123"Se dejan como estabanNada
Notas y comentarios"Comprobar el nombre del proveedor antes de publicar"NoTradúcelos a mano o bórralos
Nombres de hojas y rangos con nombre"Productos", PriceRangeNo, para que las fórmulas entre hojas sigan funcionandoCambia el nombre de las hojas manualmente solo si es imprescindible, después de comprobar las fórmulas
Gráficos y macrosUn gráfico de barras, un proyecto de VBAEliminados del archivo traducido en nuestra pruebaConserva el original y vuelve a crearlos después (ver más abajo)

Los archivos .xls antiguos no se aceptan. Ábrelos en Excel y guárdalos como .xlsx primero. Los archivos .xlsm con macros habilitadas sí se aceptan, pero lee la sección sobre macros antes de subir uno: el archivo traducido no tiene macros y, si la descarga sigue terminando en .xlsm, cámbiale el nombre a .xlsx antes de abrirlo.

Paso 1: Ejecuta el verificador en tu libro

Descarga check_xlsx_text.py y ejecútalo en tu archivo:

python3 check_xlsx_text.py "Price list.xlsx"

Solo necesita Python 3 y lee el archivo sin modificarlo. Este es el resumen de nuestro libro de muestra:

Counts by location:
  cell         code, ID or address        2
  cell         link text                  1
  cell         mixed formatting           1
  cell         plain text                 15
  comments     comment or note text       1
  dropdown     list of allowed values     1
  formula text text inside a formula      6
  sheet        sheet name                 2
  workbook     defined name               1

Plain text cells (translated by a cell-by-cell translator): 15
Items that need a decision before you upload: 12

Debajo de los recuentos, enumera cada elemento con su hoja y celda, como Products!E2 formula text 'In stock'. Usa esa lista como tu lista de tareas para el Paso 2. Si tu libro tiene gráficos, cuadros de texto, tablas dinámicas o un proyecto de macros, también aparecen en los recuentos.

El README describe el libro de muestra, enumera los hashes de los archivos y enlaza los scripts que lo generan, para que puedas repetir la prueba.

Qué pasó con nuestro libro de prueba

Pasamos el libro de muestra por el código que utiliza el gestor de hojas de cálculo de BookTranslator, reproducido localmente el 2026-11-01 con la misma biblioteca (ExcelJS 4.4.0). En lugar de una traducción real, usamos un marcador de posición que añade "[DE]" delante del texto de cada celda. Así el modelo de lenguaje queda fuera de la prueba y los resultados muestran solo lo que el manejo del archivo envía, conserva y descarta.

El gestor lee cada hoja celda por celda. Solo envía una celda para traducir si contiene un valor de texto sin formato, y omite cualquier texto formado únicamente por dígitos, puntuación y símbolos. Todo lo demás en la cuadrícula de celdas se copia sin cambios. BookTranslator devuelve entonces dos archivos: un libro traducido y un libro bilingüe.

El libro traducido

Este es el archivo que debes usar. Las 6 fórmulas, los 7 números y fechas, los formatos de moneda y fecha, las celdas combinadas, la nota, la regla de lista desplegable y el rango con nombre volvieron sin cambios. Las 9 celdas de encabezado y las demás celdas de texto sin formato se tradujeron en su sitio. Tres resultados requieren atención:

El texto dentro de las fórmulas permanece en el idioma original. La columna Estado usaba =IF(D2>5,"In stock","Low stock"). Una fórmula no es una celda de texto, así que el gestor nunca la lee, y "In stock" permanece en inglés en todas las filas. Lo mismo se aplica al texto unido con & o CONCAT, y al texto dentro de HYPERLINK.

Un valor de lista desplegable traducido ya no coincide con su lista. La celda H2 tenía una lista desplegable que permitía "Stationery, Office, Art". El valor de la celda se tradujo, pero la lista se almacena en la regla de validación, no en una celda, así que no se tradujo. El modo de comparación de nuestro verificador lo reportó así:

Problems: 3
  Products!A3: code changed: 'A-77' -> '[DE] A-77'
  Products!A4: code changed: 'B-09' -> '[DE] B-09'
  Products!H2: '[DE] Stationery' is not in its dropdown list ['Art', 'Office', 'Stationery']

Excel conserva un valor que infringe su regla de validación, pero la siguiente persona que abra la lista desplegable solo verá las opciones antiguas, y Datos > Rodear con un círculo los datos no válidos marcará la celda.

Los códigos con letras se envían al traductor. "00123" se omitió porque solo contiene dígitos. "A-77" y "B-09" se enviaron porque contienen una letra. Que un código vuelva sin cambios depende entonces del modelo; nada en el manejo del archivo lo protege. Un SKU que vuelva como "A-77-Artikel" rompe todas las búsquedas que lo utilicen.

El libro bilingüe

El archivo bilingüe inserta una columna de traducción a la derecha de cada columna que tenía al menos una celda traducida, con encabezados como "Name (Translated)". Mueve los valores de las celdas a sus nuevas columnas, pero no mueve los formatos de celda ni actualiza las fórmulas. En nuestra prueba:

  • el formato de precio $#,##0.00 se quedó en la columna C, que ahora contiene nombres de productos, mientras que los precios se movieron a la columna E sin él;
  • el formato de fecha se quedó en la columna G, que ahora contiene la cantidad, así que una cantidad de 10 se mostraba como una fecha;
  • =C2*D2 se movió a la columna K pero seguía apuntando a C2 y D2, que ahora contienen el nombre del producto y su traducción, por lo que ya no puede devolver 45;
  • en la hoja Resumen, =SUM(Products!F2:F4) ahora sumaba una columna de traducción vacía.

Así que el libro bilingüe sirve para leer el original y la traducción en paralelo, no para calcular. No lo edites ni copies fórmulas de él.

Gráficos y macros

En una copia aparte del libro, añadimos un gráfico y un proyecto de macros, guardados tal como los almacena Excel. Ninguno de los dos estaba en el archivo traducido ni en el bilingüe. ExcelJS lee y escribe hojas de cálculo, estilos, texto compartido, imágenes, tablas y comentarios, y no tiene código para las partes de gráficos ni para el proyecto de VBA, por lo que los omite al guardar. El mismo código no tiene nada para tablas dinámicas, así que es de esperar que también se eliminen, aunque no probamos ninguna. El controlador también guarda su salida como un archivo .xlsx, que no puede contener macros.

Otra limitación más de la prueba: creamos el libro de ejemplo con el propio ExcelJS, que es el caso más favorable para conservar formatos, combinaciones y reglas de validación. Un libro guardado por Excel puede contener funciones que ExcelJS no modela, así que ejecuta el paso de comparación que se describe a continuación en tu propio archivo en lugar de dar por sentado el mismo resultado limpio.

Paso 2: Prepara el libro antes de subirlo

Trabaja sobre una copia. El verificador te indica qué celdas debes cambiar.

  1. Mueve el texto de las fórmulas a celdas. Coloca las palabras en una hoja pequeña llamada "Etiquetas" y haz que la fórmula apunte a ellas: =IF(D2>5,Labels!$A$1,Labels!$A$2). Las celdas de etiquetas son texto plano, así que se traducen, y todas las fórmulas recogen la traducción. Este único cambio suele corregir la mayor parte del recuento de "texto en fórmulas", porque la misma frase tiende a repetirse en toda una columna.
  2. Mueve las listas desplegables a celdas. En Datos > Validación de datos, cambia el Origen de una lista escrita (Stationery,Office,Art) a un rango en la hoja Etiquetas (=Labels!$B$1:$B$3). Los valores de la lista se traducen junto con las celdas que los usan. Revisa algunas celdas después: la lista desplegable solo acepta el valor traducido si el modelo tradujo "Stationery" de la misma manera en ambos lugares.
  3. Elimina el formato mixto. Una celda con una palabra en negrita o de color se almacena como fragmentos con formato y se omite por completo. Selecciona la celda y elige Inicio > Borrar > Borrar formatos, o vuelve a escribirla, y luego vuelve a aplicar la negrita después de la traducción. Si tienes muchas de estas, anótalas primero.
  4. Decide qué hacer con las notas y los comentarios. No se traducen. Elimina las notas de revisión que no quieras enviar a un servicio de traducción y traduce el resto a mano.
  5. Guarda los libros con macros como .xlsx. Conserva tu .xlsm como maestro. Traduce una copia en .xlsx y luego copia las columnas de texto traducidas de vuelta al maestro (Pegado especial > Valores, solo columnas de texto, para no sobrescribir fórmulas) o exporta los módulos VBA e impórtalos en el archivo traducido.
  6. Deja los gráficos para después. Un gráfico tiene poco texto: un título, títulos de ejes y una leyenda que normalmente proviene de las celdas de encabezado. A menudo es más rápido reconstruir el gráfico en el libro traducido a partir de los mismos rangos, o pegar las columnas de texto traducidas de vuelta en el libro original para que sus gráficos y tablas dinámicas se actualicen solos.

Paso 3: Traduce el archivo completo

Sube el .xlsx en la página del traductor de documentos, elige el idioma de destino y comprueba el precio mostrado antes de pagar. Subir el archivo completo traduce todas las celdas de texto de todas las hojas en una sola tarea, lo que facilita mantener el mismo nombre de producto en la fila 3 y en la fila 3000. Nuestra guía para crear un glosario de traducción explica cómo fijar los términos que no deben variar.

Cuando termine la tarea, la página de Historial ofrece ambas descargas. Usa el libro traducido. Abre el libro bilingüe solo para revisar la redacción con alguien que lea ambos idiomas.

Si trabajas en Google Sheets, hay otras dos vías. La pestaña Documentos de Google Translate acepta archivos .xlsx de hasta 10 MB (Ayuda de Google Translate); nuestra guía de traducción de Google Docs compara sus opciones. Y Sheets tiene una función GOOGLETRANSLATE(text, source_language, target_language) (Ayuda de Editores de Documentos de Google) que puedes arrastrar hacia abajo en una columna nueva junto al original. Eso es cómodo para una columna de etiquetas cortas, pero los resultados son fórmulas, así que pégalas como valores antes de compartir la hoja. DeepL también traduce documentos; consulta qué significan sus límites de documentos en la práctica. Sea cual sea la herramienta que uses, ejecuta primero el verificador en el original: el texto dentro de fórmulas, enlaces y gráficos está en los mismos lugares sin importar qué herramienta lea el archivo.

Paso 4: Revisa el libro traducido

  1. Ejecuta el modo de comparación. Coloca el original y el archivo traducido uno al lado del otro:

    python3 check_xlsx_text.py --compare "Price list.xlsx" "Price list (translated).xlsx"
    

    Comprueba que cada fórmula, número y fecha no hayan cambiado, que los códigos con letras hayan vuelto exactamente como estaban y que cada valor de lista desplegable esté en su lista. Úsalo solo en el libro traducido. Como el archivo bilingüe desplaza las columnas, se informaría casi todas las celdas.

  2. Recalcula. Si una fórmula sigue mostrando el texto antiguo después de corregir las etiquetas, pulsa F9 (o Fórmulas > Calcular ahora).

  3. Traduce lo que queda. Usa la lista del verificador del Paso 1: texto de enlaces, notas, títulos de gráficos y cualquier celda a la que hayas borrado el formato.

  4. Busca texto cortado. Las traducciones suelen ser más largas que el original, y las cadenas cortas son las que más crecen. El W3C cita directrices de IBM que sitúan la expansión media del inglés a las lenguas europeas en un 200–300 % para textos de hasta 10 caracteres (W3C). Los encabezados de columna son cortos, así que ensancha las columnas o activa Ajustar texto donde se corten.

  5. Revisa la visualización de números y fechas. Los valores no se han tocado, pero "4.50" quizá deba mostrarse como "4,50" para un lector alemán. Eso es un formato de celda o una configuración regional, no una traducción.

  6. No "corrijas" los nombres de las funciones. Si el Excel en francés de un colega muestra SOMME en lugar de SUM, es Excel mostrando sus propios nombres de función localizados; la fórmula es la misma.

  7. Configura las hojas de derecha a izquierda. Para árabe, hebreo, persa o urdu, activa Diseño de página > Hoja de derecha a izquierda y comprueba la alineación de las celdas.

  8. Haz que lo revise un lector fluido si va destinado a clientes, como una lista de precios o un catálogo de productos. Una traducción automática es un buen primer borrador, no la versión final.

Archivos CSV y TSV

Un archivo .csv no tiene fórmulas, formatos ni listas desplegables, así que la mayoría de los problemas anteriores desaparecen. Hay tres cosas que son diferentes:

  • La fila de encabezado no se traduce. El controlador trata la primera fila como encabezados y solo traduce las filas de datos. Traduce los encabezados a mano, o cópialos en una fila de datos antes de subir el archivo y muévelos de nuevo a su sitio después.
  • Una columna se traduce como un todo. Si alguna celda de una columna contiene una letra, se envían todas las celdas de esa columna que contengan una letra, incluidos los códigos. El modo de comparación solo lee .xlsx, así que revisa a mano una columna de códigos CSV: cópiala de ambos archivos en una hoja y compara las dos columnas con =EXACT(A2,B2).
  • Un CSV vuelve separado por comas. Sea cual sea el delimitador que usara el original, el CSV traducido usa comas; un archivo .tsv conserva sus tabulaciones. En nuestra prueba, un CSV separado por puntos y coma volvió separado por comas, con las comas decimales como "4,50" conservadas entre comillas. El archivo es UTF-8 sin marca de orden de bytes. Microsoft indica que Excel abre normalmente un CSV UTF-8 cuando tiene esa marca y, en caso contrario, recomienda importarlo con Datos > Obtener datos > Desde texto/CSV (Microsoft Support). Si haces doble clic en el archivo y ves acentos corruptos, impórtalo de esa forma.

Si tus datos están en un libro con fórmulas, traduce el .xlsx. Exportar a CSV para traducirlo desecha todas las fórmulas.

Problemas comunes

ProblemaCausa probableQué hacer
Toda una columna sigue diciendo "In stock"Las palabras están dentro de una fórmula IFMuévelas a celdas de etiqueta y haz que la fórmula apunte a ellas
Una lista desplegable rechaza el valor traducidoLos valores permitidos están escritos en la regla de validaciónCambia el Origen de la regla a un rango de celdas y traduce el rango
Un código de producto cambióContiene letras, así que se envió al traductorCorrígelo desde el original; ejecuta el modo de comparación en cada entrega
Una celda no se tradujo en absolutoTiene formato mixto o es un enlaceBorra el formato o edita el texto del enlace, luego vuelve a traducir o corrígelo a mano
El gráfico o las macros han desaparecidoLa biblioteca utilizada para reescribir el archivo no los guardaTraduce una copia .xlsx y traslada el texto traducido al archivo original
Los totales son incorrectos en el archivo bilingüeSus columnas añadidas desplazan los valores pero no las fórmulas ni los formatosUtiliza el libro traducido para cualquier cálculo
Los acentos se ven distorsionados en un CSV traducidoExcel adivinó la codificación incorrectaImpórtalo con Datos > Obtener datos > Desde texto/CSV
Se rechaza la cargaEl archivo es .xls o necesita una contraseña para abrirseGuárdalo como un .xlsx normal sin contraseña de apertura (la protección de hoja por sí sola está bien)

La misma idea se aplica a las diapositivas: una presentación de PowerPoint también conserva texto en lugares que un traductor omite, y el verificador de ese artículo funciona igual que este.

Publicaciones relacionadas