Soru ya da sorun varsa GitHub Discussions'a yaz.

Google Sheets'te döviz kurları için GOOGLEFINANCE var ve hızlı bir dönüşüm için iş görür. Sorun kaynakta: adı belirsiz, inceleyemediğin ve seçemediğin bir piyasa harmanı. Frankfurter ise inceleyebildiğin merkez bankası kurlarını harmanlar. Kaynağın kesin olması gerektiğinde tek bir kurumu sabitleyebilirsin: AB KDV'si için ECB referans kuru, Polonya'da NBP ya da Brezilya'da PTAX. Sabitlediğin sağlayıcının geçmiş kurları yayımlandığı gibi kalır. Aşağıdaki formülleri GOOGLEFINANCE kullandığın her yerde kullanabilirsin.

Hızlı başlangıç

Kurulum yok, API anahtarı yok. IMPORTDATA ve CSV endpoint'iyle canlı bir kuru hücreye çek:

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

Sheets küçük bir date,base,quote,rate tablosu doldurur. date sütunu seri numarası olarak gelir; sütunu seç ve Biçim, Sayı, Tarih ile yeniden tarihe çevir. Birden fazla hedef para birimini virgülle ayırarak tek seferde iste:

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

Tutar dönüştürme

IMPORTDATA dönüştürülmüş tutarı değil, kuru döndürür. Tutarını içe aktarılan kur hücresiyle çarp ya da tek ve temiz bir çağrı için aşağıdaki özel fonksiyonu kullan.

Özel fonksiyon

Tekrar tekrar kullanabileceğin bir =FRANKFURTER() fonksiyonu için kısa bir Apps Script ekle. E-tablonda Uzantılar, Apps Script menüsünü aç, şu kodu yapıştır ve kaydet:

/**
 * Bir tutarı para birimleri arasında bugünün kuruyla ya da belirli bir tarihteki kurla dönüştürür.
 * @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;
}

Ardından herhangi bir hücreden çağır:

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

Geçmiş bir kur için tarih ver:

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

Resmi kaynak sabitleme

Varsayılan olarak tüm kaynakların harmanını alırsın. Tek bir kurumu sabitlemek için providers ekle. Bu, vergi ve muhasebe için önemli: birçok ülke, döviz cinsinden tutarları çevirirken kendi merkez bankasının yayımladığı kuru şart koşar.

=IMPORTDATA("https://api.frankfurter.dev/v2/rates.csv?base=usd&quotes=eur&providers=ecb")
ECB
Avrupa Merkez Bankası referans kuru; AB'de KDV ve gümrük için standart.
NBP
Narodowy Bank Polski. Polonya'da KDV ve kurumlar vergisi NBP kuruyla hesaplanır.
CNB
Çek Ulusal Bankası'nın fixing kuru; Çekya'da muhasebe ve vergide kullanılır.
BCB
Banco Central do Brasil PTAX kuru; Brezilya'da sözleşmeler ve vergi için referans.
BANXICO
Banco de México FIX kuru; ABD doları cinsinden yükümlülüklerin ödenmesinde kullanılır.

Tüm kaynaklara göz at. Sabitlenen bir kaynak kendi yayın takvimini izler; bu yüzden en güncel kuru, harmanlanmış güncel kurun bir gün gerisinde kalabilir.

Geçmiş seriler

Tarih aralığını from ile belirle, group=month ile de ayda tek satıra indir; veri grafiğe hazır olur. Harmanlanmış geçmiş, yeni veri geldikçe biraz değişebilir. Değerlerin sabit kalması gerekiyorsa bir sağlayıcı sabitle.

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

Bu sorgu, Deutsche Bundesbank arşivinden ABD dolarının sterlin karşısındaki kurunu 1949'a kadar geriye çeker. Sterlin/dolar paritesinin yıllarca 2,80 dolarda sabit kaldığını, 1967'de ise bu sabitliğin bozulduğunu görebilirsin. Eski veriler Bundesbank'ın Frankfurt fixing kurlarından gelir: Alman markı karşısında dolar 1948'den, diğer dolar paritelerinin çoğu 1949'dan 1970'e kadar. 1999'dan itibaren bayrağı Avrupa Merkez Bankası devralır; günümüze uzanan kesintisiz bir seri için varsayılan harmanı ya da providers=ecb kullan.