Günni: Grafik aus Excel kitzeln

Hallo Forum

Mein Problem kurz beschrieben:
Excel 2007 Tabelle mit drei Spalten: Name, X-Koordinate, Y-Koordinate
Nun will ich Punkte mit den Koordinaten in einer Grafik abbilden (ein Punkt für jeden Datensatz). Die Namen sollen an die Punkte dran geschrieben werden. Eigentlich ja wohl das einfachste was es gibt aber ich schaffs nicht.

Wer kann mir helfen?

  1. Hallo,

    Excel 2007 Tabelle mit drei Spalten: Name, X-Koordinate, Y-Koordinate
    Nun will ich Punkte mit den Koordinaten in einer Grafik abbilden (ein Punkt für jeden Datensatz). Die Namen sollen an die Punkte dran geschrieben werden. Eigentlich ja wohl das einfachste was es gibt aber ich schaffs nicht.

    Diagrammyp: Punkt (XY), wahlweise mit oder ohne Verbindungslinien; Datenbeschriftung aus Spalte 1.

    Wer kann mir helfen?

    Ich verstehe nicht, warum du an einer -aus meiner Sicht- so einfachen Aufgabe scheiterst. Was genau ist dir unklar?

    So long,
     Martin

    --
    "Wie geht eigentlich dein neues Auto?"
    "Es geht nicht, es fährt!"
    "Äh, ja. Und wie fährt es?"
    "Och, es geht."
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Diagrammyp: Punkt (XY), wahlweise mit oder ohne Verbindungslinien; Datenbeschriftung aus Spalte 1.

      Das mit den Punkten bekomme ich hin (indem ich zwei Spalten markiere und daraus ein Punktdiagramm erstelle). Aber wie kann ich diese Punkte über eine dritte Spalte beschriften?
       Bei meinen Versuchen werden alle Punkte mit jeweils allen Namen beschriftet.

      Günni

      1. Hallo,

        Diagrammyp: Punkt (XY), wahlweise mit oder ohne Verbindungslinien; Datenbeschriftung aus Spalte 1.
        Das mit den Punkten bekomme ich hin (indem ich zwei Spalten markiere und daraus ein Punktdiagramm erstelle).

        da liegt vermutlich der Hase im Pfeffer. Die Spalte mit den Bezeichnungen muss mit dazu.

        Aber wie kann ich diese Punkte über eine dritte Spalte beschriften?

        Ich habe die Spalte mit den Namen bei der Auswahl des Datenbereichs gleich mitmarkiert, und als Datenbeschriftung dann "Beschriftung anzeigen" gewählt. Es geht aber ebensogut, wenn man erst die beiden Spalten mit den X- und Y-Werten markiert hat (bei mir: =Tabelle1!$B$1:$B$12;Tabelle1!$C$1:$C$12), und den Bereich dann auf Spalte $A erweitert.

        Ciao,
         Martin

        --
        Es sagte...
        ein korpulenter Lehrer zu einem Schüler, der ihn ein Fass genannt hatte: "Nein. Ein Fass ist von Reifen umgeben, ich dagegen von Unreifen."
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. So'n sch...

          Meine Tabelle:
          a   1   4
          b   3   7
          c   2   3

          Jetzt will ich drei Punkte mit Beschriftung haben, klar.
          Raus kommt aber:
          http://www.bilder-hochladen.net/files/459o-o-jpg.html
          (natürlich ohne die Werbung ;-)

          1. Hallo,

            jetzt, wo ich versucht habe, meinen Weg in Bildern darzustellen, ist mir auch mein Fehler aufgefallen: Die Beschriftung stimmt, aber meine Punkte sind in der X-Richtung nicht mehr nach ihrer X-Koordinate (Spalte B) geordnet, sondern einfach nach ihrer Zeilennummer.
            Das is' ja ein Sch...

            Dann muss ich, so leid es mir tut, wohl auch kleinlaut zugeben: Ich krieg's auch nicht hin. :-(

            Vielleicht noch ein Excel-Kenner hier? - Denn die Aufgabenstellung ist ja nicht so abwegig, im Gegenteil, ich finde sie sehr realistisch.

            So long,
             Martin

            --
            Ich bin im Prüfungsstress, ich darf Scheiße sagen.
              (Hopsel)
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Vielleicht noch ein Excel-Kenner hier? - Denn die Aufgabenstellung ist ja nicht so abwegig, im Gegenteil, ich finde sie sehr realistisch.

              Aber es müßte jemand in Voraussicht vorgesehen haben. Excel wird für viel mehr eingesetzt als für was es gedacht ist, da wird man immer auf solche Stellen stoßen. In der Geometrie ist es ja üblich einzelne Punkte zu beschriften aber bei Datensätzen in einem Diagramm?

              Da gehen ganz andere Sachen nicht, wenn man z.B. nur die Null als Beschriftung an einer Achse stehen haben möchte und sonst keine Zahlen, die x-Achse bei Null liegen soll (*uh - alles so geheim*) aber nicht in der vertikalen Mitte des Diagramms (weil die negativen Werte viel kleiner sind und sonst nur viel Nichts in der unteren Hälfte wäre). Da hilft nur Getrickse mit Mitteln die nicht dafür gedacht sind.

              @ Günni, manuell gesetzte Textfelder, was anderes fällt mir auch bei Dir  nicht ein.

              1. @ Günni, manuell gesetzte Textfelder, was anderes fällt mir auch bei Dir  nicht ein.

                Hm, wenn sich die Daten aber ein paar mal in der woche ändern?

                1. @ Günni, manuell gesetzte Textfelder, was anderes fällt mir auch bei Dir  nicht ein.

                  Hm, wenn sich die Daten aber ein paar mal in der woche ändern?

                  In solchen Fällen erzeuge ich in letzter Zeit "komplizierte" Diagramme von oft veränderlichen Daten mittels eigens geschriebener zugeschnittener Programme* als Grafik. Datensatz ins Verzeichnis kopieren, starten, fertig, lohnt sich.

                  *Da ist viel immer gleich, es sind drei Arten von Diagrammen.

                  Es gibt aber auch Programme, deren Hauptaufgabe die Erstellung von Diagrammen ist, vielleicht findest Du was passendes.

            2. Hi,

              ich würde vorschlagen:

              Excel wegwerfen und Linux installieren, dann geht das sofort, ganz einfach und so weiter.

              Cheers, Frank

              1. Hallo Frank,

                ich würde vorschlagen:
                Excel wegwerfen und Linux installieren, dann geht das sofort, ganz einfach und so weiter.

                tut mir leid, wenn das jetzt arrogant rüberkommt, aber so polemische Sprüche klingen danach, als hättest du selbst keine Ahnung (auch wenn ich dem Grundgedanken deiner Aussage zustimmen würde).
                Wenn du wenigestens gesagt hättest, "Excel wegwerfen, OpenOffice benutzen", hätte ich dich ernst nehmen können. OpenOffice gibt es übrigens auch für Windows.

                Ciao,
                 Martin

                --
                Ich bin im Prüfungsstress, ich darf Scheiße sagen.
                  (Hopsel)
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                1. Mensch Martin, kauf dir mal ne (neue) Brille zum Lesen, oder einen neuen Ironiedetektor. Aber du bist schön drauf hereingefallen. ;-)
                  Nix für Ungut. Ciao, Frank

          2. Hallo,

            Meine Tabelle:
            a   1   4
            b   3   7
            c   2   3

            Jetzt will ich drei Punkte mit Beschriftung haben, klar.

            Das wären _drei_ Datenreihen "a", "b" und "c" jeweils mit je _einem_ eigenen x- und _einem_ eigenen y-Wert. Dafür gibt es im Assistenten kein Standarddiagramm.

            Erstelle ein beliebiges Punkt-Diagramm aus den Daten.

            Rufe dann "Daten auswählen" auf.

            Entferne alle vorhandenen Datenreihen.

            Wähle per "Hinzufügen" einzeln die Datenreihen:
            Reihenname:
            =A1 (Zelle mit "a")
            Werte der Reihe X:
            =B1 (Zelle mit 1)
            Werte der Reihe Y:
            =C1 (Zelle mit 4)
            Reihenname:
            =A2 (Zelle mit "b")
            Werte der Reihe X:
            =B2 (Zelle mit 3)
            Werte der Reihe Y:
            =C2 (Zelle mit 7)
            Reihenname:
            =A3 (Zelle mit "c")
            Werte der Reihe X:
            =B3 (Zelle mit 2)
            Werte der Reihe Y:
            =C3 (Zelle mit 3)
            ...

            Nun füge bei jedem Punkt die Datenbeschriftung hinzu und formatiere diese wie gewünscht.

            viele Grüße

            Axel

            1. ...

              OK, das läuft. Danke erstmal. Was mache ich aber wenn ich so ca. 50 Koordinatenpaare habe? Alle einzeln per Hand? Da brauch ich nen HiWi.

              1. Hallo,

                ...
                OK, das läuft. Danke erstmal. Was mache ich aber wenn ich so ca. 50 Koordinatenpaare habe? Alle einzeln per Hand? Da brauch ich nen HiWi.

                ... 'nen HiWi oder ein Makro.

                viele Grüße

                Axel

                1. Hallo,

                  ... 'nen HiWi oder ein Makro.

                    
                  Sub einzeln_beschriftete_XY_Punkte()  
                   'Vorausgesetzt wird die Markierung von Daten für X-Y-Punkte der folgenden Form:  
                   '  
                   'Punktbeschriftung     X-Wert  Y-Wert  
                   'Beschriftung 1        100     200  
                   'Beschriftung 2        200     100  
                   '...  
                   '  
                   'Die Überschriften (Punktbeschriftung, X-Wert, Y-Wert) nicht mit markieren.  
                   '  
                   Dim ch As ChartObject  
                   Set ch = ActiveSheet.ChartObjects.Add(100, 30, 400, 250)  
                   With ch.Chart  
                      .ChartType = xlXYScatter  
                      .HasLegend = False  
                    
                      'Verbindungslinie, wenn gewünscht  
                      .SeriesCollection.NewSeries  
                      .SeriesCollection(.SeriesCollection.Count).Name = "Linie"  
                      .SeriesCollection(.SeriesCollection.Count).XValues = "='" & ActiveSheet.Name & "'!" & Selection.Range(Cells(1, 2), Cells(Selection.Rows.Count, 2)).Address  
                      .SeriesCollection(.SeriesCollection.Count).Values = "='" & ActiveSheet.Name & "'!" & Selection.Range(Cells(1, 3), Cells(Selection.Rows.Count, 3)).Address  
                      .SeriesCollection(.SeriesCollection.Count).ChartType = xlXYScatterLines  
                      .SeriesCollection(.SeriesCollection.Count).MarkerStyle = xlMarkerStyleNone  
                    
                      For r = 1 To Selection.Rows.Count  
                        .SeriesCollection.NewSeries  
                        .SeriesCollection(.SeriesCollection.Count).Name = "='" & ActiveSheet.Name & "'!" & Selection.Cells(r, 1).Address  
                        .SeriesCollection(.SeriesCollection.Count).XValues = "='" & ActiveSheet.Name & "'!" & Selection.Cells(r, 2).Address  
                        .SeriesCollection(.SeriesCollection.Count).Values = "='" & ActiveSheet.Name & "'!" & Selection.Cells(r, 3).Address  
                        .SeriesCollection(.SeriesCollection.Count).MarkerStyle = xlMarkerStyleAutomatic  
                        .SeriesCollection(.SeriesCollection.Count).ApplyDataLabels  
                        'Reihenname = Punktbeschriftung  
                        .SeriesCollection(.SeriesCollection.Count).DataLabels.ShowSeriesName = True  
                        'Kategoriename = X-Wert  
                        .SeriesCollection(.SeriesCollection.Count).DataLabels.ShowCategoryName = True  
                        'Wert = Y-Wert  
                        .SeriesCollection(.SeriesCollection.Count).DataLabels.ShowValue = True  
                        .SeriesCollection(.SeriesCollection.Count).DataLabels.Position = xlLabelPositionAbove  
                        .SeriesCollection(.SeriesCollection.Count).DataLabels.Separator = xlDataLabelSeparatorDefault  
                      Next  
                   End With  
                  End Sub  
                  
                  

                  viele Grüße

                  Axel

                  1. Moin Axel.
                    Wow! hab ich gar nicht mehr mit gerechnet. Vielen Dank, es läuft perfekt für mich!
                    Du musst bei den Pfadfindern sein (jeden Tag eine gute Tat :-)

                    1. Hallo,

                      Wow! hab ich gar nicht mehr mit gerechnet. Vielen Dank, es läuft perfekt für mich!

                      Gut. Bitte meine Korrektur beachten.

                      Du musst bei den Pfadfindern sein (jeden Tag eine gute Tat :-)

                      Nö, das ist auch für meine Sammlung von VBA für Excel eine gute Ergänzung.

                      viele Grüße

                      Axel

                  2. Hallo,

                    ... 'nen HiWi oder ein Makro.

                    Sub einzeln_beschriftete_XY_Punkte()
                    'Vorausgesetzt wird die Markierung von Daten für X-Y-Punkte der folgenden Form:
                    '
                    'Punktbeschriftung     X-Wert  Y-Wert
                    'Beschriftung 1        100     200
                    'Beschriftung 2        200     100
                    '...
                    '
                    'Die Überschriften (Punktbeschriftung, X-Wert, Y-Wert) nicht mit markieren.
                    '
                    Dim ch As ChartObject
                    Set ch = ActiveSheet.ChartObjects.Add(100, 30, 400, 250)
                    With ch.Chart
                        .ChartType = xlXYScatter
                        .HasLegend = False

                    'Verbindungslinie, wenn gewünscht
                        .SeriesCollection.NewSeries
                        .SeriesCollection(.SeriesCollection.Count).Name = "Linie"
                        .SeriesCollection(.SeriesCollection.Count).XValues = "='" & ActiveSheet.Name & "'!" & Selection.Range(Cells(1, 2), Cells(Selection.Rows.Count, 2)).Address
                        .SeriesCollection(.SeriesCollection.Count).Values = "='" & ActiveSheet.Name & "'!" & Selection.Range(Cells(1, 3), Cells(Selection.Rows.Count, 3)).Address
                        .SeriesCollection(.SeriesCollection.Count).ChartType = xlXYScatterLines
                        .SeriesCollection(.SeriesCollection.Count).MarkerStyle = xlMarkerStyleNone

                    For r = 1 To Selection.Rows.Count
                          .SeriesCollection.NewSeries
                          .SeriesCollection(.SeriesCollection.Count).Name = "='" & ActiveSheet.Name & "'!" & Selection.Cells(r, 1).Address
                          .SeriesCollection(.SeriesCollection.Count).XValues = "='" & ActiveSheet.Name & "'!" & Selection.Cells(r, 2).Address
                          .SeriesCollection(.SeriesCollection.Count).Values = "='" & ActiveSheet.Name & "'!" & Selection.Cells(r, 3).Address
                          .SeriesCollection(.SeriesCollection.Count).MarkerStyle = xlMarkerStyleAutomatic
                          .SeriesCollection(.SeriesCollection.Count).ApplyDataLabels
                          'Reihenname = Punktbeschriftung
                          .SeriesCollection(.SeriesCollection.Count).DataLabels.ShowSeriesName = True
                          'Kategoriename = X-Wert
                          .SeriesCollection(.SeriesCollection.Count).DataLabels.ShowCategoryName = True
                          'Wert = Y-Wert
                          .SeriesCollection(.SeriesCollection.Count).DataLabels.ShowValue = True
                          .SeriesCollection(.SeriesCollection.Count).DataLabels.Position = xlLabelPositionAbove
                          .SeriesCollection(.SeriesCollection.Count).DataLabels.Separator = xlDataLabelSeparatorDefault
                        Next
                    End With
                    End Sub

                      
                    Kleine Korrektur:  
                      
                    [Series].Name  
                    [Series].XValues  
                    [Series].Values  
                      
                    können direkt Range-Objekte zugewiesen werden. Das müssen keine Texte sein. Die String-concatenation-Akrobatik von oben ist also nicht nötig:  
                      
                    

                    ...
                        .SeriesCollection(.SeriesCollection.Count).XValues = Selection.Range(Cells(1, 2), Cells(Selection.Rows.Count, 2))
                        .SeriesCollection(.SeriesCollection.Count).Values = Selection.Range(Cells(1, 3), Cells(Selection.Rows.Count, 3))
                    ...
                          .SeriesCollection(.SeriesCollection.Count).Name = Selection.Cells(r, 1)
                          .SeriesCollection(.SeriesCollection.Count).XValues = Selection.Cells(r, 2)
                          .SeriesCollection(.SeriesCollection.Count).Values = Selection.Cells(r, 3)
                    ...

                      
                    viele Grüße  
                      
                    Axel
                    
            2. Jeder Punkt als Datenreihe? Dann kann er die Punkte aber nicht miteinander verbinden, falls er das will.

              Das ist etwa der Punkt an dem er ein Malprogramm für das ganze Diagramm benutzen kann.

              1. Hallo,

                Jeder Punkt als Datenreihe? Dann kann er die Punkte aber nicht miteinander verbinden, falls er das will.

                Falls er es will, kann er es nicht, das ist korrekt. Es gibt aber nun Mal als Optionen der Datenpunktbeschriftung nur:

                Daten_reihen_name
                X-Wert
                Y-Wert

                viele Grüße

                Axel

        2. Ich habe die Spalte mit den Namen bei der Auswahl des Datenbereichs gleich mitmarkiert, und als Datenbeschriftung dann "Beschriftung anzeigen" gewählt. Es geht aber ebensogut, wenn man erst die beiden Spalten mit den X- und Y-Werten markiert hat (bei mir: =Tabelle1!$B$1:$B$12;Tabelle1!$C$1:$C$12), und den Bereich dann auf Spalte $A erweitert.

          Und dannach hast Du nicht einen Datenreihe mehr und das eigentliche Ziel nicht erreicht? Welche Excelversion?

    2. Ich verstehe nicht, warum du an einer -aus meiner Sicht- so einfachen Aufgabe scheiterst. Was genau ist dir unklar?

      Als ich "damals" mitbekommen habe, daß man bei Excel Datenpunkte beschriften kann, habe ich mich gefragt wozu das gut sein soll (ich habe dafür offenbar nie mit wenig genug Daten zu tun gehabt). Insofern wäre ich vermutlich nicht auf die Idee gekommen daß es diese Möglichkeit gibt.

    3. Hoi!

      Excel 2007 Tabelle mit drei Spalten: Name, X-Koordinate, Y-Koordinate
      Nun will ich Punkte mit den Koordinaten in einer Grafik abbilden (ein Punkt für jeden Datensatz). Die Namen sollen an die Punkte dran geschrieben werden. Eigentlich ja wohl das einfachste was es gibt aber ich schaffs nicht.

      Diagrammyp: Punkt (XY), wahlweise mit oder ohne Verbindungslinien; Datenbeschriftung aus Spalte 1.

      Echt Jetzt? Ich hab mal folgendes eingegeben:

      Wert X Y
      Eins 0.5 1
      Zwei 1 2
      Drei 1.5 3
      Vier 2 4
      Fuenf 2.5 5

      Wenn ich damit ein XY Diagramm erstelle bekomme ich 2 Linien in einem 6x6 Koordinatensystem. Die Obere liegt auf Koordinaten 1,1 2,2 3,3 4,4 5,5 und die untere auf den Koordinaten 0.5,1 1,2 1.5,3 2,4 2.5,5. Die Angeben unter Wert sind nciht zu sehen. Die Untere Linie ist wohl, was anhand der Daten dargestellt werden soll, aber wohl eher zufaellig, weil Excel einfach 5 Eintraege sieht, was zu den Y Koordinaten passt.

      Wer kann mir helfen?

      Ich verstehe nicht, warum du an einer -aus meiner Sicht- so einfachen Aufgabe scheiterst. Was genau ist dir unklar?

      Ich muss ehrlich gestehen, dass ich mit der gegebenen Ausgangssituation nichtmal die gewuenschte Linie hinbkommen habe. Es waren immer zwei. Von den Werten an den Punkten mal ganz ab... Keine Ahnung ob Excel 2003 das einfach nicht kann, ich zu doof bin, oder ob man da irgendeine Einstellung machen kann. Googlen tu ich mir dafuer jetzt nicht extra an. Ist ja nicht mein Problem.

      --
      Ich bin dafuer verantwortlich was ich sage, nicht dafuer, was Du verstehst.
      1. Wenn Excel sich nicht anders zu helfen weiß, gibt es auch bei xy-Diagrammen den Daten den x-Wert, der der Stelle im Datensatz entspricht. Ich habe den Verdacht Der Martin ist dem aufgessesen. Ich benutze deshalb beim Testen niemals eine durchgehende Reihe ganzer Zahlen ab 1.

        1. Hallo,

          Wenn Excel sich nicht anders zu helfen weiß, gibt es auch bei xy-Diagrammen den Daten den x-Wert, der der Stelle im Datensatz entspricht. Ich habe den Verdacht Der Martin ist dem aufgessesen.

          ja, ist er.

          Ich benutze deshalb beim Testen niemals eine durchgehende Reihe ganzer Zahlen ab 1.

          Ich auch nicht. Als Namen (Spalte A) hatte ich "alpha", "beta", "gamma", ... und als X- und Y-Werte (Spalte B und C) willkürlich eingetragene, quasi-zufällige Zahlen zwischen 0 und 20.
          Trotzdem (oder vielleicht gerade wegen der zufälligen Zahlen) ist mir der Fehler nicht gleich aufgefallen.

          Ciao,
           Martin

          --
          Die meisten Menschen werden früher oder später durch Computer ersetzt.
          Für manche würde aber auch schon ein einfacher Taschenrechner genügen.
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(