Google Sheets
Google Sheets bietet GOOGLEFINANCE für Wechselkurse, und für eine schnelle Umrechnung reicht das aus. Der Haken ist die Quelle: ein anonymer Marktmischkurs, den du weder einsehen noch selbst wählen kannst. Frankfurter mischt Zentralbankkurse, die du einsehen kannst. Wenn die Quelle verbindlich sein muss, wählst du eine feste Institution: den EZB-Referenzkurs für die EU-Umsatzsteuer, die polnische NBP oder die brasilianische PTAX. Die Historie einer festen Datenquelle bleibt so, wie sie veröffentlicht wurde. Die folgenden Formeln passen überall dort, wo du auch GOOGLEFINANCE einsetzen würdest.
Schnellstart
Keine Einrichtung und kein API-Schlüssel nötig. Platziere einen aktuellen Kurs mit IMPORTDATA und dem CSV-Endpoint in einer Zelle:
=IMPORTDATA("https://api.frankfurter.dev/v2/rates.csv?base=usd"es=eur") Google Sheets füllt eine kompakte Tabelle mit date,base,quote,rate. Die Spalte date erscheint zunächst als fortlaufende Zahl. Wähle sie aus und klicke auf Format, Zahl, Datum, um sie lesbar anzuzeigen. Mehrere Zielwährungen fragst du kommagetrennt auf einmal ab:
=IMPORTDATA("https://api.frankfurter.dev/v2/rates.csv?base=usd"es=eur,gbp,jpy")Betrag umrechnen
IMPORTDATA liefert den Kurs, nicht den umgerechneten Gesamtbetrag. Multipliziere deinen Betrag mit der Zelle des importierten Kurses, oder nutze die eigene Funktion unten für einen sauberen Aufruf.
Eigene Funktion
Für eine wiederverwendbare Funktion =FRANKFURTER() genügt ein kurzes Apps Script. Öffne in deiner Tabelle Erweiterungen, Apps Script, füge diesen Code ein und speichere:
/**
* Rechnet einen Betrag zwischen Währungen um, zum heutigen Kurs oder zu einem Datum.
* @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;
}Rufe sie dann aus einer beliebigen Zelle auf:
=FRANKFURTER(100, "usd", "eur")Übergib ein Datum für einen historischen Kurs:
=FRANKFURTER(100, "usd", "eur", DATE(2020, 1, 2))Offizielle Quelle festlegen
Standardmäßig erhältst du den Mischkurs aller Quellen. Ergänze providers, um eine bestimmte Institution festzulegen. Das ist für Steuern und Buchhaltung wichtig: Viele Länder verlangen den Kurs ihrer eigenen Zentralbank, wenn Fremdwährungsbeträge umgerechnet werden.
=IMPORTDATA("https://api.frankfurter.dev/v2/rates.csv?base=usd"es=eur&providers=ecb")ECB- Referenzkurs der Europäischen Zentralbank, der Standard für EU-Umsatzsteuer und Zoll.
NBP- Narodowy Bank Polski. Polnische Umsatz- und Körperschaftsteuer rechnen zum NBP-Kurs um.
CNB- Tschechische Nationalbank, Referenz für tschechische Buchhaltung und Steuern.
BCB- Banco Central do Brasil PTAX, die Referenz für brasilianische Verträge und Steuern.
BANXICO- Banco de México FIX-Kurs zur Begleichung von US-Dollar-Verbindlichkeiten.
Alle Quellen ansehen. Eine festgelegte Quelle folgt ihrem eigenen Veröffentlichungsrhythmus, sodass ihr neuester Kurs dem kombinierten Kurs um einen Tag hinterherhinken kann.
Historische Zeitreihen
Nutze from für einen Zeitraum und group=month, um ihn auf eine Zeile pro Monat zu verdichten, fertig für Diagramme. Mischkurse können sich mit neuen Daten leicht verschieben. Wenn Werte fest bleiben müssen, wähle eine feste Datenquelle.
=IMPORTDATA("https://api.frankfurter.dev/v2/rates.csv?from=1949-12-01&base=usd"es=gbp&providers=bbk&group=month") Das ruft den US-Dollar gegenüber dem britischen Pfund bis 1949 aus dem Archiv der Deutschen Bundesbank ab. Du kannst sehen, wie die Cable-Bindung von 2,80 $ jahrelang hielt und 1967 brach. Weit zurückreichende Historie liefern die Frankfurter Devisenfixings der Bundesbank: der Dollar gegen die D-Mark ab 1948, die meisten anderen Dollar-Kurse von 1949 bis 1970. Ab 1999 übernimmt die Europäische Zentralbank; eine durchgehende moderne Zeitreihe nutzt den Standard-Mischkurs oder providers=ecb.