Automatisiertes Erzeugen von Diagrammbeschriftungen und Analysen in natürlicher Sprache

Worum geht’s?

Du hast ein schönes Diagramm.
Aber keine Lust, die Beschriftung manuell zu schreiben.
Oder Du willst automatisch einen Text, der die Zahlen erklärt.

Zum Beispiel:

„Im März stiegen die Umsätze um 12 %, während sie im April leicht zurückgingen.“

Das können GPT & Co. für Dich übernehmen.
Direkt aus Excel. Per VBA.

Ich zeig Dir, wie.

Was brauchst Du?

  • Excel 2024 mit Makros
  • Zugriff auf GPT (OpenAI oder Azure)
  • Ein Datenbereich mit klaren Zahlen
  • Ein Diagramm, das auf diesen Zahlen basiert

Ziel

GPT bekommt die Zahlen.
Er schreibt Dir:

  • einen verständlichen Analyse-Text
  • eine aussagekräftige Diagramm-Beschriftung
  • auf Wunsch: Zusammenfassung oder Trendbeschreibung

Du musst nichts mehr selber formulieren.
Nur noch prüfen – und übernehmen.

Beispiel: Monatsumsätze

MonatUmsatz (€)
Januar10200
Februar9800
März11050
April10600
Mai11320

Du willst daraus:

„Nach einem Rückgang im Februar stiegen die Umsätze im März deutlich. Der Mai markiert den Höchstwert.“

Prompt-Beispiel

Analysiere folgende Umsatzdaten (pro Monat) und gib eine verständliche Zusammenfassung in natürlicher Sprache zurück.
[Liste der Monate + Werte]

GPT antwortet mit 3-5 Sätzen.
Kein Fachjargon. Klarer Stil.

GPT-Anbindung per VBA

Function GPTAnalyse(text As String) As String
    Dim http As Object
    Dim apiKey As String
    Dim json As String
    Dim result As String

    apiKey = "sk-..." ' Dein GPT-API-Key

    json = "{""model"":""gpt-4"",""messages"":[{""role"":""user"",""content"":""" & Replace(text, """", "\""") & """}],""temperature"":0.7}"

    Set http = CreateObject("MSXML2.XMLHTTP")
    With http
        .Open "POST", "https://api.openai.com/v1/chat/completions", False
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Authorization", "Bearer " & apiKey
        .send json
        result = .responseText
    End With

    Dim startPos As Long, endPos As Long
    startPos = InStr(result, """content"":""") + 11
    endPos = InStr(startPos, result, """}")
    GPTAnalyse = Mid(result, startPos, endPos - startPos)
End Function

Daten aufbereiten und senden

Sub BeschrifteDiagrammAutomatisch()
    Dim zeile As Long
    Dim letzte As Long
    Dim prompt As String
    Dim analyse As String

    letzte = Cells(Rows.Count, 1).End(xlUp).Row
    prompt = "Analysiere folgende Umsatzdaten (pro Monat) und gib eine verständliche Zusammenfassung in natürlicher Sprache zurück:" & vbCrLf

    For zeile = 2 To letzte
        prompt = prompt & Cells(zeile, 1).Text & ": " & Cells(zeile, 2).Value & vbCrLf
    Next zeile

    analyse = GPTAnalyse(prompt)

    Range("D2").Value = analyse
    MsgBox "Analyse fertig: " & vbCrLf & vbCrLf & analyse
End Sub

Als Diagrammtitel übernehmen

Sub DiagrammTitelSetzen()
    Dim analyseText As String
    Dim chartObj As ChartObject

    analyseText = Range("D2").Value

    If analyseText = "" Then
        MsgBox "Kein Text vorhanden."
        Exit Sub
    End If

    Set chartObj = ActiveSheet.ChartObjects(1)
    chartObj.Chart.HasTitle = True
    chartObj.Chart.ChartTitle.Text = Left(analyseText, 100)
End Sub

Tipps aus der Praxis

  • GPT ist kein Statistiker, aber schreibt flüssig
  • Längere Reihen auf 12-15 Zeilen begrenzen
  • Präfixe im Prompt helfen: „Schreibe im Stil eines Berichts…“
  • Diagrammtitel besser kurz halten – max. 100 Zeichen

Erweiterungsideen

  • Varianten für Bullet Points oder Headlines
  • Mehrsprachige Analyse (Deutsch, Englisch, Polnisch)
  • Automatisches Einfügen in PowerPoint
  • Klassifikation von Datenmustern (z. B. „saisonaler Verlauf“)

Wenn Du Dir die Texte zu Deinen Zahlen sparen willst – dann lass GPT für Dich formulieren, direkt aus der Tabelle.

Schlagwörter: