Excelstammtisch. Wir diskutieren ChatGPT und copilot. Ich zeige, dass die Lösungen manchmal nicht korrekt sind.
Problem: ich möchte mit VBA ermitteln, ob in einer Zelle eine Datenprüfung liegt. ChatGPT antwortet mir:
Sub CheckDataValidation()
Dim rng As Range
Dim validationType As XlDVType
' Definiere die Zelle, die du überprüfen möchtest
Set rng = Worksheets("DeinBlatt").Range("A1")
' Überprüfe, ob die Zelle eine Datenprüfung hat
If rng.Validation.Type <> xlValidateNone Then
' Erhalte den Typ der Datenprüfung
validationType = rng.Validation.Type
' Zeige den Typ der Datenprüfung in der Konsole an (kann angepasst werden)
MsgBox "Die Zelle hat eine Datenprüfung vom Typ: " & validationType
Else
' Wenn keine Datenprüfung vorliegt
MsgBox "Die Zelle hat keine Datenprüfung."
End If
End Sub
Ich teste:
Ich beschwere mich:
ChatGPT schlägt
xlValidateCustom
vor. Das Ergebnis, wenn keine Datenprüfung in der Zelle vorhanden ist:
Ich frage copilot. Die Antwort:
If Not Cells(1, 1).Validation Is Nothing Then
MsgBox "Die Zelle hat eine Datenüberprüfung."
Else
MsgBox "Die Zelle hat keine Datenüberprüfung."
End If
Das Ergebnis:
Das Makro meldet immer, dass die Zelle eine Datenüberprüfung hat.
Sämtliche Antworten sind falsch oder fehlerhaft.
Alexander lässt nicht locker. Er findet nach mehreren Versuchen eine Lösung bei ChatGPT:
Sub CheckNoDataValidationCriteria2()
Dim targetCell As Range
Set targetCell = Selection ' Hier die Zelle angeben, die du überprüfen möchtest
' Überprüfen, ob die Zelle eine Datenprüfung hat
If Not targetCell.Validation Is Nothing Then
' Überprüfen, ob spezifische Kriterien festgelegt wurden
Dim validationFormula As String
On Error Resume Next
validationFormula = targetCell.Validation.Formula1
On Error GoTo 0
If validationFormula = "" Then
MsgBox "Die Zelle hat keine spezifischen Datenprüfungskriterien (jeder Wert ist zugelassen)."
Else
' Kriterien in Zelle D1 schreiben
Range("B2").Value = "Datenprüfungskriterien: " & validationFormula
MsgBox "Die Zelle hat Datenprüfung mit spezifischen Kriterien. Die Kriterien wurden in Zelle D1 geschrieben."
End If
Else
' Wenn keine Datenprüfung vorhanden ist, Zelle D1 löschen
Range("B2").ClearContents
MsgBox "Die Zelle hat keine Datenprüfung."
End If
End Sub
Sie funktioniert: für Zellen mit und für ohne Datenüberprüfung:
Die Lösung funktioniert; der Denkansatz ist jedoch nicht korrekt:
kann ausgeführt werden oder nicht. Würde sie einen Fehler liefern (also keine Datenüberprüfung ist vorhanden), wird sie übergangen und validationFormula bleibt leer („“). Ich hätte es mit err.number überprüft.
Aber okay – ich gebe zu: man kann mit ChatGPT / copilot eine funktionierende Lösung finden. Wenn man beharrlich ist.
Danke an Alexander Vogelmann für seine Beharrlichkeit.
ChatGPT irritiert schon sehr. Haben Sie es schon ausprobiert. Hier einige Stilblüten. Ich will wissen
Wie kann ich mit VBA überprüfen, ob eine Zelle eine Datenüberprüfung besitzt?
Die Antwort:
Sie können in VBA überprüfen, ob eine Zelle eine Datenüberprüfung besitzt, indem Sie folgenden Befehl verwenden:
If Range(„A1“).Validation.Type <> 0 Then ‚ Code ausführen, wenn die Zelle eine Datenüberprüfung hat End If
In diesem Beispiel wird die Eigenschaft „Validation.Type“ verwendet, um zu überprüfen, ob die Zelle „A1“ eine Datenüberprüfung besitzt. Wenn die Überprüfung vorhanden ist, wird die Eigenschaft „Validation.Type“ ungleich 0 sein, und der Code innerhalb der If-Abfrage wird ausgeführt.
Nein, liebes ChatGPT, das ist falsch.
Wenn auf einer Zelle keine Datenüberprüfung liegt, liefert Range(„A1“).Validation.Type einen Fehler. Diesen kann man abfangen (On Error Resume Next) und dann den Wert der Err-Variable ermitteln.
Würde jemand dein Beispiel ausprobieren, wäre er oder sie frustriert und verärgert, weil es einen Fehler liefert.
Auch folgende Antwort erstaunt:
Gib mir fünf Lösungen, um die Summe der Zahlen in Spalte F zu berechnen
Hier sind fünf Lösungen, um die Summe der Zahlen in Spalte F in Microsoft Excel zu berechnen:
Verwenden Sie die SUM-Funktion:
=SUM(F1:F10)
Verwenden Sie die AutoSum-Funktion:
Klicken Sie auf die Zelle unter der letzten Zelle in Spalte F und drücken Sie die Tastenkombination "Strg + Alt +".
Verwenden Sie die Formel SUMME:
=SUMME(F1:F10)
Verwenden Sie die SUM-Formel mit einer festen Zellenbereichsadresse:
=SUM(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10)
Verwenden Sie die SUM-Formel mit einer bedingten Formatierung:
Wählen Sie die Zellen in Spalte F aus und verwenden Sie die Funktion "Bedingte Formatierung". Wählen Sie dann die Option "Formel" und geben Sie "=ISTZAHL(F1:F10)" ein. Die Zellen, die Zahlen enthalten, werden automatisch markiert. Verwenden Sie dann die SUM-Formel und beschränken Sie die Zellenbereichsadresse auf die markierten Zellen.
=SUM(F1:F10)
Hinweis: In diesen Beispielen wird davon ausgegangen, dass die Daten in Spalte F in den Zellen F1 bis F10 enthalten sind. Stellen Sie sicher, dass Sie die Zellenadressen entsprechend anpassen, wenn Ihre Daten anders angeordnet sind.
Okay – das sind fünf Antworten (auch wenn die automatische Nummerierung versagt), aber sehr ähnliche. Ich hatte auf TEILERGEBNIS, AGGREGAT, … gehofft. Tja …
Und: einmal SUM, einmal SUMME zu schreiben sind eigentlich keine zwei Lösungen. Schließlich: liebes ChatGPT – bitte verwende doch Semikolon als Trennzeichen.
Vielleicht sollte ich die Antwort regenerieren lassen.
ist der Prototyp eines Chatbots, also eines textbasierten Dialogsystems als Benutzerschnittstelle, der auf maschinellem Lernen beruht. Den Chatbot entwickelte das US-amerikanische Unternehmen OpenAI, das ihn im November 2022 veröffentlichte.
Und weiter:
Der Chatbot wurde mithilfe zweier Arten des sogenannten bestärkenden Lernens trainiert: RLHF (Reinforcement Learning from Human Feedback) und PPO (Proximal Policy Optimization[4][5]). Er nutzt zur Textein- und -ausgabe das Sprachmodell GPT-3.5 (GPT steht für Generative Pre-trained Transformer), eine verbesserte Version von GPT-3, die ebenfalls von OpenAI stammt. GPT basiert auf Transformern, ein von Google Brain vorgestelltes Maschinenlernmodell.
Klingt spannend. Ich melde mich an – das ist kostenlos.
Ich probiere aus – die Seite soll ja sehr gut Antworten zu Excel liefern – auf Englisch und auf Deutsch. Erster Versuch:
How to use xlookup in Excel?
Die Antwort:
XLOOKUP is a function in Microsoft Excel that allows you to search for a value in a table and return a corresponding value from a specified column. The syntax for XLOOKUP is:
lookup_value: The value you want to search for in the lookup_array.
lookup_array: The range of cells that contains the data you want to search.
return_array: The range of cells that contains the data you want to return.
default_value: The value to be returned if the function does not find a match (optional).
For example, if you have a table of data in columns A and B, with the names in column A and the corresponding ages in column B, you can use XLOOKUP to find the age of a specific person by using the following formula:
=XLOOKUP(„John“, A1:A5, B1:B5)
This will search for „John“ in column A, and return the corresponding value in column B.
Note: XLOOKUP function is available starting with Excel version 365, if you are working with an older version of Excel you may consider using INDEX and MATCH function or VLOOKUP. rene.martin@compurem.de how can I find an information in Column A in Excel with VBA?
Ich versuche es auf Deutsch:
Erkläre mit, was XVERWEIS in Excel macht
Die Antwort:
„XVERWEIS“ ist eine Funktion in Microsoft Excel, die eine Verweisoperation durchführt. Es ermöglicht es Ihnen, Werte aus einem anderen Tabellenbereich oder einer anderen Arbeitsmappe zu suchen und in Ihre aktuelle Tabelle einzufügen. Die Syntax von XVERWEIS lautet wie folgt: XVERWEIS(Suchkriterium, Bereich, [Spalte], [exakt]). „Suchkriterium“ ist der Wert, nach dem Sie suchen möchten. „Bereich“ ist der Bereich, in dem Sie suchen möchten. „Spalte“ ist optional und gibt an, in welcher Spalte Sie suchen möchten. „Exakt“ ist auch optional und legt fest, ob eine exakte Übereinstimmung gefunden werden soll oder nicht.
Ich reibe verwundert die Augen. Ich frage nach XVERWEIS und erhalte eine Erklärung zum SVERWEIS. Nein, liebes ChatGPT – DA musst du noch einmal ran!