Live release feed
Sub-second macro releases for FX backtests
Point-in-time history
Official CPI, jobs, GDP, and central-bank events with point-in-time history.
$25/month 14-day free trial
Start Free Trial
Wie man Makrodaten in Excel / Google Sheets zieht image
Share headline card X LinkedIn Email
Download

Implementation

How-To Guides

Wie man Makrodaten in Excel / Google Sheets zieht

Schritt für Schritt Anleitung zum Abrufen von Live-makroökonomischen Daten von FXMacroData in Excel über Power Query oder VBA und in Google Sheets über Apps Script mit automatischer Aktualisierung und sauberer Zeilenformatierung.

Auch verfügbar auf English
Share article X LinkedIn Email

Spreadsheets bleiben das häufigste Werkzeug für Makroanalyse. Ob Sie Excel oder Google Sheets bevorzugen, das Ziehen von Live-Zentralbank- und Wirtschaftsindikatordaten direkt in eine Zelle anstatt Werte von Hand zu kopieren verwandelt eine statische Tabelle in eine selbst aktualisierende Entscheidungshilfe. Diese Anleitung zeigt Ihnen, wie Sie FXMacroData mit beiden Plattformen verbinden: Power Query und VBA für Excel und Apps Script für Google Sheet. Am Ende wird jede Macro-Nummer, die Ihnen wichtig ist, automatisch aktualisiert, ohne Ihre Tabelle zu verlassen.

Was du bauen wirst

  • Excel-Power-Abfrage eine Abfrage, die jeden Indikator mit einem Klick in eine strukturierte Tabelle holt
  • Excel VBA ein Makro, das Werte direkt in benannte Zellen schreibt, bereit für Formeln und Diagramme
  • Google Apps Skript wird verwendet ein Skript, das Zeilen auf einen Tab "Blätter" schreibt und auf einem zeitgesteuerten Trigger aktualisiert

Voraussetzungen

  • FXMacroData-API-Schlüssel melden Sie sich an /abonnierenDie freien Schlüssel decken viele Indikatorenendpunkte ab .
  • Excel 2016+ (für Power Query) oder Excel 365/Online Power Query ist in Windows/Mac integriert und online verfügbar
  • Google-Konto jedes Konto mit Zugriff auf Google Sheets und Apps Script (keine zusätzliche Software erforderlich)
  • Grundlegende Kenntnisse von Excel-Formeln oder Google Sheets kein Programmierergehäuse für den Abschnitt Power Query erforderlich

Teil 1 EXCEL

Teil 1 Excel

Excel bietet zwei Wege für Live-API-Daten: Leistungsaufforderung (keine Codes, ideal für Analysten) und VBA (code-driven, am besten, wenn Sie Werte in bestimmte Zellen schreiben oder Logik aus einer Schaltfläche oder einem Ereignis auslösen müssen).

- Schritt 1 -

Schritt 1 Verständnis für die Form des API-Endpunktes

Jeder FXMacroData-Indikator folgt dem gleichen REST-Muster.

GET https://fxmacrodata.com/api/v1/announcements/usd/policy_rate?api_key=YOUR_API_KEY&start=2020-01-01

Die JSON-Antwort ist ein flaches Objekt mit einem data - Das ist nicht wahr .

{
  "data": [
    { "date": "2025-03-19", "val": 4.25, "announcement_datetime": "2025-03-19T18:00:00Z" },
    { "date": "2025-01-29", "val": 4.25, "announcement_datetime": "2025-01-29T19:00:00Z" },
    { "date": "2024-12-18", "val": 4.25, "announcement_datetime": "2024-12-18T19:00:00Z" }
  ]
}

Jede Platte trägt eine date (JJJ-MM-DD), eine Zahlenzahl val, und soweit verfügbar eine UTC der zweiten Ebene announcement_datetime. Da jeder Indikatorendpunkt diese Form teilt, kann eine Power Query-Funktion oder ein VBA-Helfer alle bedienen. API-Dokumentation- Ich weiß .


- Schritt 2 -

Schritt 2 Excel Power Query: Importieren über Web-Connector

Die Power Query ist eingebaut. Aus dem Internet Der Connector kann jeden JSON REST Endpunkt ohne Code verbrauchen.

  1. In Excel klicken Sie auf Daten → Daten erhalten → aus anderen Quellen → aus dem Internet- Ich weiß .
  2. Fügen Sie Ihre URL in den Dialog ersetzen YOUR_API_KEY mit Ihrem eigentlichen Schlüssel:
    https://fxmacrodata.com/api/v1/announcements/usd/policy_rate?api_key=YOUR_API_KEY&start=2020-01-01
  3. Klicken Sie - Ich weiß .. Power Query Navigator öffnet sich und zeigt die JSON-Struktur.
  4. Klicken Sie auf Daten Aufzeichnen Sie in dem Navigator, um es zu erweitern, und klicken Sie dann auf Umwandlung in Tabelle - Ich weiß. - Ich weiß .- Ich weiß .
  5. - Verwenden Sie die ... Spalte erweitern Schaltfläche (Doppelpfeil-Symbol) auf der Column1 Überschrift, um die verschachtelten Datensätze in flache Spalten zu entpacken: date- Ich weiß . val- Ich weiß . announcement_datetime- Ich weiß .
  6. Klicken Sie Schließen und beladen Die Tabelle in ein neues Blatt zu schreiben.

Tipp: Automatische Aktualisierung

Mit der rechten Maustaste auf die geladene Tabelle → Tabelle → Eigenschaften externer Daten → aktivieren Daten beim Öffnen der Datei aktualisieren und ein Alle N Minuten aktualisieren Ihre Makrotabelle bleibt jedes Mal aktuell, wenn Sie die Arbeitsmappe öffnen.


- Schritt 3 -

Schritt 3 Excel Power Query: Parametrieren mit einer wiederverwendbaren Funktion

Sobald die Abfrage mit einem Indikator funktioniert hat, können Sie sie in eine wiederverwendbare M-Funktion umwandeln, damit Sie jede Währungs-/Indikatorkombination ziehen können, ohne die Schritte des Web-Konnektors zu wiederholen.

  1. In der Abfrage-Editor, mit der rechten Maustaste auf Ihre Abfrage im linken Panel → Funktion erstellen- Ich weiß .
  2. Nennen Sie es . FetchMacroData- Ich weiß .
  3. Der Körper wird durch den folgenden M-Code ersetzt:
// FetchMacroData — reusable Power Query function
// Parameters: currency (e.g. "usd"), indicator (e.g. "policy_rate"), apiKey, startDate
(currency as text, indicator as text, apiKey as text, startDate as text) =>
let
    url     = "https://fxmacrodata.com/api/v1/announcements/"
              & currency & "/" & indicator
              & "?api_key=" & apiKey
              & "&start=" & startDate,
    raw     = Json.Document(Web.Contents(url)),
    records = raw[data],
    tbl     = Table.FromList(records, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    expand  = Table.ExpandRecordColumn(tbl, "Column1",
                {"date", "val", "announcement_datetime"},
                {"Date", "Value", "AnnouncementDatetime"}),
    typed   = Table.TransformColumnTypes(expand, {
                {"Date",  type date},
                {"Value", type number}
              })
in
    typed
  1. Schließen Sie den Funktionseditor. Jetzt erstellen Sie einen neuen Leere Abfrage für jeden Indikator, den Sie benötigen:
= FetchMacroData("usd", "inflation", "YOUR_API_KEY", "2022-01-01")
= FetchMacroData("eur", "policy_rate", "YOUR_API_KEY", "2022-01-01")

Jede Abfrage lädt in ihre eigene Tabelle. Die Funktion behandelt den HTTP-Aufruf, JSON-Parse, Spaltenumbenennung und Typkonvertierung. Um einen neuen Indikator hinzuzufügen, fügen Sie eine leere Abfrage hinzu kein Connector-Assistent erforderlich. Finden Sie Indikatorschläger auf der API-Dokumentation für jedes Währungspaar.


- Schritt 4 -

Schritt 4 Excel VBA: Werte direkt in Zellen schreiben

VBA ist besser geeignet, wenn Sie Werte in bestimmte benannte Zellen platzieren, sie mit vorhandenen Formeln verknüpfen oder die Aktualisierung von einem Button oder einem geöffneten Arbeitsmappenereignis auslösen müssen.

Öffnen Sie den VBA-Editor (Alt+F11), ein neues Modul einfügen (Einfügen → Modul), und fügen Sie Folgendes ein:

Option Explicit

' ─────────────────────────────────────────────────────────────────
' FetchLatestIndicator
' Returns the most recent val for a given currency/indicator.
' Requires a reference to "Microsoft XML, v6.0" (VBA Editor →
' Tools → References → tick "Microsoft XML, v6.0").
' ─────────────────────────────────────────────────────────────────
Function FetchLatestIndicator(currency As String, indicator As String, _
                               apiKey As String) As Variant
    Dim http     As New MSXML2.XMLHTTP60
    Dim url      As String
    Dim json     As String
    Dim dataArr  As Variant
    Dim parsed   As Object

    url = "https://fxmacrodata.com/api/v1/announcements/" & _
          LCase(currency) & "/" & LCase(indicator) & _
          "?api_key=" & apiKey & "&limit=1"

    http.Open "GET", url, False
    http.setRequestHeader "Accept", "application/json"
    http.Send

    If http.Status <> 200 Then
        FetchLatestIndicator = CVErr(xlErrValue)
        Exit Function
    End If

    ' ── Minimal JSON parser (no external library needed) ──────────
    ' Locate the first "val": number pattern after "data":[{
    Dim pos     As Long
    Dim valStr  As String
    json = http.responseText
    pos  = InStr(json, """val"":")
    If pos = 0 Then
        FetchLatestIndicator = CVErr(xlErrNA)
        Exit Function
    End If
    pos    = pos + Len("""val"":")
    valStr = Mid(json, pos, 20)
    ' Trim to the actual number (stop at comma, space, or brace)
    valStr = Split(Trim(valStr), ",")(0)
    valStr = Split(valStr, "}")(0)
    valStr = Trim(valStr)
    FetchLatestIndicator = CDbl(valStr)
End Function


' ─────────────────────────────────────────────────────────────────
' RefreshMacroDashboard
' Writes the latest value of several indicators into named cells.
' Define Named Ranges (Formulas → Name Manager) matching the keys
' used in the pairs array below.
' ─────────────────────────────────────────────────────────────────
Sub RefreshMacroDashboard()
    Dim apiKey As String
    apiKey = "YOUR_API_KEY"   ' ← replace with your key

    Dim pairs(5, 1) As String
    pairs(0, 0) = "usd" : pairs(0, 1) = "policy_rate"
    pairs(1, 0) = "eur" : pairs(1, 1) = "policy_rate"
    pairs(2, 0) = "gbp" : pairs(2, 1) = "policy_rate"
    pairs(3, 0) = "usd" : pairs(3, 1) = "inflation"
    pairs(4, 0) = "usd" : pairs(4, 1) = "unemployment"
    pairs(5, 0) = "usd" : pairs(5, 1) = "gdp"

    Dim i   As Integer
    Dim val As Variant
    Dim nm  As String
    For i = 0 To 5
        val = FetchLatestIndicator(pairs(i, 0), pairs(i, 1), apiKey)
        nm  = UCase(pairs(i, 0)) & "_" & pairs(i, 1)
        On Error Resume Next
        ThisWorkbook.Names(nm).RefersToRange.Value = val
        On Error GoTo 0
    Next i

    MsgBox "Dashboard updated — " & Now(), vbInformation, "FXMacroData"
End Sub

Wie man das an einen Knopf anschließt

Auf dem Arbeitsblatt geht es zu Einfügen → Formen, zeichnen Sie ein abgerundetes Rechteck, klicken Sie mit der rechten Maustaste darauf → Makro zuweisen → wählen RefreshMacroDashboard. Ein Klick erneuert jeden Indikator in Ihrem Dashboard. Sie können ihn auch automatisch auf der geöffneten Datei ausführen, indem Sie ihn von Workbook_Open() In der ... ThisWorkbook Code-Modul.


Teil 2 GOOGLE SHEETS

Teil 2 Google-Blätter

Google Apps Script ist eine JavaScript-Laufzeit, die direkt in Google Workspace eingebettet ist. Sie läuft serverseitig auf der Infrastruktur von Google, so dass nichts zu installieren ist. UrlFetchApp und schreiben Sie die Ergebnisse in die Tabelle mit SpreadsheetAppZeitgesteuerte Auslöser lassen automatische Aktualisierungen planen.

- Schritt 5 -

Schritt 5 Öffnen Sie den Apps Script Editor

  1. - Mach auf . Die Daten werden von der Website der Kommission übermittelt. und erstellen Sie eine neue leere Tabelle.
  2. Klicken Sie Erweiterungen → Apps Script- Ich weiß .
  3. Das Projekt wird umbenannt in FXMacroData-Lader (oberst links)
  4. Löschen Sie die Standardvorgabe . myFunction() Platzhalter.

Speichern Sie Ihren API-Schlüssel sicher

Geht zu ... Projekt-Einstellungen → Skript-Eigenschaften → Eigenschaft hinzufügenFügen Sie eine Eigenschaft mit dem Namen hinzu FXMACRODATA_API_KEY Der Code unten liest es in der Laufzeit über PropertiesService.getScriptProperties() Ihr Schlüssel erscheint nie in der Skriptdatei.


- Schritt 6 -

Schritt 6 Schreiben Sie den Abrufhelfer und den Blattschreiber

Fügen Sie den folgenden Code ein Code.gsDie drei Funktionen befassen sich mit Abrufen, Normalisieren und Schreiben:

// ── Config ──────────────────────────────────────────────────────
const BASE_URL = 'https://fxmacrodata.com/api/v1';

// List of {currency, indicator} pairs to load.
// Add or remove rows to customise your dashboard.
const INDICATORS = [
  { currency: 'usd', indicator: 'policy_rate'  },
  { currency: 'usd', indicator: 'inflation'    },
  { currency: 'usd', indicator: 'unemployment' },
  { currency: 'eur', indicator: 'policy_rate'  },
  { currency: 'gbp', indicator: 'policy_rate'  },
  { currency: 'aud', indicator: 'policy_rate'  },
];


// ── Fetch helper with retry ─────────────────────────────────────
/**
 * Fetches the latest N records for a currency/indicator pair.
 * Retries up to maxRetries times with exponential back-off.
 *
 * @param {string} currency   - e.g. 'usd'
 * @param {string} indicator  - e.g. 'policy_rate'
 * @param {string} apiKey
 * @param {number} limit      - number of records to return (default 12)
 * @param {number} maxRetries
 * @returns {Array} array of {date, val, announcement_datetime} objects
 */
function fetchIndicator(currency, indicator, apiKey, limit = 12, maxRetries = 3) {
  const url = `${BASE_URL}/announcements/${currency}/${indicator}`
            + `?api_key=${apiKey}&limit=${limit}`;

  for (let attempt = 0; attempt < maxRetries; attempt++) {
    try {
      const resp = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
      if (resp.getResponseCode() === 200) {
        return JSON.parse(resp.getContentText()).data || [];
      }
    } catch (e) {
      if (attempt < maxRetries - 1) {
        Utilities.sleep(Math.pow(2, attempt) * 1000); // 1 s, 2 s, 4 s
      }
    }
  }
  return [];
}


// ── Sheet writer ────────────────────────────────────────────────
/**
 * Writes all indicator rows to a sheet named 'MacroData'.
 * Creates the sheet if it does not exist; clears it on each run
 * so stale rows are removed.
 */
function refreshMacroData() {
  const apiKey = PropertiesService.getScriptProperties()
                                  .getProperty('FXMACRODATA_API_KEY');
  if (!apiKey) {
    throw new Error('FXMACRODATA_API_KEY script property is not set.');
  }

  const ss        = SpreadsheetApp.getActiveSpreadsheet();
  let   sheet     = ss.getSheetByName('MacroData');
  if (!sheet) {
    sheet = ss.insertSheet('MacroData');
  }
  sheet.clearContents();

  // Header row
  const headers = ['Currency', 'Indicator', 'Date', 'Value', 'AnnouncementDatetime'];
  sheet.appendRow(headers);

  // Style header
  const headerRange = sheet.getRange(1, 1, 1, headers.length);
  headerRange.setBackground('#1e3a5f');
  headerRange.setFontColor('#ffffff');
  headerRange.setFontWeight('bold');

  // Data rows
  INDICATORS.forEach(({ currency, indicator }) => {
    const records = fetchIndicator(currency, indicator, apiKey);
    records.forEach(r => {
      sheet.appendRow([
        currency.toUpperCase(),
        indicator,
        r.date,
        r.val,
        r.announcement_datetime || ''
      ]);
    });
  });

  // Auto-resize columns for readability
  sheet.autoResizeColumns(1, headers.length);
}

- Schritt 7 -

Schritt 7 Ausführen und Überprüfen

  1. Klicken Sie auf Speichern Symbol (Flasche) in der Werkzeugleiste des Editors.
  2. Wählen Sie aus refreshMacroData in der Funktions-Rolldown-Fläche neben der Schaltfläche Ausführen (▶).
  3. Klicken Sie Lauf !. Der erste Lauf bittet um die Erlaubnis zum Zugriff auf die Tabelle und die Durchführung externer HTTP-Anfragen klicken Überprüfung der Berechtigungen → Berechtigung- Ich weiß .
  4. Schalten Sie zurück zur Tabelle. Makrodaten sollte jetzt Zeilen wie: enthalten
Währung Indikator Datum Wert AnkündigungDatum und Uhrzeit
USD Zinssatz 2025-03-19 4.25 2025-03-19T18:00:00Z
USD Inflation 2025-03-12 2.8 2025-03-12T12:30:00Z
USD Arbeitslosigkeit 2025-03-07 4.1 2025-03-07T13:30:00Z

- Schritt 8 -

Schritt 8 Planen Sie die automatische Aktualisierung mit einem Auslöser

Ein zeitgesteuertes Auslöser ruft . refreshMacroData Sie werden auf einem Zeitplan ohne manuelle Aktionen durchgeführt.

  1. Klicken Sie im Apps Script Editor auf Auslöser Symbol (Uhr) in der linken Seitenleiste.
  2. Klicken Sie + Hinzufügen von Trigger (unten rechts).
  3. Setzt . Wählen Sie aus, welche Funktion ausgeführt werden soll - Ich weiß. refreshMacroData- Ich weiß .
  4. Setzt . Auswählen der Ereignisquelle - Ich weiß. Zeitgesteuert- Ich weiß .
  5. Setzt . Auswahl des Zeitauslösers - Ich weiß. Tagesschalter- Ich weiß .
  6. Setzt . Zeit des Tages auswählen → z.B. 7 Uhr 8 Uhr (vor dem Europäischen Open).
  7. Klicken Sie SpeichernDer Auslöser erscheint in der Auslöse-Liste.

Tipp: Stundenauslöser für die Überwachung am Freisetzungstag

An Tagen mit hohen Releases US-amerikanischer KPI, NFP oder einer Entscheidung der Zentralbank schalten Sie den Auslöser auf Stundentaucher → jede Stunde Die neue Angabe wird also in der Tabelle erfasst, sobald die API aktualisiert wird (normalerweise innerhalb weniger Sekunden nach der offiziellen Veröffentlichung). Inflation Und ... Nichtlandwirtschaftliche Gehaltslisten Endpunkte tragen zweite Ebene announcement_datetime Die Daten werden in einem System mit einem Werteindex erfasst, so dass Sie genau bestimmen können, wann jede Messung veröffentlicht wurde.


- Schritt 9 -

Schritt 9 Ziehen Sie den letzten Wert in eine beliebige Zelle mit einer benutzerdefinierten Funktion

Fügen Sie die Funktion unten zu hinzu Code.gs wenn Sie Makroverteile direkt in Zellformeln wie verweisen möchten GOOGLEFINANCE() für Zentralbankdaten jedoch:

/**
 * Custom Sheets function: returns the latest value for a currency/indicator.
 *
 * Usage in a cell:  =FXMD("usd","policy_rate")
 *
 * @param {string} currency   e.g. "usd"
 * @param {string} indicator  e.g. "policy_rate"
 * @customfunction
 */
function FXMD(currency, indicator) {
  const apiKey  = PropertiesService.getScriptProperties()
                                   .getProperty('FXMACRODATA_API_KEY');
  const records = fetchIndicator(currency, indicator, apiKey, 1);
  if (!records || records.length === 0) return null;
  return records[0].val;
}

Nach dem Speichern =FXMD("usd","policy_rate") In jeder beliebigen Zelle. Sheets ruft die Funktion an, holt sie aus der API und gibt den aktuellen Wert zurück. Kombiniert sie mit Währungsetiketten in benachbarten Zellen, um ein kompaktes Zusammenfassungsfeld zu erstellen.

Unterstützte Indikatoren

Jeder Indikator-Slug aus dem FXMacroData-Katalog funktioniert policy_rate- Ich weiß . inflation- Ich weiß . unemployment- Ich weiß . gdp- Ich weiß . pmi- Ich weiß . retail_salesSiehe die API-Dokumentation für die vollständige Liste pro Währung oder die FX-Dashboard Die Daten werden in einem anderen Modul erfasst.


Zusammenfassung

Zusammenfassung

Sie haben FXMacroData sowohl mit Excel als auch mit Google Sheets verbunden:

  • Excel-Power-Abfrage eine parametrierbare M-Funktion, die jeden Indikator in eine strukturierte Tabelle lädt und die Datei auf dem offenen Stand aktualisiert.
  • Excel VBA ein Makro, das den letzten Wert jedes Indikators in benannte Zellen schreibt, die einem Knopf zugeordnet werden können.
  • Google Apps Skript wird verwendet - Ich weiß . refreshMacroData() Funktion, die eine vollständige MacroData-Tab erstellt, plus eine =FXMD() Die Daten werden automatisch auf einem zeitgesteuerten Auslöser aktualisiert.

Von hier aus sollten Sie mehr Indikatoren in Schichten einfügen, z. B. Kerninflation Die Inflation ist im Vergleich zur Inflation im Gesamtwert KPI Die konstante Endpunkteform bedeutet, dass jede Zugabe eine einzeilige Veränderung des Wachstums in der INDICATORS Die M-Funktion wird von der Anruferin angefordert.

Blogroll

AI Answer-Ready

Key Facts

Page
How To Macro Data Excel Google Sheets
Section
Articles
Canonical URL
https://fxmacrodata.com/de/artikel/how-to-macro-data-excel-google-sheets
Source
FXMacroData editorial and official publisher references
Last Updated
2026-06-15 11:06 UTC

Provenance And Trust

Cite the canonical URL and source field above. Where available, this page maps to official publisher releases and timestamped updates.

Quick Q&A

What is this page about? This page explains How To Macro Data Excel Google Sheets with directly usable context for trading, research, and API workflows.

What source should be cited? Use the canonical URL and the listed source field; cite official publisher references when available.

How fresh is this content? The last updated value above reflects the page metadata or latest available data timestamp.

Can this be used in AI assistants? Yes. This section is intentionally structured for retrieval and citation in chat assistants.

Prompt Packs

Use these in ChatGPT, Claude, Gemini, Mistral, Perplexity, or Grok for consistent source-aware outputs.