ご質問や問題がありますか?GitHub Discussionsでお気軽にご相談ください。

Excelの標準機能であるMicrosoft 365の「通貨」データ型は、特定の提供元に固定できず履歴も取得できない合成市場レートです。Frankfurterは透明です。公的機関のレートが必要な場合は、EU付加価値税用のECB基準レート、ポーランドのNBP、ブラジルのPTAXなど固定の機関を選択できます。さらに、後から密かに変更されない安定した過去データも提供します。Apps Scriptを使わずにPower Queryでデータを取得でき、Windows環境では数式による素早い換算も可能です。

Power Query

WindowsとMacの両方で動作する標準的な方法です。データ > Webからを選択し、CSVエンドポイントを入力すると、date,base,quote,rateを含むテーブルが読み込まれます。データ > すべて更新でいつでも最新化できます:

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

複数の対象通貨をカンマ区切りで一度に取得:

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

金額の換算

Power Queryは換算後の総額ではなく為替レートを返します。読み込んだレートのセルに換算前の金額を掛け合わせてください。Windows環境では、クエリを作成せずに数式から直接APIを呼び出すこともできます。数式 > 名前の定義で名前をFRANKFURTERとし、次のように定義します:

=LAMBDA(amount, from, to, amount * VALUE(TEXTBEFORE(TEXTAFTER(WEBSERVICE("https://api.frankfurter.dev/v2/rate/" & from & "/" & to), """rate"":"), "}")))

その後、任意のセルから呼び出します:

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

WEBSERVICE関数はWindowsでのみ利用可能です。Mac環境ではPower Queryで読み込んだレートのセルを参照して掛け算を行ってください。

特定の公的機関を指定

デフォルトでは全提供元を組み合わせた合成レートが返されます。クエリURLにprovidersを追加して、特定の機関を指定できます。税務や会計では自国の中央銀行レートが法的に義務付けられる場合が多いため不可欠です:

https://api.frankfurter.dev/v2/rates.csv?base=usd&quotes=eur&providers=ecb
ECB
欧州中央銀行の基準レート。EUのVATおよび関税の公式基準。
NBP
ポーランド国立銀行。ポーランドの税務申告で使用。
CNB
チェコ国立銀行。チェコの会計および税務の公式基準。
BCB
ブラジル中央銀行PTAX。ブラジルの契約および税務の公式基準。
BANXICO
メキシコ銀行の米ドル債務決済用FIXレート。

すべての提供元を確認できます。特定の提供元を指定した場合、その機関の公表スケジュールに従うため、合成市場レートより最新レートが1日遅れる場合があります。

過去の推移データ

期間指定にはfromを使用し、group=monthで月ごとに集約してグラフ作成に適した形式にします。Power Queryで読み込めば、通常のクエリと同様に更新されます。過去データが後から修正されないため、分析の再現性が保たれます。

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

これはドイツ連邦銀行(ブンデスバンク)のアーカイブから1949年以降の米ドル対英ポンドのレートを取得します。連邦銀行のFixingデータは、1948年からの米ドル対ドイツマルク、および1949年から1970年までの主要通貨レートを網羅しています。1999年以降は欧州中央銀行が引き継いでおり、現代の連続した時系列には標準の合成レートまたはproviders=ecbを使用します。