Ada pertanyaan atau kendala? Tulis di GitHub Discussions.

Google Sheets menyediakan GOOGLEFINANCE untuk kurs, dan itu cukup untuk konversi cepat. Kendalanya ada pada sumbernya: gabungan pasar tanpa nama yang tidak bisa Anda periksa atau pilih. Frankfurter menggabungkan kurs bank sentral yang dapat Anda periksa, dan saat sumber harus spesifik Anda dapat mengunci satu otoritas: kurs referensi ECB untuk PPN Uni Eropa, NBP Polandia, atau PTAX Brasil. Riwayat penyedia yang dikunci tetap sesuai terbitan aslinya. Rumus di bawah ini dapat ditempatkan di mana saja Anda biasa memakai GOOGLEFINANCE.

Mulai Cepat

Tanpa penyiapan dan tanpa kunci API. Masukkan kurs terbaru ke dalam sel dengan IMPORTDATA dan endpoint CSV:

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

Sheets akan mengisi tabel kecil date,base,quote,rate. Kolom date muncul sebagai angka seri. Pilih kolom tersebut lalu klik Format, Angka, Tanggal untuk menampilkannya sebagai tanggal. Minta beberapa mata uang tujuan sekaligus dengan memisahkannya menggunakan koma:

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

Konversi Jumlah

IMPORTDATA mengembalikan nilai kurs, bukan hasil akhir konversi. Kalikan jumlah Anda dengan sel kurs yang diimpor, atau gunakan fungsi kustom di bawah ini untuk pemanggilan tunggal yang rapi.

Fungsi Kustom

Untuk membuat fungsi =FRANKFURTER() yang dapat dipakai ulang, tambahkan Apps Script singkat. Di spreadsheet Anda, buka Ekstensi, Apps Script, tempel kode ini, lalu simpan:

/**
 * Converts an amount between currencies, at today's rate or on a date.
 * @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;
}

Lalu panggil dari sel mana pun:

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

Sertakan tanggal untuk mengambil kurs historis:

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

Kunci Penyedia Resmi

Secara default Anda mendapatkan kurs gabungan dari seluruh penyedia. Tambahkan providers untuk mengunci satu otoritas. Hal ini penting untuk pajak dan akuntansi: banyak negara mewajibkan kurs resmi terbitan bank sentral masing-masing saat mengonversi nominal mata uang asing.

=IMPORTDATA("https://api.frankfurter.dev/v2/rates.csv?base=usd&quotes=eur&providers=ecb")
ECB
Kurs referensi Bank Sentral Eropa, standar untuk PPN dan bea cukai Uni Eropa.
NBP
Narodowy Bank Polski. PPN dan pajak badan Polandia dikonversi menggunakan kurs NBP.
CNB
Kurs penetapan Bank Nasional Ceko, digunakan untuk akuntansi dan pajak di Ceko.
BCB
PTAX Banco Central do Brasil, acuan untuk kontrak dan pajak di Brasil.
BANXICO
Kurs FIX Banco de México untuk penyelesaian kewajiban berdenominasi dolar AS.

Jelajahi semua penyedia. Penyedia yang dikunci mengikuti jadwal penerbitannya sendiri, sehingga kurs terbarunya bisa tertinggal satu hari dibanding kurs gabungan terbaru.

Deret Waktu Historis

Gunakan from untuk rentang tanggal dan group=month untuk meringkasnya menjadi satu baris per bulan, siap dibuat grafik. Riwayat kurs gabungan dapat bergeser tipis saat data baru masuk, jadi kunci penyedia jika angka harus tetap tidak berubah.

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

Kueri tersebut menarik data dolar AS terhadap pound sejak 1949 dari arsip Deutsche Bundesbank. Anda dapat melihat patokan kabel $2,80 bertahan datar selama bertahun-tahun sebelum berakhir pada 1967. Riwayat panjang berasal dari penetapan kurs Frankfurt oleh Bundesbank: dolar terhadap mark sejak 1948, dan sebagian besar pasangan dolar lainnya dari 1949 hingga 1970. Bank Sentral Eropa melanjutkannya mulai 1999, sehingga deret waktu modern yang berkesinambungan menggunakan gabungan default atau providers=ecb.