¿Dudas o problemas? Escribe en GitHub Discussions.

Lo que Excel ofrece de serie para los tipos de cambio es el tipo de datos Monedas de Microsoft 365: un tipo de cambio combinado en tiempo real que no puedes fijar a una fuente ni usar para consultar el histórico. En Frankfurter puedes ver de qué fuentes sale el tipo combinado y, cuando la fuente tiene que ser exacta, fijar una sola institución: el tipo de referencia del BCE para el IVA en la UE, el NBP de Polonia o el PTAX de Brasil. El histórico de un proveedor fijado se queda tal como se publicó. Power Query hace el trabajo en Windows y en Mac. Windows tiene además una fórmula de una línea para conversiones rápidas.

Power Query

Es la vía principal tanto en Windows como en Mac. Ve a Datos, Desde la web, pega el endpoint CSV y carga una tabla date,base,quote,rate. Actualízala cuando quieras con Datos, Actualizar todo:

https://api.frankfurter.dev/v2/rates.csv?base=usd&quotes=eur

Pide varias divisas a la vez separándolas con comas:

https://api.frankfurter.dev/v2/rates.csv?base=usd&quotes=eur,gbp,jpy

Convertir un importe

Power Query carga el tipo, no el total convertido. Multiplica tu importe por la celda con el tipo cargado. Para una conversión puntual sin consulta, Microsoft 365 en Windows puede llamar a la API desde la propia fórmula. Añade una función con nombre (Fórmulas, Administrador de nombres, Nuevo) llamada FRANKFURTER con esta definición:

=LAMBDA(amount, from, to, [date], amount * NUMBERVALUE(TEXTBEFORE(TEXTAFTER(WEBSERVICE("https://api.frankfurter.dev/v2/rate/" & from & "/" & to & IF(ISOMITTED(date), "", "?date=" & YEAR(date) & "-" & TEXT(MONTH(date), "00") & "-" & TEXT(DAY(date), "00"))), """rate"":"), "}"), "."))

Luego llámala desde cualquier celda:

=FRANKFURTER(100, "usd", "eur")

Pasa una fecha para obtener un tipo histórico:

=FRANKFURTER(100, "usd", "eur", DATE(2020, 1, 2))

WEBSERVICE solo existe en Windows y, como las fórmulas de Excel no tienen parser JSON, la función extrae el tipo directamente del texto de la respuesta. NUMBERVALUE con un punto decimal explícito hace que siga funcionando en las configuraciones regionales que usan coma. En Mac, multiplica por una celda con el tipo cargado desde Power Query.

Fijar una fuente oficial

Por defecto obtienes el tipo combinado de todas las fuentes. Añade providers a la URL de la consulta para fijar una sola institución. Esto importa en impuestos y contabilidad: muchos países exigen el tipo publicado por su propio banco central para convertir importes en moneda extranjera.

https://api.frankfurter.dev/v2/rates.csv?base=usd&quotes=eur&providers=ecb
ECB
Tipo de referencia del Banco Central Europeo, el estándar para IVA y aduanas en la UE.
NBP
Narodowy Bank Polski. En Polonia, el IVA y el impuesto sobre sociedades se convierten al tipo del NBP.
CNB
Fixing del Banco Nacional Checo, usado en la contabilidad y los impuestos checos.
BCB
PTAX del Banco Central do Brasil, la referencia para contratos e impuestos en Brasil.
BANXICO
Tipo FIX del Banco de México para liquidar obligaciones en dólares estadounidenses.

Consulta todas las fuentes. Una fuente fijada sigue su propio calendario de publicación, así que su último tipo puede ir un día por detrás del último tipo combinado.

Series históricas

Usa from para un rango de fechas y group=month para reducirlo a una fila por mes, listo para un gráfico. Cárgalo con Power Query y se actualizará como cualquier otra consulta. El histórico combinado puede moverse un poco cuando llegan datos nuevos, así que fija un proveedor cuando las cifras no deban cambiar.

https://api.frankfurter.dev/v2/rates.csv?from=1949-12-01&base=usd&quotes=gbp&providers=bbk&group=month

Esto trae el dólar estadounidense frente a la libra desde 1949, del archivo del Deutsche Bundesbank. Verás cómo la paridad de 2,80 dólares por libra se mantiene fija durante años y se rompe en 1967. El histórico más antiguo sale de los fixings de Fráncfort del Bundesbank: el dólar frente al marco desde 1948 y la mayoría de los demás cruces con el dólar de 1949 a 1970. A partir de 1999 toma el relevo el Banco Central Europeo, así que para una serie moderna continua usa el tipo combinado por defecto o providers=ecb.