Clever-Excel-Forum

Normale Version: Datenreihe in eine andere einsortieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin,

Für eine Hausarbeit muss ich Ausgabedaten verschiedener Programme (es geht um das Wachstum von Pflanzen) in Excel vergleichen und in Diagrammen darstellen. Nun trat das Problem auf, dass das eine Programm jeden Wachstumstag ausgibt und das andere nur die Tage an denen eine Veränderung eintritt. Um das in ein Diagramm zu bekommen möchte ich nun die Datenreihe vom 2. Programm so sortieren, dass die Tage in Spalte B mit den Tagen in Spalte A übereinstimmen und dazwischen Leerzeilen bleiben (das bügelt das Liniendiagramm denn glatt).
Unten angehängt ist der aktuelle [attachment=22329] und der gewünschte Zustand [attachment=22328]!


Ich freue mich auf eure Lösungsvorschläge!
Hallo!

Lösungsvorschlag meinerseits: VBA oder Power Query aka Daten abrufen und transformieren. :)
Danke für die schnelle Antwort, aber das löst bei mir jetzt noch nicht den aha-Effekt aus, habe mich da kurz eingelesen aber verstehe nur Bahnhof. Gibt es da nicht eine einfache Funktion für?
Hallo Miro,

kurzes Einlesen hilft auch nix - die Materie ist schon komplexer. Wenn du eine Beispieldatei hochlädts (anstelle der Bildchen), könnte man vllt. noch andere Ideen ausprobieren.
Hier eine Beispieldatei!
Klicke in deiner Datei mit der rechten Maustaste auf den Reiter des Tabellenblatts und wähle "Code anzeigen". Es öffnet sich der VBA-Explorer. Wähle in der Menüleiste Einfügen - Modul. Im großen weißen Fenster fügst du diesen Code ein, genau so wie er da steht:

Code:
Sub verschieben()
Dim i As Long, letzte As Long

Application.ScreenUpdating = False

With Sheets("Data")
    letzte = .Cells(.Rows.Count, "B").End(xlUp).Row     'letzte Zeile in Spalte B ermitteln
    letzte = .Cells(letzte, 2).Value + 1                'Wert in letzter Zeile ermitteln
    For i = 3 To letzte
        If .Cells(i, 2) - .Cells(i - 1, 2) > 1 Then
            .Range("B" & i & ":H" & i).Insert Shift:=xlDown
            .Cells(i, 2) = .Cells(i - 1, 2) + 1
        End If
    Next i
End With

Application.ScreenUpdating = True
End Sub

Nun setzt du den Mauszeiger an eine beliebige Stelle im Code, irgendwo zwischen "Sub verschieben" und "End Sub" und drückst die Taste F5. Macht das das, was du möchtest?

Falls ja, kannst du den VBA-Explorer schließen und dir irgendwo einen Button oder eine Verknüpfung in der Schnellstartleiste für das Makro erstellen und dieses miteinander verbinden.
Hallo,

eigentlich ist das doch sehr simpel. Du könntest einfach die fehlenden Daten 1, 4, 7, 10 … drunter schreiben und dann den Bereich B:H nach Day sortieren …
Hallo m...,

wenn du einfach anstatt eines Liniendiagrammes ein Punktdiagramm (mit Linien) nimmst benötigst du keine Um- oder Einsortierung.

Das hat auch noch den Vorteil, dass, wenn auch in der ersten Datenreihe Tage fehlen, die Abstände proportional zu den Zeitabständen sind.