Excel-Wissen & VBA vertiefen mit ChatGPT (OpenAI)

ChatGPT von OpenAI hat in wenigen Tagen und Wochen für Furore gesorgt und die Massen begeistert sowie spannende & kontroverse Diskussionen entfacht. Die Anwendungsfälle, wo künstliche Intelligenz (Artificial Intelligence) eingesetzt werden kann, wurden vielen Personen bewusster und greifbarer - und insbesondere auch zugänglicher!

Ein Twitter-Thread von Joe Speiser zeigt 8 mögliche Wege auf, wie ChatGPT eingesetzt und viele Stunden an mühsamer Arbeit für unterschiedliche Tätigkeiten ersparen kann (Sprache: Englisch). Dies sind einige wichtige Aspekte, die Du jederzeit anwenden kannst.

Recherche & Fragen

Wie bislang auf Google können wir den Assistenten zur Recherche und bei Fragen & Unklarheiten konsultieren. Dies ist ein Beispiel, wie man ein Säulen- und Liniendiagramm in Excel erstellt:

"Wie erstelle ich ein kombiniertes Säulen- und Liniendiagramm in Excel?"

Um ein kombiniertes Säulen- und Liniendiagramm in Excel zu erstellen, folgen Sie diesen Schritten:

  1. Öffnen Sie die Excel-Arbeitsmappe, in der Sie das Diagramm erstellen möchten.
  2. Wählen Sie die Daten aus, die im Diagramm dargestellt werden sollen.
  3. Klicken Sie auf der Registerkarte "Einfügen" im Bereich "Diagramme" auf "Säulen-Liniendiagramm".
  4. Wählen Sie das gewünschte Diagrammformat aus dem Dropdown-Menü aus.
  5. Klicken Sie auf "OK", um das Diagramm zu erstellen.

Sie können das Diagramm anschließend noch anpassen, indem Sie auf die einzelnen Elemente des Diagramms klicken und die Formatierungsoptionen in der Symbolleiste auf der Registerkarte "Format" verwenden. Sie können auch auf die Diagrammachse klicken und die Achsenoptionen in der Symbolleiste auf der Registerkarte "Format" anpassen.

Schreiben / Kodierung von Makros (und weiteren Skripts)

Einer der markantesten Ansätze scheint die Möglichkeit, innert Sekunden ganze Prozeduren (Makros / Skripts) in unterschiedlichen Programmiersprachen verfassen zu lassen. Das nachfolgende Beispiel - etwas simples, um die Länge des Blog-Beitrags nicht zu strapazieren - zeigt, wie eine Schleife (For Each-Loop) durch 10 Einträge iteriert:

"Code a For Each Loop in Excel VBA with 10 Iterations."

Hier ist ein Beispiel für eine For Each-Schleife in Excel VBA mit 10 Iterationen:

Sub ForEachLoopExample()

'Declare variables Dim item As Variant Dim items As Variant

'Set items to be looped through items = Array("item1", "item2", "item3", "item4", "item5", "item6", "item7", "item8", "item9", "item10")

'Loop through items For Each item In items 'Execute code for each item in the loop Debug.Print item Next item

End Sub

In diesem Beispiel wird die Schleife durch ein Array von Zeichenfolgen durchlaufen, aber Sie können auch andere Arten von Objekten oder Variablen verwenden. Die Aktionen, die innerhalb der Schleife ausgeführt werden, können auch angepasst werden. Sie können zum Beispiel Werte in Zellen schreiben oder Diagramme erstellen, während die Schleife durchläuft.

Wissens-Abfragen / Lern-Hilfe

Wir können ChatGPT dazu verwenden, unser eigenes Verständnis abzufragen (quasi Prüfungsfragen zu formulieren). Das liefert weitere Bereiche, die man allenfalls (wiederum mit der Unterstützung von OpenAI?!) weiter erkunden & vertiefen kann. Es lassen sich auch Bücher und einzelne Kapitel zusammenfassen respektive darüber Fragen formulieren. Dies ist ein Beispiel zu 20 generierten Fragen zu Excel VBA:

"Ask 20 Questions in German about Excel VBA."

  1. Was ist der Unterschied zwischen Excel VBA und Excel-Makros?
  2. Wie schreibe ich eine Schleife in Excel VBA?
  3. Wie kann ich in Excel VBA eine Variablen deklarieren und ihr einen Wert zuweisen?
  4. Wie kann ich in Excel VBA eine Funktion erstellen?
  5. Wie kann ich in Excel VBA auf den Inhalt einer Zelle oder eines Bereichs zugreifen?
  6. Wie kann ich in Excel VBA ein Dialogfenster öffnen und auf Benutzereingaben reagieren?
  7. Wie kann ich in Excel VBA eine Bedingung erstellen und entsprechend handeln?
  8. Wie kann ich in Excel VBA auf andere Arbeitsmappen oder andere Anwendungen zugreifen?
  9. Wie kann ich in Excel VBA Fehler abfangen und entsprechend handeln?
  10. Wie kann ich in Excel VBA Events behandeln, z.B. das Öffnen oder Schließen einer Arbeitsmappe?
  11. Wie kann ich in Excel VBA auf die Ribbon-Menüleiste zugreifen und Befehle ausführen?
  12. Wie kann ich in Excel VBA auf andere Objekte in der Arbeitsmappe zugreifen, z.B. auf Diagramme oder Formulare?
  13. Wie kann ich in Excel VBA auf andere Benutzer im Netzwerk zugreifen und ihre Daten abfragen?
  14. Wie kann ich in Excel VBA eine Web-Anfrage senden und auf die Antwort reagieren?
  15. Wie kann ich in Excel VBA Dateien erstellen, lesen und schreiben?
  16. Wie kann ich in Excel VBA benutzerdefinierte Dialoge erstellen und anzeigen?
  17. Wie kann ich in Excel VBA benutzerdefinierte Funktionen für andere Benutzer bereitstellen?
  18. Wie kann ich in Excel VBA benutzerdefinierte Befehle und Menüpunkte erstellen?
  19. Wie kann ich in Excel VBA auf externe Datenquellen wie Datenbanken oder XML-Dateien zugreifen?
  20. Wie kann ich in Excel VBA meine VBA-Code-Module organisieren und verwalten?

Text in Pivot-Feldern anzeigen

Eine Pivot-Tabelle setzt man insbesondere ein, um Daten zu verdichten und in eine aggregierte Form zu bringen. Dabei werden normalerweise Kategorien oder Posten als "Zeilen" auf der linken Seite angeordnet, zu denen man auf der rechten Seite die zusammengeführten Details wie beispielsweise "Umsatz" als Werte darstellt. Neben den Wertfeldeinstellungen (Summe, Anzahl, Mittelwert, etc.) kannst Du die Werte auch anzeigen als % des Gesamtergebnisses, laufende Summe in % (= kumuliert) usw. Gehe hierzu in der Pivot-Feldliste auf das Wertfeld und wähle "Wertfeldeinstellungen...":

Pivot-Wertfeldeinstellungen

Wähle danach entweder das Register "Werte zusammenfassen nach" oder "Werte anzeigen als", um die gewünschte Anzeige zu erlangen:

Pivot-Wertfeldeinstellungen_Details

Pivot-Wertfeldeinstellungen_Details2

Durch die obigen Einstellungen wird jedoch etwas erkennbar: Wir aggregieren jeweils Werte, mit denen mathematische Operationen möglich sind. Es ist nicht möglich, Texte als Werte darzustellen. Selbiges gilt für Berechnete Felder.

Möchte man Texte als Werte darstellen, erhält man höchstens die Anzahl Einträge; es gibt keine anderslautenden Wertfeldeinstellungen. Um das gewünschte Ergebnis zu erlangen, benötigt es einen "Workaround". Eine Alternative bietet Dir die weitere Anordnung der "Texte" als Zeilen, unterhalb Deiner gewünschten Hauptkategorie. Zunächst sind die Informationen untereinander angeordnet:

Pivot-Aggregation_Text-in-Pivot

In einem früheren Beitrag wurde dargestellt, wie man mehrere Angaben als Zeilen hinterlegen und diese anordnen kann.

Falls jedoch die Umsätze eine höhere Relevanz haben und die Zusatztexte erst weiter rechts erscheinen sollten, benötigt es einen Workaround. Kopiere die bereits erstellte Pivot-Tabelle und füge sie unmittelbar rechts davon erneut ein. Du musst nicht einmal Werte in dieser zweiten Pivot einfügen, die Zeilen sollten jedoch Deine Produkte und beispielsweise den Hauptlieferant ("Biobauer Meier", "Importeur A", "Bauer Muster") zunächst untereinander anordnen - wie im Screenshot oben illustriert. Öffne zunächst die Feldeinstellungen von "Produkt":

Pivot-Feldeinstellung_Produkt

Wähle daraufhin in der ersten Maske (Teilergebnisse) "Keine" und unter dem Register "Layout & Drucken" die Option "Elementnamen im Tabellenformat anzeigen". Somit werden die Daten nebeneinander aufgeführt. Eine ausführliche Erläuterung findest Du im verlinkten Beitrag oben.

Um nun das finale Format zu erlangen, blende einfach die Spalte C aus und es sieht aus, als wären Deine Texte als Werte in der Pivot angezeigt.

Abschliessende Bemerkungen und Hinweise

Bitte beachte, dass diese Variante nicht funktionieren kann, wenn Du mehrere Werte mit Spalteneinträgen in der Pivot (von links nach rechts; beispielsweise Jahreszahlen) aufbrechen und darstellen möchtest.

Falls der Anwender die Pivot-Tabelle filtern möchte, zieht es diese Einstellungen natürlich nur in einer Tabelle nach. Falls Du jedoch mit einem Datenschnitt (Slicer) oder einer Zeitachse (siehe Datenschnitt / Slicer in Pivot-Tabellen und Verknüpfungen zweier Pivot-Tabellen) arbeitest, kannst Du mit Berichtsverbindungen erlangen, dass beide Pivot-Tabellen gleichzeitig gefiltert werden.

Datumsaggregation und -gliederung in Pivot-Tabellen

Vor einiger Zeit habe ich bereits einmal über die automatische Datumsaggregation in Pivot-Tabellen (in Excel 2016) getextet. Ich zeige Dir hier auf, wie Du selbst steuern kannst, auf welcher Ebene Du ein Datum aggregiert und gegliedert haben möchtest - auch in älteren Excel-Versionen. Wähle dazu zuerst die entsprechenden Felder, die Du im Bericht darstellen möchtest:

pivotfeldlistedatumaggregation

Klicke als nächstes auf Deine Pivot-Tabelle und selektiere eine Zelle mit einem Datum:

datumselektierendatumaggregation

Daraufhin gehst Du im Menüband unter dem Punkt "Daten" auf "Gruppieren":

gruppierendatumaggregation

In der nächsten Maske kannst Du Deine Gliederung der Daten beliebig wählen - klicke einfach auf die entsprechenden Schaltflächen und bestätige mit "OK":

gruppieren2datumaggregation

Das Ergebnis ist in diesem Falle, dass wir die Daten auf Monate, Quartale und Jahre aggregiert haben und alle Gruppierungen in einer separaten Zeile zum Auf- und Zuklappen haben:

gruppierenergebnisdatumaggregation