Hey ihr Lieben, Ich möchte bei Excel ein Diagramm erstellen bei den ich mir ansehen kann wie lange mein Ventilator in einen Bestimmten Betriebsmodi war. er hat 4 Modis: 0% (aus) 25%, 50% 100%. Wann er in welchen Modi geschaltet ist habe ich in einer Excel Tabelle. die Wertepaare Sehen in Etwa so aus: 13.05.2020 08:47:22 - 0 13.05.2020 18:04:49 - 25 13.05.2020 18:07:49 - 50 13.05.2020 18:10:50 - 75 13.05.2020 18:15:20 - 100 13.05.2020 18:20:20 - 75 13.05.2020 18:21:20 - 50 13.05.2020 18:23:20 - 25 13.05.2020 18:28:50 - 50 13.05.2020 18:35:20 - 75 13.05.2020 18:44:50 - 50 13.05.2020 18:56:50 - 25 13.05.2020 18:57:00 - 0 Nun Möchte ich eine Art Balkendiagramm haben bei den ich auf der X-Achse die Dauer des Betriebes habe und auf der Y-Achse den Zustand als Balken zu erkennen. Nochmal anders Formuliert: die X Achse ist Zeitabhängig und auf der Y-Achse sollen die Werte So lange Gehalten werden bis auf der Zeitachse ein neuer Wert kommt und dann ein Sprunghaften an - oder Abstieg zeigen. Liniendiagramme konnte ich nicht dazu Motivieren ein Sprunghaften Anstieg darzustellen und Balkendiagramme konnte ich dahingehend nicht verändern, dass sie die Breite Zeitabhängig darstellen. Ich sollte noch erwähnen, dass es sich um über 800 Daten paare handelt. Eine Händische Modifikation der Daten will ich Vermeiden.
Also ich sehe da 5 Stufen. Quick and Dirty: Errechne die Zeiten der Stufe durch die Differenzen (in Minuten) und dann mit Schallanalyse einmal als Balken und einmal in Farbe. Ich habe die Prozente mal als 1-5 beschrieben und die Zeiten auf Minuten gerundet.
Danke für die schnelle Antwort. Leider ist das noch nicht das, was ich gerne hätte. Um mich klarer auszudrücken habe ich die gewünschte Grafik mal Skizziert
in LibreOfficeCalc kann ich ein XY-Diagramm mit "Stufen" darstellen lassen. Datum und Uhrzeit habe ich noch nicht ausgewertet, eventuell müsste ich das erst in einer weiteren Spalte in dezimale Zahlen umformen lassen So das geht mit Spalte dezimal = Spalte Uhrzeit * 24 wird aber etwas gedrängt, wenn die Messintervalle so unterschiedlich sind.
:
Bearbeitet durch User
Rob schrieb: > Balkendiagramme konnte ich dahingehend nicht > verändern, dass sie die Breite Zeitabhängig darstellen. Stell den Abstand der Balken auf 0 dann hast du das gewünschte.
Hans-Georg L. schrieb: > Stell den Abstand der Balken auf 0 dann hast du das gewünschte. Leider nicht denn die Dauer des anhaltenden Zustandes will ich grafisch darstellen und ich habe kein weg gefunden die Balken dicke mit werten zu verändern. Leider bin ich auch darauf angewiesen Excel zu verwenden. Die zweite Tabelle von Christoph zeigt die werte so, wie ich sie mir vorstelle. Wenn ich das gleiche noch in Excel hinbekommen könnte, wäre ich Glücklich.
Rechne die Minuten aus, gibt sie an die Zeitachse, und die Leistung an die Powerachse. FERTIG. Mit den Eigenschaften der Achse kannst du das ganze verfeinern. Gruß Pucki
Datenreihe formatieren -> Reihenoptionen Abstandsbreite auf 0 (kein Abstand) setzen Muss man nichts rechnen.
:
Bearbeitet durch User
Guten Tag, ich habe das Gefühl nicht verstanden zu werden. Das Hier: https://www.mikrocontroller.net/attachment/461005/Tabelle.png ist eine Darstellung der Werte wie ich sie mir vorstelle. daraus ist zu erkennen, dass die meiste zeit der Ventilator ausgeschaltet war. Diese Grafik: https://www.mikrocontroller.net/attachment/461009/Unbenannt.PNG lässt vermuten, das die Zustände alle gleich lang dauerten. Das ist für mich unbrauchbar. Die Minuten Auszurechnen ist nicht mein Problem. die Minuten und die Sprunghaften an und Abstiege in Excel darzustellen ist mein Problem.
Exel kann halt nicht besonders viel in Sachen Diagramme. Du suchst ein Treppen-/Stufendiagramm Du musst es als Liniendiagramm nachbauen 13.05.2020 08:47:22 - 0 13.05.2020 18:04:48 - 25 13.05.2020 18:04:49 - 25 13.05.2020 18:07:48 - 50 13.05.2020 18:07:49 - 50 13.05.2020 18:10:49 - 75 13.05.2020 18:10:50 - 75
So meinte ich 13.05.2020 08:47:22 - 0 13.05.2020 18:04:48 - 0 13.05.2020 18:04:49 - 25 13.05.2020 18:07:48 - 25 13.05.2020 18:07:49 - 50 13.05.2020 18:10:49 - 50 13.05.2020 18:10:50 - 75
Ich danke für eure Hilfe. Das Stichwort "Stufendiagramm" hat mir sehr geholfen und fehlte in meiner Problembeschreibung. Ich erkenne das es keinen einfachen Weg gibt, dieses Diagramm in Excel zu erstellen.
Rob schrieb: > Ich erkenne das es keinen einfachen Weg gibt, dieses Diagramm in Excel > zu erstellen. Doch gibt es. Nennt sich Diagrammassistent. Dort einfach richtig markieren und zuweisen. FERTIG. Gruß Pucki
Anscheinend bin ich dafür zu schwerfällig um den einfachen Weg zu sehen, denn du meinst Pucki. Bitte beschreibe mir wie ich in Excel mit den Aktuellen Daten ein Stufen oder Treppendiagramm erstellen kann damit es aussieht wie das zweite von Christoph db1uq K: https://www.mikrocontroller.net/attachment/461005/Tabelle.png
René H. schrieb: > Ist das für Dich privat? Hast Du PowerBI schon probiert? Verrätst Du mir bitte, welcher Teil von "Leider bin ich auch darauf angewiesen Excel zu verwenden." Dir entgangen ist? Danke, Sheevaplug
Die Daten bleiben ja in Excel, nur das Diagramm würde dann in PowerBI erstellt. Aber weshalb bist Du zwingend auf Excel angewiesen? Vielleicht weiss Dein "Auftraggeber" nicht wie man es besser machen kann? ?
Ich danke für das bemühen mir weiterhin zu helfen. Ich wollte ein bestehendes Diagramm in meiner Beschäftigung lesbarer gestallten und damit beim Vorgesetzten Punkten. In Betrieb wird ausschließlich Excel verwendet und wenn ich eine Lösung Präsentiere die nicht mit diesen Programm erstellt werden kann, dann erhoffe ich mir dafür keine 'Pluspunkte'. Ich werde mich bald da ran setzen und für den Fall ein Makro schreiben, dass die Daten so Darstellt, dass Excel es mit einen Liniendiagramm Darstellen kann.
Ich habe mal in LibreOfficeCalc meine ods-Datei als xlsx gespeichert, die Stufen-Darstellung scheint tatsächlich im Excel 2007 zu fehlen, Excel zeigt nur schräge Verbindungslinien. Hier der "Assistent" von Libre Office, da wird neben Linie auch Stufen angeboten. Hier die Originaldatei. da schaffen es mehrere mit Tricks auch in Excel: https://www.fasteasy.at/tippshop/index.php?mp=1&id=1&id2=18&id3=1847 http://www.office-loesung.de/ftopic590702_0_0_asc.php https://www.gutefrage.net/frage/wie-kann-man-in-excel-eckige-liniendiagramme-erstellen Der Trick ist anscheinend einfach aus jedem Kurvenpunkt zwei zu machen, die in der Y-Richtung versetzt sind.
:
Bearbeitet durch User
Hallo, in Excel geht das tatsächlich nur mit etwas Bastelei. Die lässt sich aber in ein Makro verpacken. Die Dataen erst in eine Tabelle kopieren, dann zusätzliche Spalte ergänzen und mit 1 füllen. Den ganzen Block noch mal unten dran kopieren, in diesem Teil der Tabelle die 1 in der ergänzten Spalte durch 2 ersetzen. Im oberen Teil der Tabelle die Datenspalte um eine Zeile nach unten kopieren. Den gesamten Block markieren und zweistufig sortieren. 1.Ebene Zeitstempel 2.Ebene Datenspalte Diese beiden Spalten markieren und Grafik einfügen Punkt(XY)- Punkte mit geraden Linien Diese Darstellung war wohl gewünscht? Im Excel-File ist das Makro für die in der Tabelle eingefügten Daten enthalten (Strg-D), allerdings auf die Schnelle nur mit festen Zellreferenzen. Das kann man sicher noch komfortabler an variable Datenmengen anpassen.
Hi, Ich bin von den Aufwand den du, Excel-Fan, betreibst um mir zu Helfen beeindruckt. Ja die Darstellung ist gewünscht. Das Makro schaue ich mir bald an. Danke, nicht nur an dich sondern an jeden, der sich bei der Lösungsfindung beeidigt hat.
Nochmal ich, ich weiß ich sollte dafür eigentlich ein neuen Thread auf machen doch glaube ich, dass es die Frage nicht Wert ist und ich wollte die Situation ausnutzten, hier schon interessierte Experten für Excel erreichen zu können: in einem Mako an dem ich gerade schreibe habe ich Folgende Zwei Zeilen: Range("E2").Select Selection.FormulaArray = "=MIN(IF(R[2]C:R[11961]C>0,R[2]C:R[11961]C))" Range("E3").Select ActiveCell.FormulaR1C1 = "=MAX(R[1]C:R[11960]C)" Die Zeile 11961 ist das Ende meiner genutzten Tabelle. Das Ende dieser Tabelle ist mit jeder Anwendung eine andere und um das Dynamisch zu gestallten habe ich mir beim Ende der Tabelle ein: endeDerTabelle = Selection.Row Will ich die erstelle Variable in den oben Definierten Code benutzen indem ich die Zahl 11961 durch "endeDerTabelle" ersetze bekomme ich den "Laufzeitfehler 1004 --> Anwendung - oder objektorientierter Fehler". Für die die sich Fragen was ich mit: "=MIN(IF(R[2]C:R[11961]C>0,R[2]C:R[11961]C))" bezwecken will: ich suche den kleinsten Wert in der Spalte E der nicht gleich Null ist. Es mag sein, dass ich hier Anfängerfehler mache. Dies sind meine ersten Schritte auf den Gebiet der Makroprogramierung in Excel. Ich bitte darauf Rücksicht zu nehmen. Und nein, die beiden Fragen haben nur sehr Entfernt miteinander zu tun. Die Beziehung zwischen ihnen besteht lediglich darin, dass sie sich auf den gleichen, nur zum Teil gezeigten, Datensatz beziehen.
Selection.FormulaArray = "=MIN(IF(R[2]C:R" & endeDerTabelle & "C>0,R[2]C:R" & endeDerTabelle & "C))" habs
Rob schrieb: > Nochmal ich, > endeDerTabelle = Selection.Row das scheint erst mal kein eindeutiger Wert zu sein, musst du ja in dem Moment die Selektion an der richtigen Stelle haben. Besser sowas wie worksheet.usedrange.rows.count um das Ende auf dem Blatt zu ermitteln. Sascha
Hey nun endlich bin ich dabei das Makro dafür zu schreiben. Ich weiß, hier wurde ein anderer weg vorgeschlagen doch ich würde gerne meinen gehen. ich kopiere jede zeile und gebe der Kopie den Zeitstempel von dem Vorgehenden Datum - 1 Sekunde. und dieses '-1 Secunde bereitet mir große Schwierigkeiten. Der hierfür relevante Code: Dim eineSekunde As Date eineSekunde = 1 ActiveCell.FormulaR1C1 = "=R[1]C - " & eineSekunde & "" Die Fehlermeldung ist: Laufzeitfehler ' 1004': Anweisungs- oder Objektdefinierter Fehler Was möglich ist, ist, den wert von "einer Sekunde" in einer Zelle zu definieren und die Formel so umzugestalten, dass die Formel sich auf die Zelle bezieht. Das empfinde ich aber als äußerst unsauber und will das gerne in einer Variablen gelöst haben. die Variable wird mir im Fenster ''Lokal'' auch richtig als Datum angezeigt: '31.12.1899'.
Mach das nicht über "FormulaR1C1", sondern über "Formula", dann kannst Du auch besser mit Variablen und direkter Zellenangabe arbeiten. Ich mag dieses "R1C1" überhaupt nicht. Wichtig ist das richtige Setzen der Anführungszeichen. Hier mal ein Beispiel von mir.
1 | lngZelle = 9 |
2 | |
3 | For lngCount = 3 To 55 |
4 | Range("F" & lngCount).Formula = "=IF(Vorverteilung!K" & _ |
5 | lngZelle & "<>"""",IF(E" & lngCount & _ |
6 | "<>"""","" + "" &Vorverteilung!K" & _ |
7 | lngZelle & ",Vorverteilung!K" & lngZelle & "),"""")" |
8 | lngZelle = lngZelle + 12 |
9 | Next lngCount |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.