Boxplots mit Excel erstellen

Als kleine Programmieraufgabe im Fach Statistik sollten wir das Erstellen eines Boxplots in Excel umsetzen.

Ich habe das Ganze (mit den eingeschränkten Möglichkeiten von VBA) objektorientiert gelöst. Das fertige Add-in kann man recht einfach über Extras – Add-ins installieren. Es fügt Excel ein kleines neues Menü “Statistik” hinzu, das genau eine Funktion beinhaltet:

Boxplots mit Excel: Das Statistik-Menü

Diese öffnet ein simples Formular, in das man die benötigten Werte einträgt (es wird nur das erste Feld, der Wertebereich, benötigt):

Boxplots mit Excel: Das Eingabeformular

Nach einem Klick auf Berechnung wird dann ein Boxplot wie der folgende erstellt:

Boxplots mit Excel: Das Klassendiagramm

Wer sich für die technische Umsetzung interessiert, der kann sich hier mein (nicht gerade sehr umfangreiches und auch nicht vollständiges) Klassendiagramm anschauen. Die Lösung ist sicher noch zu verbessern, aber Hauptsache ist, dass sie unabhängig von einer konkreten Arbeitsmappe einsetzbar ist (als Add-in) und funktioniert 😉

Boxplots mit Excel: Das Klassendiagramm

Download

Herunterladen kann man sich meine Lösung auch gerne:

Installation

Unter Excel 2003 sollte sich das AddIn selbst installieren, wenn man die XLA-Datei öffnet und man die Ausführung von Makros erlaubt.

Unter Excel 2007 kann man das AddIn wie folgt installieren:


  1. Boxplots mit Excel 2007 - Schritt 1

  2. Boxplots mit Excel 2007 - Schritt 2

  3. Boxplots mit Excel 2007 - Schritt 3

  4. Boxplots mit Excel 2007 - Schritt 4

  5. Boxplots mit Excel 2007 - Schritt 5

  6. Boxplots mit Excel 2007 - Schritt 6

  7. Boxplots mit Excel 2007 - Schritt 7

Über Stefan

Polyglot Clean Code Developer

81 Kommentare

  1. leider ist dein tolles dokument nur n leeres excel..

  2. @Peter: Danke für den wertvollen Tipp! Aber vielleicht hast du auch einfach keinen Plan von Excel und/oder kannst nicht lesen!?

  3. Hallo Stefan,

    Bis auf eine notwendige Änderung (hab’ engl. Excel, daß heißt das Hilfemenue nicht “?” läuft es tadellos.
    Was ich mir wünschen würde wäre, daß
    1. eine Änderung ein automatisches Neuzeichnen auslöst
    2. mehr als eine Datenreihe möglich wäre

    Ansonsten top!
    Ciao
    Erwe

  4. @Erwe: Schön, dass dir meine Umsetzung gefällt. Allerdings werde ich wohl kein Update mehr daran vornehmen. Du kannst aber gerne selbst Hand anlegen 😉

  5. Hallo Stefan,
    es läuft wirklich 1a, tatsächlich würde ich gern “Hand anlegen” 🙂 würdest Du auch Deinen Quellcode rausrücken ?? Das wäre super!
    Gruß Ines

  6. Ähem… der Quellcode ist doch in der XLA-Datei enthalten!? Einfach den Visual-Basic-Editor starten (ALT-F11) und losprogrammieren…

  7. Hi,

    Irgendwie läuft das bei mir nicht. Excel legt nach der Ausführung nur unendlich viele leere Textboxen an.

    Weißt du woran das liegen könnte?

    Gruß Ranger

  8. Ja vorher nachschauen ist besser wie nachher zuschauen 😉

    Also aus irgendeinem Grund ist die Anzahl der Abschnitte 10 und ändert sich auch nicht. Das heißt aber das mein größter Wert mindestens 10 sein muss so das bei breiteAbschnitt nicht 0 rauskommt. Das wiederrum heißt das ich nicht beliebige Werte einsetzten darf, sondern diese noch um ein paar Potentzen (so das der Größte Wert über 10 liegt) verändern muss, wenn Sie zu klein sind.

    Sag mir doch bitte ob diese 10 bei Anzahl der Abschnitte sich eigentlich verändern sollte, konnte das noch nicht finden.

    Gruß Ranger

  9. @Ranger: iAnzahlAbschnitte ist eine Konstante, deren Wert 10 beträgt. Diesen Wert kannst du aber gerne auf einen für dich passenden ändern: Zeile 31 im Klassenmodul “Koordinatensystem”.

  10. Hi Stefan,
    ich habe ein Problem mit dem add in:
    nachdem ich die Wertetabelle eingegeben habe und auf berechnen drücke, erscheint:
    “Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt”
    Kannst du mir da helfen?

  11. @ctc: So aus dem Stehgreif nicht. Versuch doch mal im Visual Basis-Editor Haltepunkte zu setzen und zu Debuggen!? Wäre interessant, welche Objektvariable nicht gesetzt ist…

  12. Servus,

    das Add in funzt, gut gemacht!

    Wie kann ich die Achse mit dem Zahlenstrahl anzeigen lassen? Auch die “wichtigen Werte” werden nicht angegeben auch wenn a Hakerl im Kasterl ist?

    Danke

  13. Sehr geerter Herr Macke,
    wir möchten gerne ihr Programm in die nächste CB aufnehmen

  14. @ComputerBild: Sehr gerne 🙂 Über eine kurze Info, in welcher Form und wo ich das Programm oder den Verweis dann in der ComputerBild finden kann, wäre ich dankbar…

  15. Unter Excel2007 bekomme ich es unter den AddIns nicht angezeigt.
    Gibt es dafür eine Lösung?

  16. @Elscha: Sorry, dazu kann ich im Moment nichts sagen. Das müsste ich erstmal selbst ausprobieren. Läuft das Makro denn, wenn du es direkt startest?

  17. Vielen Dank für das add-in! Ich werde es in der Lehre einsetzen!

  18. Leider bekomme ich es auch nicht unter Excel 2007 angezeigt. Kann mir jemand helfen?

  19. Hi Lena. Wenn ich am Wochenende Zeit finde, schaue ich mir das mal an. Ich werde dann ein entsprechendes Update des Artikels vornehmen…

  20. @Lena: Ich habe oben mal eine Anleitung hinzugefügt, wie man das AddIn unter Excel 2007 installliert. Es funktioniert dann genau so wie unter Excel 2003.

  21. Hallo Stefan,
    bei mir funktioniert dein Add in auch super, mit der Ausnahme, dass das Diagramm ohne Beschriftung der Axen angezeigt wird?
    Weißt du woran das liegen könnte??

  22. Hi also bei kommtder Fehler: Laufzeitfehler 6: Überlauf…. aber ich kann damit nix anfangen gibts dafür ne Lösung?

  23. Läuft super! Frage: Wie hast du die Whisker definiert?

  24. @Thomas: Sorry, dazu kann ich dir nichts sagen, ist zu lange her. Aber du kannst ja einfach in den Sourcecode schauen (ALT-F11 in Excel)!

  25. also ich hab nicht viel ahnung von der thematik, aber ich denke du hast einen kleinen fehler bezg. der zäune (bei ausreißern), im quellcode schreibst du extra “1,5 * Quartilsabstand” machst es aber nur 1*
    einfach noch 1.5 dazuschreiben und fertig ist der lack 🙂

    iZaunU = iQuartile(1) – iQA * 1.5
    iZaunO = iQuartile(3) + iQA * 1.5

  26. @Lucas: Danke für den Hinweis. Ist gefixt!

  27. Hey,

    ich muss für die Schule ein Projekt machen und bin auf dieses – wie es hier beschreiben wird – sehr nützliche Programm gestoßen. Ich habe es mir runtergeladen und geöffnet. Ich musste dann die Sicherheitseinstellungen erstmal ändern aber habs dann schließlich doch geschafft das Add-In zu öffnen. Office 2003 installierte dieses auch. Doch dann passierte nichts. Ich habe versucht das Dokument zu schließen; es ging nicht. Schließlich dann Task-Manager und darüber beenden. Weitere versuche scheiterten.

    Ich hoffe ihr könnt mir helfen!

    Tim

  28. Oh, PS: Ich würd´ die Zeit mal ändern!

  29. @Tim: Was heißt “Doch dann passierte nichts”? Hast du den Eintrag im Menü ausgewählt? Ist der überhaupt zu sehen?

  30. Hey,

    geht das auch bei Office 2010? Ich habe das Add-in installiert, finde aber kein neues Register.

  31. @till: siehe Anleitung für Office >= 2007 oben.

  32. Hallo Stefan,
    ich sage DANKE!!!!!!!
    1. Es funktioniert
    2. Hast du mir Zeit geschenkt
    3. Ich habe Office2010 (+ es funktioniert)
    Geil.
    Herzliche Grüße aus dem Nordden,
    Evelyn

  33. Moin, bin grad auch nicht so bewandert mit Boxplots.
    Wenn ich versuche mit diesem Add-in einen Boxplot aus den Rohdaten zu erstellte (445 Werte in einer Spalte), dann bekomme ich folgende Fehlermeldung:

    “Fehler beim Kompilieren-Projekt oder Bibliothek nicht gefunden”

    Hää? Was ist Kompilieren? Was für ein Projekt oder Bibliothek will der finden? Es ist doch nur ne Excell-Tabelle mit den Rohdaten da?!

    Ergo: Ich steh aufm Schlau. Könntest du mir mal n Tip geben?

  34. @stefan: Welche Excel-Version hast du? Hast du die Installation korrekt durchgeführt?

  35. Hallo,

    ich habe das gleiche problem wie stefan…version excel 2003. installation lief soweit eigentlich problemlos.

    grüsse,

    c.

  36. Danke!! Es funktioniert (auch Excel 2010)!!!

  37. Hallo!

    Wow, erst mal Danke für das tolle Programm. Das spart echt einiges an Arbeit. Ich hab nur ein kleines Problem. Ich hab zum Teil Ausreißer, die einen sehr großen Abstand zum Mittelfeld haben und kriege da immer die Fehlermeldung “Überlauf”. Krieg ich die Daten trotzdem irgendwie da rein? Habe Excel 2010.

    Danke für die Hilfe!
    Kirsten

  38. Hallo Kirsten. Magst du mir sagen, wo genau der Überlauf stattfindet? Da müsste eine Zeile angegeben sein.

  39. Hm, der sagt mir eigentlich nur “Laufzeitfehler 6 Überlauf”, dann kann ich auf Beenden, Debuggen oder Hilfe drücken. Und wenn ich auf Debuggen drücke, blicke ich gar nicht mehr durch… Mit solchen Sachen kenn ich mich leider nicht aus 🙁

  40. Hallo Kirsten. Wenn du auf Debuggen gehst, öffnet sich der VBA-Editor und dort müsste zu sehen sein, in welcher Zeile des Quelltextes er sich gerade befindet.

  41. Hm, also wenn ich den VBA-Editor öffne, steht oben was von Z67 S8. Ist das die gemeinte Zeile? Ansonsten steht da nichts, was nach Zeile aussieht… aber wie gesagt, ich kenn mich nicht aus…

  42. Ich habe das Programm gestern heruntergeladen und mit einer Datenreihe begonnen. Heute wollte ich weitermachen. Aber ich erhalte immer nur die Fehlermeldung, dass ein Marko nicht mehr gefunden nicht. Auch das erneute herunterladen des Add Ins bringt nichts. Wie kann ich das denn deinstallieren und dann eine Neu-Installation wieder vorzunehmen? Zumindest sehe ich keine andere Lösung… oder doch ?

    Besten Dank und Grüße
    N.Frank

  43. So und schon hat sich die Frage erledigt… sorry, aber ich habe die Lösung gefunden.

  44. Hallo Stefan,

    bin gestern auf dein Boxplot Addin gestoßen.
    Finde die Idee super,
    leider funktioniert es auf den 2 bisher getesteten Rechnern nicht,
    da immer die Meldung “Laufzeitfehler 1004: Die Methode “range” für das
    Objekt “_global” ist fehlgeschlagen kommt.
    Beim Debuggen unterlegt er folgende Zeile gelb: “bp.Wertebereich =
    reWertemenge.Value” im Fenster “Boxplot Form”

    Über deine Hilfe wäre ich sehr dankbar.

    Mit besten Grüßen,
    Michael

  45. Hallo Michael. Das kann eigentlich nur daran liegen, dass ein ungültiger Wert für den Wertebereich ausgewählt wurde. In dem Auswahlfeld muss ein Excel-Zellbereich stehen, der aussieht wie dieser: Tabelle1!$A$1:$C$10

  46. Aaah, vielen Dank.
    Bin durch deine Hilfe auf das Problem gestoßen.
    Und zwar war bei mir die Option “Z1S1” bei Formeln aktiviert.
    Die Spalten waren also nummeriert, anstatt mit Buchstaben versehen.
    Darin lag das Problem.
    Danke, dass Add-In funktioniert nun bestens.

  47. Hallo Stefan,

    ich habe dein Add-in gerade gedownoaded und hab es auch bei den Add-Ins hinzugefügt. Leider sehe ich das Add-In nicht und kann es somit nicht benutzen. Hast du irgend eine Ahnung warum das nicht erscheint? Hab Excel 2007 DE mit Language Pack EN.

    Danke & VG,
    Michael

  48. hallo stefan,
    dein programm ist genau das, was ich suche. allerdings habe ich folgendes problem: “Fehler beim Kompilieren-Projekt oder Bibliothek nicht gefunden” wir immer angezeigt wenn ich auf berechnen klicke. ich nutze excel 2007. es kommt auch immer schon während der installation nachdem ich den haken bei boxplots mit excel gestetzt habe und auf ok geklickt habe die info. was kann ich dagegen tun?
    thx & gruß
    philipp

  49. Hallo Philipp. Hast du das Addon genau so installiert, wie oben für Excel 2007 angegeben?

  50. ja habe ich, aber wie gesagt. schon bei der installtion erscheint einmal dieses fenster.

  51. hey stefan!
    ich schreib gerade diplom-arbeit und bin auch waaaahnsinnig froh, dein programm gefunden zu haben!
    ich habe allerdings das gleiche problem wie phillip! ich habe alles so installiert wie es angegeben ist und ich kann auch den wertebereich angeben, aber dann erhalt ich auch die fehlermeldung: “Fehler beim Kompilieren-Projekt oder Bibliothek nicht gefunden” von MVB! Wenn ich dann auf ok drücke, werde ich an den Code vom BoxplotForum deiner .xla-Datei weitergeleitet mit dem Hinweis auf die Zeile
    Private Sub BtnOK_Click()
    bin nur n “doofes blondie” und hab kein plan, was ich jetzt machen soll! =)wär supi, wenn du mir bzw. uns helfen könntest!

  52. Also ich weiß leider nicht weiter. Kann mir vielleicht jemand einen Screenshot mit der genauen Fehlermeldung per Mail schicken?

  53. Hallo zusammen. Mögliche Lösung laut Stefan:

    Die Ursache dürfte ein falscher Verweis sein. Gehe im VBA-Editor auf Extras/Verweise, dort wirst du einen Eintrag mit NICHT VORHANDEN: finden. Den musst du deaktivieren. Nach speichern, schliessen und wieder öffnen der Datei sollte keine Meldung mehr kommen.

  54. danke! aber jetzt hab ich auch schon das nächste problem!!! das Feld Verweise ist bei mir leider nicht unterlegt, so dass ich da gar nicht rein komme…. ich werd wahnsinnig!

  55. Hallo Jini. Schau mal hier: Winboard. Klick mal auf den “Stop”-Button und versuch es nochmal.

  56. Hallo Stefan!
    Viiiiiiiieeeeeeelen Dank für deine Hilfe! es funktioniert! bin total glücklich! Danke, danke, danke! =)

  57. Hallo Stefan,
    der Boxplot funktioniert an sich ganz gut, nur mein Problem ist die korrekte Ausgabe.
    Bei den Zäunen zeigt er mir nur den + Wert richtig an und den negativen zeigt er mit 0 an obwohl er nicht null ist.
    Meine Wertetabelle wär so:
    xmin = 0
    xu0,25 = 0
    xmed= 0
    xo0,75= 48
    xmax = 148

    Wenn ich diese Zahlenabfolge nehme kommt für den Zaun Zu null raus. Es sollte aber -72 erscheinen =(
    Ist die Zahlenabfolge falsch oder wo könnte der Fehler liegen?
    Danke schon mal im Voraus.
    Gruß Sven

  58. Hallo Sven. Sorry, ich verstehe deine Wertetabelle nicht so ganz. Wie kommst du auf -72?

  59. Hallo Stefan.
    Bei den Zäunen hab ich für DQ 48. Für den Zaun XU= 0-1,5*48= – 72

  60. Hi Sven. Magst du mir mal deine ganzen Werte schicken? Sorry, ist länger her und ich kann das nicht mehr nachvollziehen. Der Interquartilsabstand ist also 48?

  61. Hallo Herr Macke,
    habe ihr Add-in zur Erstellung eines Boxplots in Excel 2007 eingefügt. Leider funktioniert der Programmzusatz bei mir nicht. Ich erhalte die Fehlermeldung “Objektvariable oder With-Blockvariable nicht festgelegt”.
    Was habe ich falsch gemacht? Können Sie mir helfen?
    Gruß
    Jürgen Beck

  62. Hallo Jürgen. Hast du einen gültigen Zellbereich für die Berechnung ausgewählt?

  63. Hallo zusammen!

    Kann mich der Mehrheit anschließen, Programm funktioniert, erspart Arbeit, super.
    Aber verrat mir doch bitte einer wie ich eine Sklaierung ins Diagramm bekomme. Kann es sein dass ich mich seltendähmlich anstelle?-P

    Gruß Flo

  64. Hallo FLoW. Du solltest das Diagramm in Excel einfach mit der Maus skalieren können.

  65. Hallo Hr. Macke,
    Nach dem Start des Add Inns kommt die Fehlermeldung ‘Objektvariable oder With-Blockvariable nicht festgelegt’, im Debugger ist die Zeile ‘ks.Zeichnen’ gelb markiert. Was kann ich da machen?
    Grüße,
    Markus

  66. Hallo Markus, siehe oben.

  67. Hallo Stefan,
    wenn es darum geht, ob ich einen gültigen Zellenbereich ausgewählt habe, würde ich sagen: Ja. Kann man da viel falsch machen???

  68. Hallo,
    wie schön hier so eine tolle Sache gefunden zu haben! Sitze gerade an meiner Bachelorarbeit, aber das mit den Boxplots will nicht hinhauen…
    Ich habe Excel 2010 und konnte alles installieren. Bis zu dem Feld “Berechnen” funktioniert alles, dann sieht man noch kurz ein riesiges Säulendiagramm und dann stürzt Excel ab. Keine Chance mehr und ich muss Schließen des Programms über den Taskmanager erzwingen. Eine Ahnung woran das liegen könnte?
    Danke im Voraus

  69. Hallo Consn. Leider nein, aber versuch doch mal, das Makro Schritt für Schritt abzuarbeiten: ALT-F11 um den VBA-Editor zu starten und dann mit F8 das Makro durchlaufen. Dann solltest du sehen, an welcher Stelle es “abstürzt”.

  70. wi bekommt man die dateii zum durchsuchen

  71. Guten Tag Stefan

    Super Add-In! Wie kann ich die Achsen beschriften (lassen)?

    Schöne Grüsse
    Liliana

  72. Hallo Liliana, das geht leider nicht automatisch, aber du kannst nach Fertigstellung des Boxplots z.B. einfach manuell eine Textbox einfügen.

  73. Hallo Stefan,

    das Add in funktioniert, aber warum werden mir keine Werte (Zahlen) auf der horizontalen Skala angezeigt???

    LG Marcel

  74. Einfach nur:

    Danke! Super Tool. Auf Anhieb perfekt.

  75. Hallo,
    habe das Add in installiert und auch schon einige Boxplots erstellen können, habe mich gefreut aber anscheinend zu früh….Excel macht jetzt nur noch die Grätsche beim Versuch einen weiteren Boxplot zu erstellen. Gleicher Aufbau, nix anders bei den Daten als zuvor.
    Hat jemand eine Idee?
    Danke vorab
    Chris

  76. Hey,

    erstmal: Super Tool. Danke dafür
    Aber ich hab folgendes Problem: Das Programm erstellt zwar einen Boxplot, jedoch ohne Achsenbeschriftung, sprich man sieht einen Boxplot, aber weiß nicht wie die Werte sind.
    Wäre super, wenn du mir einen Tip geben kannst, wie ich das ändere.

    Danke und liebe Grüße,
    Yaiza Hofmann

  77. Hallo Stefan,

    Habe seit ein paar Tagen nach einer Lösung für Boxplot gesucht, aber nichts vernünftiges gefunden.

    > Vielen herzlichen Dank, dass Du deine Lösung hier einfach so zur Verfügung stellst!!
    > und absoluter Wahnsinn, dass Du das dann auch noch seit Jahren (!!) supportest.
    > Danke, Du hast mir viel Zeit geschenkt.

    –> Ich wünsch Dir alles erdenklich Gute

    btw: funzt prima auf Excel 2010.

  78. Christoph Schmitz

    Hallo Herr Macke,

    danke für das tolle Plugin. Ich würde es als Mathelehrer gerne in der Schule einsetzen. Leider beschriftet Excel bei mir die Achse nicht. Das ist mit Sicherheit nur ein Einstellungsfehler. Wie bekomme ich es hin, dass Excel die Achse beschriftet?

    Liebe Grüße
    Christoph Schmitz

  79. Hallo Herr Schmitz,

    leider habe ich seit Jahren nicht mehr in das Makro reingeschaut. Ich kann Ihnen leider nicht helfen :-/

    Viele Grüße!
    Stefan Macke

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax