질문이나 문제가 있나요? GitHub Discussions에 남겨 주세요.

Google Sheets에는 환율용 GOOGLEFINANCE가 있고, 빠른 환전에는 그것으로 충분합니다. 문제는 출처입니다. 확인할 수도, 고를 수도 없는 이름 없는 시장 종합 환율이기 때문입니다. Frankfurter는 구성을 확인할 수 있는 중앙은행 환율을 종합하며, 출처가 정확해야 할 때는 EU 부가가치세용 ECB 기준 환율, 폴란드 NBP, 브라질 PTAX처럼 기관 하나를 고정할 수 있습니다. 고정한 제공 기관의 과거 데이터는 공표된 그대로 유지됩니다. 아래 수식은 GOOGLEFINANCE를 넣을 자리에 그대로 들어갑니다.

빠른 시작

설정도 API 키도 필요 없습니다. IMPORTDATA와 CSV 엔드포인트로 셀에 최신 환율을 넣으세요:

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

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를 열고 다음 코드를 붙여 넣은 뒤 저장합니다:

/**
 * 오늘 환율 또는 지정한 날짜의 환율로 통화 간 금액을 환전합니다.
 * @customfunction
 */
function FRANKFURTER(amount, from, to, date) {
  let url = `https://api.frankfurter.dev/v2/rate/${from}/${to}`;
  if (date) {
    const tz = SpreadsheetApp.getActive().getSpreadsheetTimeZone();
    url += `?date=${Utilities.formatDate(date, tz, "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 부가가치세와 관세의 표준입니다.
NBP
폴란드 국립은행. 폴란드 부가가치세와 법인세는 NBP 환율로 환산합니다.
CNB
체코 국립은행 고시 환율. 체코 회계와 세무에 사용됩니다.
BCB
브라질 중앙은행 PTAX. 브라질 계약과 세무의 기준입니다.
BANXICO
멕시코 중앙은행 FIX 환율. 미국 달러 채무 결제에 사용됩니다.

모든 제공 기관을 살펴보세요. 고정한 제공 기관은 자체 공표 일정을 따르므로, 최신 환율이 종합 환율보다 하루 늦을 수 있습니다.

과거 시계열

기간에는 from을, 월별 한 행으로 압축해 차트로 바로 그리려면 group=month를 사용하세요. 종합 환율의 과거 데이터는 새 데이터가 들어오면 조금씩 바뀔 수 있으므로, 수치를 고정해야 하면 제공 기관을 고정하세요.

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

이 쿼리는 도이치 분데스방크 아카이브에서 1949년까지의 미국 달러 대 영국 파운드 환율을 가져옵니다. 2.80달러의 케이블 페그가 수년간 유지되다가 1967년에 깨지는 모습을 볼 수 있습니다. 깊은 과거 데이터는 분데스방크의 프랑크푸르트 고시 환율에서 나옵니다. 1948년부터의 달러 대 마르크, 1949년부터 1970년까지의 대부분의 달러 교차 환율이 여기에 포함됩니다. 1999년부터는 유럽중앙은행이 이어받으므로, 현대의 연속된 시계열에는 기본 종합 환율이나 providers=ecb를 사용하세요.