Worum geht’s?
Du hast Excel-Listen mit Umsätzen, Messwerten oder Verbrauchszahlen.
Irgendwas ist immer faul: Zahlendreher, Eingabefehler, Ausreißer.
Und Du willst nicht jedes Mal per Hand prüfen.
Also bauen wir eine einfache KI-Logik in Excel.
Nicht als Statistik-Modell. Sondern als pragmatischer Helfer.
Mit OpenAI. Und ein bisschen VBA.
Was brauchst Du?
- Excel 2024 mit Makrozugriff
- Einen OpenAI API-Key
- Grundkenntnisse in VBA
- Zahlen, die plausibel sein sollen
Ziel
GPT prüft eine Liste von Zahlen und meldet:
- „Sieht normal aus“
- „Fällt auf“
- „Ist ein Ausreißer“
GPT bekommt keine Formeln. Nur rohe Zahlenwerte.
Du entscheidest, wie empfindlich er reagieren soll.
Beispielhafte Datentabelle
Monat | Umsatz (€) |
---|---|
Januar | 12000 |
Februar | 11800 |
März | 12250 |
April | 35000 |
Mai | 11950 |
Die GPT-Anfrage soll erkennen: Der April sieht komisch aus.
GPT-Prompt für die Prüfung
Prüfe folgende Liste von Zahlen auf Ausreißer oder ungewöhnliche Werte: [12000, 11800, 12250, 35000, 11950]. Beurteile jeden Wert. Gibt es Werte, die nicht zur Reihe passen?
GPT antwortet dann mit Einschätzungen pro Wert.
Die Antwort schreiben wir per VBA in die Tabelle zurück.
VBA-Funktion für die Anfrage
Function PruefeZahlenMitGPT(zahlenListe As String) As String
Dim http As Object
Dim json As String
Dim result As String
Dim apiKey As String
apiKey = "sk-..." ' Dein OpenAI API-Key
Set http = CreateObject("MSXML2.XMLHTTP")
json = "{""model"":""gpt-4"",""messages"":[{""role"":""user"",""content"":""Prüfe folgende Liste von Zahlen auf Ausreißer oder ungewöhnliche Werte: " & zahlenListe & _
". Beurteile jeden Wert. Gibt es Werte, die nicht zur Reihe passen?" & """}],""temperature"":0.5}"
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, """}")
PruefeZahlenMitGPT = Mid(result, startPos, endPos - startPos)
End Function
Makro zur Prüfung einer Spalte
Sub WertePruefen()
Dim letzte As Long
Dim i As Long
Dim zahlen() As String
Dim antwort As String
letzte = Cells(Rows.Count, 2).End(xlUp).Row
ReDim zahlen(1 To letzte - 1)
For i = 2 To letzte
zahlen(i - 1) = CStr(Cells(i, 2).Value)
Next i
Dim liste As String
liste = "[" & Join(zahlen, ", ") & "]"
antwort = PruefeZahlenMitGPT(liste)
Cells(1, 3).Value = "GPT-Einschätzung"
Cells(2, 3).Resize(letzte - 1, 1).ClearContents
Cells(2, 3).Value = antwort
End Sub
GPT gibt eine zusammenhängende Einschätzung zurück.
Du kannst diese manuell oder mit NLP weiter aufspalten.
Tipps für die Praxis
- GPT kann kleine Listen besser beurteilen als riesige
- Für lange Reihen aufteilen in Blöcke à 20–30 Werte
- Frage nach „Begründung pro Wert“, wenn Du’s genauer willst
- Verwende GPT nur als Hinweisgeber, nicht als alleinige Prüfung
Erweiterungsideen
- Einzelwertprüfung bei Neueingabe (Worksheet_Change)
- Ampelfarben per VBA aus GPT-Urteil ableiten
- Fehlerhistorie je Zelle mit Timestamp führen
- Kombination mit IQR oder Z-Score für hybride Plausibilität
Wenn Du wissen willst, ob ein Wert aus der Reihe tanzt – lass GPT draufschauen und sag Dir ehrlich, was Sache ist.
No responses yet