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

Google SheetsにはGOOGLEFINANCEが用意されており、簡単な換算にはどちらも役立ちます。どちらも市場レートを返し、以下の数式はGOOGLEFINANCEを使う場面全般で利用できます。違いは提供元にあります。GOOGLEFINANCEは情報源を明示せず指定もできません。Frankfurterは透明です。公的機関のレートが必要な場合は、EU付加価値税用のECB基準レート、ポーランドのNBP、ブラジルのPTAXなど固定の機関を選択できます。さらに、後から密かに変更されない安定した過去データも提供します。

クイックスタート

設定やAPIキーは不要です。IMPORTDATA関数とCSVエンドポイントをセルに入力するだけで最新レートを取得できます:

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

Google Sheetsにdate,base,quote,rateのテーブルが展開されます。date列は初期状態でシリアル値として表示される場合があります。列を選択して表示形式 > 数字 > 日付を選択すると日付形式で表示されます。複数の対象通貨を一度に取得するにはカンマで区切ります:

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

金額の換算

IMPORTDATAは為替レートを返します。読み込んだレートのセルに換算前の金額を掛け合わせるか、以下のカスタム関数を利用してください。

カスタム関数

再利用可能な=FRANKFURTER()関数を作成するには、短いApps Scriptを追加します。スプレッドシートの拡張機能 > Apps Scriptを開き、次のコードを貼り付けて保存します:

function FRANKFURTER(amount, from, to, date) {
  let url = `https://api.frankfurter.dev/v2/rate/${from}/${to}`;
  if (date) url += `?date=${Utilities.formatDate(date, "UTC", "yyyy-MM-dd")}`;
  const data = JSON.parse(UrlFetchApp.fetch(url).getContentText());
  return amount * data.rate;
}

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

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

日付を指定して過去のレートを取得:

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

特定の公的機関を指定

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

=IMPORTDATA("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で月ごとに集約してグラフ作成に適した形式にします。過去データが後から修正されないため、分析の再現性が保たれます。

=IMPORTDATA("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を使用します。