Kryptowährungen in Excel

Es gibt 4 drei Wege die Preise von Kryptowährungen in Excel einzuspielen.

  • Datentyp Währung
  • BÖRSENHISTORIE-Funktion 
  • Power Query Abfrage auf Websteite/API
  • Office Script Abfrage auf API

1. Datentyp Währung

Preise für die folgenden Kryptowährungen lassen sich mit dem Datentyp Währung in Excel einbinden.

  • Bitcoin (BTC)
  • Bitcoin Cash (BCH)
  • Litecoin (LTC)
  • Ripple (XRP)
  • Ethereum (ETH)

Dazu das gewünschte Währungspaar in eine Excel Zelle schreiben. z.B. BTC/USD oder BTC/EUR und dann die Zellenauswählen und auf Daten -> Datentypen -> Währung gehen.

Kryptowährungen Datentyp Währung

Die Zelle erhält dann ein Währungssymbol und im Hintergrund werden die Informationen von diesem Währungspaar geladen. Diese kannst Du über die Schaltfläche auswählen welche sich zeigt, wenn die Zelle ausgewählt ist oder alternativ kannst Du auch auf die Zelle verweisen und dann per Punkt auf die unterschiedlichen Indikatoren zugreifen. Zum Beispiel mit =A1.Preis

Kryptowährungen Datentyp Währung2

Folgende Indikatoren sind verfügbar. Davon ist der Preis sicherlich der wichtigste. Mit Hilfe von Öffnen, Hoch, Niedrig und Schlusskurs des Vortages (Open, High, Low, Close) kannst Du zudem Kursdiagramme erstellen.

Die Änderung zum Vortag in absoluten Werten und in Prozent sind auch interessante Informationen.

Kryptowährungen Datentyp Währung Indikatoren Neu

Um die Preise zu aktualisieren einfach Rechtsklick -> Datentyp -> Aktualisieren. Du kannst den Datentyp Währung auch so einstellen, dass beim Öffnen der Datei die Daten aktualisiert werden oder auch automatisch alle 5 Minuten.

Kryptowährungen Datentyp Währung Aktualisieren

Hier eine Beispieldatei mit den 5 Kryptowährungen die sich über den Datentyp Währung laden lassen.

2. Börsenhistorie

Für historische Werte kann man die Funktion BÖRSENHISTORIE verwenden. Diese liefert uns jedoch leider keine aktuellen Daten. Mehr Informationen zu der Funktion hier.

3. Power Query Abfrage auf Websteite/API

Via Power Query kann man eine Webabfrage erstellen und somit z.B. Daten aus einer HTML-Quelle oder auch von einer API-Schnittstelle in Excel laden. Solche Abfragen per Power Query sind jedoch leider relativ unzuverlässig, da die Webseiten beim Zugriff oft erst nach und nach geladen werden. Das führt dazu, dass die Abfragen nicht durchlaufen oder nur einen Teil der Daten ziehen.

Hier ein Beispiel für eine Webabfrage auf folgende URL:
https://www.tradingview.com/markets/cryptocurrencies/prices-all/

Daten -> Daten abrufen -> Aus dem Web

Via Power Query kann man eine Webabfrage erstellen und somit z.B. Daten aus einer HTML-Quelle oder auch von einer API-Schnittstelle in Excel laden. Solche Abfragen per Power Query sind jedoch leider relativ unzuverlässig, da die Webseiten beim Zugriff oft erst nach und nach geladen werden. Das führt dazu, dass die Abfragen nicht durchlaufen oder nur einen Teil der Daten ziehen.

Hier ein Beispiel für eine Webabfrage auf folgende URL:
https://www.tradingview.com/markets/cryptocurrencies/prices-all/

Daten -> Daten abrufen -> Aus dem Web

Kryptowährungen Abfrage aus dem WEB

Oft muss das Abfrageergebnis noch in Power Query bereinigt werden. D.h. zuerst sollte man alle unnötige Spalten entfernen. Anschließend mit Werte ersetzen bei amerikanischen Schreibweise Punkte durch Komma ersetzen und auf gleiche Weise müssen dann  auch Text wie "USD", "B", "M" usw. entfernt werden bevor man den Spaltentyp dann auf Dezimalzahl stellen kann.

Hier in dem Beispiel sind wir auf die Top 100 Kryptowährungen beschränkt und die erste Spalte mit der Bezeichnung bereitet uns Probleme da hier das Kürzel und der Name zusammen als ein Eintrag ausgegeben werden. Daher empfiehlt sich eine direkte Abfrage einer WEB-API z.B. der von Coingecko.
Dies läuft auf gleiche weise, jedoch muss man sich vorher noch die Abfrage-URL zusammenbauen. Dazu mehr auf https://www.coingecko.com/en/api/documentation

Hier noch eine Beispielabfrage auf https://www.livecoinwatch.com.
Den API-Key erhältst Du nach der Anmeldung unter https://www.livecoinwatch.com/tools/api.

Bei Abfrage -> Aus andere Quelle -> Leere Abfrage und dann im Power Query Editor unter Ansicht -> erweiterter Editor und dann folgenden M-Code reinkopieren. Dann noch den API-Key von livecoinwatch eingeben und bei Limit einstellen für wie viele Coins die Daten abgefragt werden sollen. Hier wären es die Top 1000 coins nach Marketcap.

let
url = "https://api.livecoinwatch.com/coins/list",
headers = [#"Content-Type" = "application/json", #"x-api-key" = "API-Key eingeben"],
postData = [#"currency" = "USD", #"sort" = "rank", #"order" = "ascending", #"offset" = 0, #"limit" = 1000, #"meta" = false],
response = Web.Contents(
url,
[
Headers = headers,
Content = Json.FromValue(postData)
]
),
jsonResponse = Json.Document(response),
#"In Tabelle konvertiert" = Table.FromList(jsonResponse, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Erweiterte Column1" = Table.ExpandRecordColumn(#"In Tabelle konvertiert", "Column1", {"code", "rate", "volume", "cap", "delta"}, {"code", "rate", "volume", "cap", "delta"}),
#"Erweiterte delta" = Table.ExpandRecordColumn(#"Erweiterte Column1", "delta", {"hour", "day", "week", "month", "quarter", "year"}, {"hour", "day", "week", "month", "quarter", "year"}),
#"Ersetzter Wert" = Table.ReplaceValue(#"Erweiterte delta","_","",Replacer.ReplaceText,{"code"}),
Subtraktionsspalte = Table.TransformColumns(#"Ersetzter Wert", {{"hour", each _ - 1, type number}}),
Subtraktionsspalte1 = Table.TransformColumns(Subtraktionsspalte, {{"day", each _ - 1, type number}}),
Subtraktionsspalte2 = Table.TransformColumns(Subtraktionsspalte1, {{"week", each _ - 1, type number}}),
Subtraktionsspalte3 = Table.TransformColumns(Subtraktionsspalte2, {{"month", each _ - 1, type number}}),
Subtraktionsspalte4 = Table.TransformColumns(Subtraktionsspalte3, {{"quarter", each _ - 1, type number}}),
Subtraktionsspalte5 = Table.TransformColumns(Subtraktionsspalte4, {{"year", each _ - 1, type number}})
in
Subtraktionsspalte5

4. Office Script Abfrage auf API

Im diesem Abschnitt schauen wir uns an, wie wir Office Script für einen API Abruf auf die API von https://www.livecoinwatch.com/ verwenden können. Der Vorteil hier ist, dass wir nicht auf die TOP 100 Kryptowährungen begrenzt sind und das resultierende Script auch an anderer Stelle von Kollegen verwendet werden kann.

1) Zuerst erstelle dir auf https://www.livecoinwatch.com/tools/api einen API-Key und nutze dann folgenden Code für dein Skript. XXXXXXXXXXXXX muss durch deinen API-Key ersetzt werden. 
Automatisieren -> Neues Skript

type APIResponseType = {
code: string,
rate: number,
volume: number,
cap: number,
delta: {
hour: number,
day: number,
week: number,
month: number,
quarter: number,
year: number
}
}

async function main(workbook: ExcelScript.Workbook) {

let currentSheet = workbook.getActiveWorksheet();

const response = await fetch("https://api.livecoinwatch.com/coins/list", {
method: "POST",
headers: new Headers({
"content-type": "application/json",
"x-api-key": "XXXXXXXXXXXXX",
}),
body: JSON.stringify({
currency: "USD",
sort: "rank",
order: "ascending",
offset: 0,
limit: 1000,
meta: false,
}),
});

const result: string = await response.json()

const stringifiedJson = JSON.stringify(result)

const data: APIResponseType[] = JSON.parse(stringifiedJson);

let dataCount: number = data.length

let headers = [["Code", "Cap", "Volume", "Rate", "Day"]];
let headerRange = currentSheet.getRange("A1:E1");
headerRange.setValues(headers);

let dataToEnter = [[], []]
for (let i = 0; i < dataCount; i++) {
let currentDataPiece = data[i];
dataToEnter[i] = [currentDataPiece.code, currentDataPiece.cap, currentDataPiece.volume, currentDataPiece.rate, currentDataPiece.delta.day -1];
}

let dataRange = currentSheet.getRange("A2:E" + String(dataCount + 1));
dataRange.setValues(dataToEnter);

let selectedSheet = workbook.getActiveWorksheet();
selectedSheet.getRange("A:A").replaceAll("_", "", { completeMatch: false, matchCase: false });

}

Kryptowährungen Office Skript Neu

2) Anschließend kannst Du noch ein Schaltfläche für das Skript anlegen.

3) Sobald Du auf die Schaltfläche klickst werden die Top 150 Kryptowährungen geladen und in die Spalten A bis E geschrieben. Du kannst die Anzahl der Währungen im Code anpassen. Dazu in Codezeile 31 nach limit: die gewünsche Anzahl eingeben. 

4) Anschließend kannst Du die Kurspreise über den XVERWEIS, mit dem Symbol der Kryptowährung als Suchkriterium, in deinem Arbeitsblatt verbauen.