Excel
Excel 內建的匯率功能是 Microsoft 365 的「貨幣」資料類型:它提供的是無法鎖定來源、也無法撈取歷史紀錄的即時綜合匯率。Frankfurter 的綜合匯率來源透明可查;當法規要求精確來源時,你可以鎖定單一官方機構,例如歐盟營業稅(VAT)使用的歐洲央行參考匯率、波蘭 NBP 或巴西 PTAX。鎖定資料來源後,歷史匯率會保持原發布數值不變。Windows 與 Mac 皆可透過 Power Query 載入資料,Windows 版另提供一行公式進行快速換算。
Power Query
Windows 與 Mac 通用的主要方式。前往資料 > 從 Web,貼上 CSV 端點網址,即可載入包含 date,base,quote,rate 的表格。隨時可透過資料 > 全部重新整理更新數據:
https://api.frankfurter.dev/v2/rates.csv?base=usd"es=eur以逗號分隔多個目標貨幣,即可一次查詢多組匯率:
https://api.frankfurter.dev/v2/rates.csv?base=usd"es=eur,gbp,jpy換算金額
Power Query 載入的是匯率而非換算後總額,請將金額乘上載入的匯率儲存格。若只需單次換算而不想建立查詢,Windows 版 Microsoft 365 可在公式中直接呼叫 API。開啟公式 > 名稱管理員 > 新增,建立名為 FRANKFURTER 的自訂函式並填入以下定義:
=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"":"), "}"), "."))接著即可在任意儲存格呼叫:
=FRANKFURTER(100, "usd", "eur")傳入日期即可查詢歷史匯率:
=FRANKFURTER(100, "usd", "eur", DATE(2020, 1, 2)) WEBSERVICE 僅支援 Windows,且由於 Excel 公式沒有內建 JSON 解析器,此函式會直接從回應文字擷取匯率數值。NUMBERVALUE 明確指定小數點為 .,即使在以逗號作為小數點的地區設定下也能正常運作。Mac 使用者請改將金額乘上 Power Query 載入的匯率儲存格。
鎖定官方資料來源
預設會回傳彙整所有來源的綜合匯率。在查詢網址加上 providers 即可鎖定單一官方機構。這對稅務與會計至關重要,許多國家規定外幣換算必須採用本國中央銀行公布的官方匯率。
https://api.frankfurter.dev/v2/rates.csv?base=usd"es=eur&providers=ecbECB- 歐洲中央銀行參考匯率,歐盟營業稅(VAT)與海關標準。
NBP- 波蘭國家銀行,波蘭 VAT 與企業所得稅(CIT)法定換算匯率。
CNB- 捷克國家銀行定盤價,用於捷克會計與稅務申報。
BCB- 巴西中央銀行 PTAX,巴西合約與稅務參考匯率。
BANXICO- 墨西哥銀行 FIX 匯率,用於結算美元計價債務。
瀏覽所有資料來源。鎖定單一來源時會依該機構自身的發布時間表更新,因此最新匯率可能比綜合匯率晚一天。
歷史時間序列
使用 from 指定起始日期,並搭配 group=month 將資料彙整為每月一列,即可直接繪製圖表。透過 Power Query 載入後,可像一般查詢一樣隨時重新整理。綜合歷史匯率可能隨新資料匯入而微幅變動,若數字必須固定不變,請鎖定單一資料來源。
https://api.frankfurter.dev/v2/rates.csv?from=1949-12-01&base=usd"es=gbp&providers=bbk&group=month 上述查詢會從德國聯邦銀行(Deutsche Bundesbank)歷史檔案取得自 1949 年以來的美元兌英鎊匯率,你可以清楚看到 2.80 美元釘住匯率維持多年後於 1967 年脫鉤的過程。早期深度歷史資料來自德國聯邦銀行的法蘭克福定盤紀錄:美元兌馬克始於 1948 年,其餘多數美元交叉匯率涵蓋 1949 至 1970 年。1999 年起由歐洲中央銀行接手,因此連續的現代時間序列可使用預設綜合匯率或 providers=ecb。