Cómo obtener tipos de cambio históricos en Hojas de cálculo de Google
A veces el tipo de cambio de hoy no es el que necesitas. Quizás estás cerrando la contabilidad del mes pasado y necesitas el tipo del último día del período, o estás elaborando un reporte de gastos de un viaje que hiciste hace seis semanas, o necesitas verificar cuánto valía realmente un pago cuando se procesó. En todos esos casos, necesitas un tipo de cambio histórico, no el que marque el mercado en este momento. Esta guía explica cómo obtener esos tipos directamente en Hojas de cálculo de Google usando GOOGLEFINANCE.
Obtener el tipo de cambio para una fecha específica
Esta es la fórmula para un tipo de cambio histórico de una sola fecha:
=INDEX(GOOGLEFINANCE("CURRENCY:USDEUR", "price", DATE(2024,1,15)), 2, 2)
El envoltorio INDEX puede parecer innecesario, pero en realidad es obligatorio. Cuando le pasas una fecha a GOOGLEFINANCE, no devuelve un solo número. Devuelve una pequeña tabla de dos columnas: una fila de encabezado con las etiquetas "Date" y "Close", seguida de una fila de datos con los valores reales. Si intentas usar esa tabla directamente, por ejemplo multiplicarla por un monto en dólares, Hojas de cálculo muestra un error porque no sabe cómo multiplicar una tabla por un número.
INDEX(_, 2, 2) resuelve esto extrayendo una celda específica de esa tabla. El 2, 2 significa fila 2, columna 2, que es donde se encuentra el tipo de cambio real.

Una vez que tienes ese valor, multiplicarlo por el contenido de una celda funciona igual que con un tipo de cambio en tiempo real:
=INDEX(GOOGLEFINANCE("CURRENCY:USDEUR", "price", DATE(2024,1,15)), 2, 2) * A2
Esto toma el monto en dólares que está en A2 y lo convierte a euros al tipo de cambio del 15 de enero de 2024.

Ten en cuenta que la fórmula anterior usa la función DATE() en lugar de una cadena de texto como "2024-01-15". Ambas formas funcionan en muchos casos, pero DATE() es más confiable. Si tu hoja se comparte con personas de diferentes configuraciones regionales, o si usas una plantilla, las cadenas de fecha pueden interpretarse de forma distinta según la configuración regional. DATE() no tiene esa ambigüedad.

Obtener tipos de cambio para un rango de fechas
Si necesitas los tipos de varios días, por ejemplo para ver cómo se movió una divisa durante un mes, puedes pasar una fecha de inicio y una de fin:
=GOOGLEFINANCE("CURRENCY:USDEUR", "price", DATE(2024,1,1), DATE(2024,1,31))
Esto se expande automáticamente en varias filas. La primera fila es un encabezado y cada fila posterior corresponde a un día con su fecha y tipo de cierre. Aquí no hace falta INDEX porque quieres la tabla completa, no un solo valor.
Esto es útil para crear un gráfico. Pega la fórmula en una celda, deja que se expanda y luego inserta un gráfico usando ese rango. De un vistazo podrás ver cómo se movió el tipo durante el período.

Algo a tener en cuenta: el resultado de esta fórmula ocupa tantas filas como días haya en el rango. Si hay otros datos debajo del lugar donde pusiste la fórmula, serán sobreescritos. Coloca la fórmula en un lugar con espacio libre debajo, o dedica una hoja separada para el resultado.
Dar formato al resultado
Casi siempre surgen dos problemas de formato.
Primero, la columna de fechas suele mostrar números de serie en lugar de fechas legibles. En Hojas de cálculo de Google, las fechas se almacenan internamente como números (la cantidad de días desde el 30 de diciembre de 1899), y el resultado de GOOGLEFINANCE a veces llega sin el formato de fecha aplicado. Para corregirlo, selecciona la columna, ve a Formato > Número > Fecha y se mostrará correctamente.
Segundo, la columna del tipo de cambio es un decimal sin formato. Dale el formato que necesite tu hoja: cuatro decimales para mayor precisión, o dos si lo usas en una presentación. Ve a Formato > Número > Formato de número personalizado e ingresa algo como 0.0000 para cuatro decimales.
Cosas a saber
Problemas con el formato de fecha. Como se mencionó, usa DATE() en lugar de cadenas de texto para evitar problemas con la interpretación de fechas según la configuración regional. DATE(2024, 1, 15) significa 15 de enero de 2024 en cualquier configuración. "1/15/2024" no.
Tipos de cambio de mercado medio. GOOGLEFINANCE usa tipos de mercado medio, que están en el punto intermedio entre las tasas de compra y venta. Tu banco no usa el tipo de mercado medio. Usa un tipo con un diferencial encima, así es como ganan dinero en los cambios de divisas. Por eso los números que ves en Hojas serán ligeramente diferentes a los que aparecen en tu estado de cuenta bancario o en el recibo de tu procesador de pagos. Para efectos contables, es posible que necesites consultar el tipo histórico de tu banco en lugar de confiar en GOOGLEFINANCE.
Pares de divisas no disponibles. No todos los pares de divisas están en Google Finance. Los pares principales (USD/EUR, GBP/USD, USD/JPY) funcionan de forma confiable. Algunas divisas menos comunes devuelven #N/A. Si obtienes ese error y el código de divisa parece correcto, verifica si el par existe en Google Finance antes de asumir que la fórmula está mal.
¿Qué pasa si necesitas el tipo de cambio para una fecha en una celda?
Puedes reemplazar los argumentos de DATE() con referencias a celdas. Si la fecha que quieres está en la celda B2:
=INDEX(GOOGLEFINANCE("CURRENCY:USDEUR", "price", B2), 2, 2)
Asegúrate de que B2 tenga formato de fecha en Hojas de cálculo de Google, no de texto. Si escribiste la fecha como texto simple, GOOGLEFINANCE puede no reconocerla. Puedes verificar el formato seleccionando la celda y revisando Formato > Número: debería decir "Fecha", no "Texto sin formato" o "Automático".

Este enfoque funciona bien si tienes una columna de fechas de transacciones y quieres consultar cada una automáticamente. Pon la fórmula de GOOGLEFINANCE en la columna junto a las fechas, con B2 (o la primera celda de fecha) como argumento de fecha, y arrástrala hacia abajo.
Crear una tabla de conversión con fechas dinámicas
Una configuración que aparece con frecuencia en reportes de gastos: una columna con montos en la columna A, una columna con fechas en la columna B, y necesitas el valor convertido para cada fila basándote en la fecha de esa fila.
En la columna C:
=INDEX(GOOGLEFINANCE("CURRENCY:USDEUR", "price", B2), 2, 2) * A2
Arrastra eso hacia abajo en todas tus filas. Cada fila toma el tipo de cambio de su propia fecha. El resultado es una columna de valores convertidos donde cada uno usó el tipo histórico correcto.

Una advertencia: cada llamada a GOOGLEFINANCE cuenta como una solicitud de datos separada. En una hoja con cientos de filas, esto puede ralentizar las cosas u ocasionalmente alcanzar los límites de solicitudes. Para conjuntos de datos grandes, puede ser más práctico consultar las fechas únicas por separado, extraer los tipos a una tabla de referencia y usar VLOOKUP o XLOOKUP para asociarlos; así cada fecha única se consulta solo una vez.
Instant Currency
Si prefieres no lidiar con el envoltorio INDEX, Instant Currency tiene un selector de fecha para consultas históricas. Eliges las divisas, eliges la fecha y se encarga de la construcción de la fórmula y el formato automáticamente. También convierte celdas directamente, lo cual es útil cuando no necesitas las fórmulas en absoluto y solo quieres los números.

Para fórmulas generales de conversión de divisas, consulta nuestra guía paso a paso de GOOGLEFINANCE. Si tienes preguntas sobre un caso de uso específico, escríbenos, con gusto te ayudamos.