Hallo,
habe mit einem Datenlogger Daten erfasst und die Daten nach dem Auslesen
für Excel konvertiert. Nun meckert Excel wegen zu vielen Daten ... :-(
Für eine Grafik würde es reichen, nur jede 6te Zeile zu nutzen, also
immer 5 Zeilen raus zu werfen. Gibt es eine Möglichkeit, dies in Excel
einzurichten?
Hans
Hans K. schrieb:> Nun meckert Excel wegen zu vielen Daten ... :-(
Welche Excel-Version hast du. Das ist wichtig weil Excel je nach Version
die maximal-Zeilen geändert hat. z.b. Excel 2003 = ca. 32.000 Zeilen.
Höhere Versionen haben mehr.
Was das einlesen angeht.
Jein.
Du müsstest sie über ein VBA-Script einlesen. Excel zu sagen, lies nur
jede 6 Zeile mit klicki-Bunti geht nicht. In keiner Version.
Die Alternative wäre dir LIBRE-Office zu installieren.
Zitat Google :
What is the maximum number of cells, rows, columns and sheets in a
LibreOffice spreadsheet?
The maximum number of columns is 1,024 (from column A to column AMJ);
the maximum number of rows is 1,048,576 (220); the maximum number of
cells in one sheet is 1,073,741,824 (230 which is more than 1 billion
cells);13.04.2020
Das sollte selbst für deine Daten reichen ;)
Schlaumaier schrieb:> Das sollte selbst für deine Daten reichen ;)
Anscheined nicht, Excel kann seit 2007 mindestens genausoviel:
https://support.microsoft.com/en-us/office/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3#ID0EBABAAA=Newer_versions
Also würde ich mal annehmen es geht um mehr als eine Mio. Zeilen.
Direkt beim einlesen ist mir so jetzt auch nichts bekannt wo man sagen
könnte nehme nur jede x'te Zeile.
Ich würde mir einfach eine kleines Progrämmschen schreiben was mir das
macht und dann nur doch die von dieser erzeugten Datei importieren. Eine
andere Möglichkeit wäre auch noch die Datei einfach passend zu splitten
und diese dann in verschieden Blätter zu importieren (Die Limits gelten
bei Excel pro Blatt und nicht in Summe über alles). Zur Not könnte man
sich vermutlich auch was ähnliches als Makro in VBA schreiben,
erfahrungsgemäß läuft sowas dann aber zig Stunden vor sich hin so
schnarch lahm wie das ist.
Hallo Schlaumaier,
es ist immer unterhaltsam, Dein fiktionales Erzählgut zu konsumieren.
Schlaumaier schrieb:> die maximal-Zeilen geändert hat. z.b. Excel 2003 = ca. 32.000 Zeilen.
Schon Office 2000 unterstützte 65536 Zeilen.
Irgend W. schrieb:> Zur Not könnte man> sich vermutlich auch was ähnliches als Makro in VBA schreiben,> erfahrungsgemäß läuft sowas dann aber zig Stunden vor sich hin so> schnarch lahm wie das ist.
Die Laufzeit dieses Makros sollte proportional zur Anzahl der
gelieferten Zeilen sein.
Und wenn die Logdatei wirklich groß genug ist, dann kriegt man die
Laufzeit auch auf Stunden hochgeschraubt.
Aber der Fadenstarter hat nun einmal keine verwertbaren Details
geliefert.
Schlaumaier schrieb:> the maximum number of rows is 1,048,576 (220); the maximum number of> cells in one sheet is 1,073,741,824 (230 which is more than 1 billion> cells);
Da steht eventuell 2^20 bzw. 2^30, kann das sein?
Hans K. schrieb:> habe mit einem Datenlogger Daten erfasst und die Daten nach dem Auslesen> für Excel konvertiert. Nun meckert Excel wegen zu vielen Daten ... :-(
Um hier die Spekulationen etwas einzugrenzen, wäre es nicht schlecht,
wenn du verraten könntest, in welchem Bereich sich deine Datenmenge
bewegt.
Falls du über Programmierkenntnisse in inrgendeiner Hochsprache für
einen PC verfügst, wäre es evtl. auch eine Option, selber den
sprichwörtlichen Dreizeiler zu schreiben.
Schlaumaier schrieb:> ... weil Excel je nach Version die maximal-Zeilen geändert hat.> z.b. Excel 2003 = ca. 32.000 Zeilen.> Höhere Versionen haben mehr.
In der Fehlermeldung steht tatsächlich was von max. 32.000 Zeilen.
Ist offensichtlich keine höhere Version ...
Habe vorerst die Zeilen über 32.000 gelöscht. Das klappt also.
Neues Problem: Möchte die Messwerte in einer Grafik darstellen. Y-Achse
die Zeit, X-Achse die Messwerte. Die Spalte Zeit hat das Format h:min
(00:00). Beim Datenloggen wurde alle 10s eine Messung gemacht, also habe
ich 6 Zeilen mit der gleichen Zeit, woran sich Excel offensichtlich
nicht stört.
Excel zeigt nun in der Grafik die Zeit ungünstig an, nämlich:
00:00 - 03:18 - 06:36 - 09:54 usw.
Wünschenswert wären ganze Stunden oder besser immer 3 ganze Stunden.
Scheint aber im Programm nicht vorgesehen.
In welchem Format liegen die Daten denn vor? Beim Import aus txt kann
man das Format für jede Spalte festlegen.
Im Diagramm lässt sich das Hauptintervall einstellen, nützt aber nur was
wenn die Daten dann zu einer vollen Stunde beginnen.
Von wievielen Datenzeilen reden wir denn? Mit mehreren 10-tausend Zeilen
ist die Verwendung von Excel zum erzeugen eines Diagramms ziemlich
sinnlos weil einfach die Möglichkeit fehlt in den Daten zu zoomen um
auch noch was erkennen zu können.
Sascha
Ich habe sowas ähnliches auch erst gemacht..
Der Office Weg..
Daten in Access importieren und passend über eine Query optimiert in
Office einfügen, so kann man auch immer wieder neue Daten in Access
nachträglich einfügen.
Ich habe weil vorhanden das ganze in mysl eingelesen und dort auf ganze
Stunden gruppiert.
Irgend W. schrieb:> Anscheined nicht, Excel kann seit 2007 mindestens genausoviel:
Deshalb hab ich ja nach der Version gefragt ;)
IchMeinJaNurMalSo schrieb:> Da steht eventuell 2^20 bzw. 2^30, kann das sein?
JA. Aber das rafft die forums-Software beim kopieren nicht. Hier der
Original-Text.
Google : libreoffice calc max rows
Peter M. schrieb:> Schon Office 2000 unterstützte 65536 Zeilen.
Jo. Ich habs falsch im Kopf gehabt. Liegt vermutlich daran das mein
Excel 2003 schon bei 30.000 Zeilen die Krise bekommt.
@to
Für das Diagramm würde ich eine Puffertabelle erstellen. Die berechnet
den Mittelwert aus einer Anzahl von Zeilen = über ein gewissen Zeitraum.
Daraus machst du dann ein Linendiagramm. Für ein bisschen Grafik reicht
das völlig. Und belastet Excel nicht so.
Und viel speichern. Excel ist bei so großen Datenmengen zickig.
Nachtrag :
Man kann die Position der Zelle auch berechnet.
Wenn du also in der Puffertabelle ein Feld machst mit "Faktor Für
Mittelwert" und dann in der Formel den Bereich für den Mittelwert mit
diesen Faktor berechnest, kannst du bei neuen Daten einfach automatisch
den Schrittwert für die Meßpunkte berechnen.
Anzahl der Zeilen pro Mittelwerte) = Anzahl der Zellen / Anzahl der
Messpunkte.
Und in der Formel : = mittelwert von Bereich X + 1 : Bereich X+ anzahl
der Zeilen pro Mittelwert
Dann berechnet sich das Diagramm jederzeit neu, wenn du die Datentabelle
änderst.
Auf die Weise habe ich mal die Umsatzzahlen mit Diagramm berechnet via
automatisches Dateiimport in Text-Format.
ALLES ohne Script.
Sascha W. schrieb:> Von wievielen Datenzeilen reden wir denn?
Habe den Datensatz auf 32.000 Zeilen reduziert (vorne und hinten was
abgeschnitten) und mein altes Excel kommt jetzt klar damit. Ursprünglich
waren es 57.153 Zeilen.
> Mit mehreren 10-tausend Zeilen> ist die Verwendung von Excel zum erzeugen eines Diagramms ziemlich> sinnlos weil einfach die Möglichkeit fehlt in den Daten zu zoomen um> auch noch was erkennen zu können.
Ist in meinem Fall nicht wirklich relevant, denn ich habe nur mal die
Einschaltperioden und die Einschaltdauer meines Kühlschranks erfasst.
Dazu befand sich ein Sensor im Tiefkühlfach. Der Log lief knapp eine
Woche (6 Messungen/min.), deshalb die große Datenmenge. Deshalb auch der
Wunsch, nur jeden 6. Messwert zu verwenden.
EXCEL hat sich aber jetzt erledigt, ich sehe im Diagramm, was ich sehen
wollte.
Siehe auch: Beitrag "Kühlschrank noch in Ordnung?"
Für den Fall, dass ich nochmal irgendwas logge und solch ein Diagramm in
EXCEL nochmals erstellen möchte:
1. Bei der Zeitachse ist es mir zwar gelungen, mit dem Wert 1080 alle 3
Stunden eine senkrechte Linie zu erzeugen. Es gelang mir allerdings
nicht, an die Linien auch die ganzen Stunden schreiben zu lassen
(3-6-9-12 usw.).
2. Dass die Zeit innerhalb des Quadranten dargestellt wird, sieht auch
etwas ungut aus. Auch hier fand ich keine Einstellung.
Gibt es für beides keine Lösung oder finde ich die nur nicht?
Denn eigentlich ist ja immer alles einstellbar.
Wie schon geschrieben.
Eine neue Tabelle erstellen lassen die den Mittelwert eines Zeitraum
erstellt.
Dann die Reihe von Hand beschriften, und eine Achsenbeschriftung
erstellen. Diese ins Diagramm übernehmen.
Dazu solltest du dich über die Formel-Befehl INDIREKT + VERKETTEN schlau
machen.
Stell dir eine Reihe B vor mit zahlen.
In D1 willst du den Wert aus B3 haben, in den du in D2 eine 3 eingibst.
Das in D1 schreiben =INDIREKT(VERKETTEN("b"&D2))
Wenn du das so machst das deine Puffertabelle Werte hat, kannst du das
sogar automatisch Berechnen. Ist nicht so einfach aber geht.
Um ehrlich zu sein ist die Funktionalität von Excel um Diagramme zu
erstellen nur Rudimentär. Alles was über ein BWLer Kuchendiagramm hinaus
geht ist Gefrickel. Das gleichmäßige skalieren der x-Achse und y-Achse
mit der grafischen Oberfläche unmöglich. Vom einem Contour Plot kann man
nur träumen.
Mit Python (Matplotlib), Qtiplot, Grapher oder OriginLab kommt man
besser ans Ziel.
Karl schrieb:> Alles was über ein BWLer Kuchendiagramm hinaus> geht ist Gefrickel. Das gleichmäßige skalieren der x-Achse und y-Achse> mit der grafischen Oberfläche unmöglich.
Stimmt. Für die guten Diagramme brauch man was anständiges.
Und diese "Anständigen" Programme kommen auch mit einer Kleinigkeit von
100.000 Datensätzen nicht ins Schwitzen.
Bei Excel bin ich halt immer über eine Puffertabelle gegangen die dann
Mittelwerte errechnet, um die Anzahl der Datenpunkte auf ein Minimum
(max. 20) zu beschränken. Und dann muss es ein Liniendiagramm sein.
Balken und Kuchen kannst du knicken ab 12 Punkten.
Karl schrieb:> Das gleichmäßige skalieren der x-Achse und y-Achse> mit der grafischen Oberfläche unmöglich.
Nicht wirklich, man muss nur mal mit allen Einstellmöglichkeiten spielen
und versuchen, die dahinter liegenden Funktionen zu verstehen. Dann
klappt das auch mit dem "unanständigen" EXCEL.
Dann man spart sich dubiose Umwege über indirekt verkettete
Hilfsspalten. Die richtigen Buttons drücken und die richtigen Werte in
die richtigen Felder eingeben, dann passt das, siehe
Beitrag "Re: Kühlschrank noch in Ordnung?"Schlaumaier schrieb:> Welche Excel-Version hast du.
EXCEL 97
Hans K. schrieb:> Schlaumaier schrieb:>> Welche Excel-Version hast du.
2003.
Aber du machst einen Fehler. Teste deine Einstellungen mal. Dann wirst
du erkennen das der für JEDEN Teilstrich eine Beschriftung machst. Und
da mein Drucker keine Mikroschrift kann, überlagert der dann alles.
Einfach gesagt, und hast ein dicken fetten Balken als Teilbeschriftungen
bestehend aus 1080 Texten.
Wenn man über ein Puffertabelle geht und genau deine Werte richtig
einstellt, geht es.
Die alternative Lösung ist, man macht ein Liniendiagramm OHNE
Datenpunktbeschriftung und gibt den Bereich manuell in den
Diagrammeigenschaften an.
Ich habe 20 Jahre so Diagramme gemacht. Sehr oft sogar wurden diese
durch selbst erstellte VB-Programm automatisch aus einer leeren Tabelle
erstellt.
Glaub mir, ich kenne mit Excel und Diagrammen JEDEN Trick.
Jedenfalls bis zu besagten Version 2003. Und ich werde nie auf eine
andere Version wechseln. Mit Jeder Version nach 2003 dauert die
Bearbeitung min. 10 x Länger. Der Grund sind die Schei** Menüs. Ich
habe eine Menüreihe nur mit Makros. Da klick ich eins an und der macht
das was sonst zwischen 5-40 Klicks sind.
1. Wer misst, misst Mist. Hier 6 Messungen pro Minute mit gleichem
Zeitstempel "h:min" nicht voneinander auseinanderzuhalten. Naja,
immerhin lassen sich diese 6 Messungen zu einem Mittelwert verrechnen.
2. EDV=Ende Der Vernunft. Hier reicht ein xxxMB Grosses Excel nicht um
wenige MB Daten zu verarbeiten. Zeilenzahl begrenzt, Skalenbeschriftung
nur durch tagelange "Ostereiersuche" knapp unbefriedigend zu beherrschen
(Teilstriche, Schriftgrösse, Zoombarkeit). Verarbeitungszeit lassen wir
jetzt mal weg f. diese Eintagsfliegenübung.
Lächerlicher Verhältnisblödsinn^3 typisch der BWL-Kategorie,
schliesslich kommt da noch einer mit Access obendrauf angerannt...
Zum Glück gibt es seit 1-2J WSL: das entbindet W10 Benutzer der Ausrede
sich nicht mit seit über 20J bewährten POSIX & GNU Programmen der
Kategorie "Schweizer Taschenmesser" zu befassen.
Datenreduktion u. ggf. Teilselektion geht mit sed Einzeilern, so denn
überhaupt nötig. Alternativ Mittelwertrechnung per awk .
Ein knappes Dutzend Zeilen Konfigurationshinweise an GNUplot bringen
die Darstellung in Deckung mit den eigenen Wünsche, interaktive GUI f.
Zoom inkl.
Kann man das bereits (SoHo-)BigData nennen? ;-)
Schlaumaier schrieb:> Teste deine Einstellungen mal. Dann wirst> du erkennen das der für JEDEN Teilstrich eine Beschriftung machst.
Stimmt. Dann darf man eben nicht jeden mm einen Teilstrich setzen.
Wollte in meinen Diagramm ursprünglich auch jede Stunde einen Teilstrich
setzen, dann hätte aber die Schrift nicht mehr gepasst. Also sind es
kurzerhand 3 Stunden pro Teilstrich geworden. Problem gelöst.
> Und ich werde nie auf eine> andere Version wechseln. Mit Jeder Version nach 2003 dauert die> Bearbeitung min. 10 x Länger.
Stimmt wieder. Am Ende hat man auch nur ein Diagramm, das mit einer
alten Version ebenso erstellt werden konnte.
Im Gegensatz zu dir habe ich in Urzeiten nur einen Crashkurs in EXCEL
abbekommen. Habe mir jetzt aber paar Zeilen zu der Vorgehensweise
notiert, beim nächsten Mal steht so ein Diagramm in 5 Minuten.
Ärgerlich ist eher, dass ich die Daten nicht reduzieren kann, da mir
dazu die Kenntnisse fehlen. Beim nächsten Mal frage ich einfach mal, ob
das jemand im Netz für mich erledigen könnte. Man muss auch nicht alles
können.
Gnu schrieb:> Mach mal eine Grafik mit Excel und dann mit Gnuplot, gerade wenn Du> viele Daten hat, ist Gnuplot 100x schneller
Langsamer ist auch kaum möglich :)
Excel + viele Daten = elend. Deshalb kann man um überhaupt zu Arbeiten
die Berechnungen in Excel ja abschaltet.
Schlaumaier schrieb:> Gnu schrieb:>> Mach mal eine Grafik mit Excel und dann mit Gnuplot, gerade wenn Du>> viele Daten hat, ist Gnuplot 100x schneller>> Langsamer ist auch kaum möglich :)>> Excel + viele Daten = elend. Deshalb kann man um überhaupt zu Arbeiten> die Berechnungen in Excel ja abschaltet.
Q.e.d. Excel skaliert exzellennt: je mehr Daten desto langsamer.
karl-heinz schrieb:> hättest du jetzt noch die hauptstriche auf innen gesetzt, wärs perfekt> geworden.
Der Unterschied ist mir erst gar nicht aufgefallen, der Strich wird ja
auch nur einen mm länger. Hab es gleich notiert. Die nächste Grafik wird
gleich perfekt. Die Jungs von MS haben irgendwie schon an alles gedacht.
Hans K. schrieb:> Karl schrieb:>> Das gleichmäßige skalieren der x-Achse und y-Achse>> mit der grafischen Oberfläche unmöglich.>> Nicht wirklich, man muss nur mal mit allen Einstellmöglichkeiten spielen> und versuchen, die dahinter liegenden Funktionen zu verstehen. Dann> klappt das auch mit dem "unanständigen" EXCEL.
Mit gleichmäßig skalliert meinte ich, dass das im Bild/Druck 100
Einheiten auf der x-Achse gleich 100 Einheiten auf der y-Achse gleich
z.B. 1 cm (oder 100 Pixel) sind. Nur so wird aus dem Mohrschen
Spannungskreis ein Kreis und kein Oval.
Mit der Einstellung die du gezeigt hast geht das sicher nicht, Weil du
die Länge der Achse nicht eingeben kannst.
Es gibt einen Unterschied ob man mit XLS oder XLSX Format arbeitet - XLS
gibt, egal bei welcher Office-Version, ein festes Limit vor.
Excel-Versionen die nur mit XLS arbeiten können (also 2003 und älter)
haben dieses Limit fest eingebaut.
Es gibt auch 64 Bit Versionen von "modernen" Excels (spätestens ab
2010), diese können bei wirklich großen Datenmengen von Vorteil sein.
Achtung, diese werden NIE von sich aus installiert (da die
Kompatibilität mit Drittanbieter-Software welche Excel-Plugins stellt
oder Excel per OLE einbindet begrenzt ist), man muss das immer explizit
als Option im Installer angeben, auch bei 64 Bit Betriebssystemen.
Hans K. schrieb:> Ärgerlich ist eher, dass ich die Daten nicht reduzieren kann, da mir> dazu die Kenntnisse fehlen. Beim nächsten Mal frage ich einfach mal, ob> das jemand im Netz für mich erledigen könnte. Man muss auch nicht alles> können.
Egal ob Excel, OO-Calc oder sonst etwas, die Zeilenreduktion ist an sich
ganz simpel, hier als Beispiel für Calc, wenn nur jede 10te Spalte
genutzt werden soll:
- Neue Spalte einfügen, z.B. "A".
- in das erste betroffene (hier A1) Feld eine 1 eingeben.
- in das darunter (A2) befindliche Feld =WENN(A1<10;A1+1;1) eingeben.
- Ab A2 Spalte A bis zum unteren Tabellenende erweitern und "nach unten
Füllen".
- Spalte A Kopieren und nur als Zahlen-Werte wieder einfügen.
- Gesamte Tabelle nach Spalte A sortieren lassen, ggf. als zweite
(nachrangige) Sortierfunktion z.B. die Zeit nehmen.
Anschliessend alle Zeilen mit der 1 in der A-Spalte nehmen und damit
weiter arbeiten.
Wichtig ist aber, dass man auch weiss, ob die einfache Löschung von 9
von 10 Werten keine unzulässige Verfälschung der Ergebnisse bringt.
Bei Deiner Temperaturaufzeichnung wäre das aber überhaüpt kein Problem.
Ralf X. schrieb:> Wichtig ist aber, dass man auch weiss, ob die einfache Löschung von 9> von 10 Werten keine unzulässige Verfälschung der Ergebnisse bringt.> Bei Deiner Temperaturaufzeichnung wäre das aber überhaüpt kein Problem.
Deshalb ja die Puffertabelle. Die berechnet (je nach Einstellungen) den
Mittelwert aus einer Gruppe von Zahlen.
Das ist dann relevanter. Immerhin ist die Analyse einer Messung immer
nur ein Mittelwert. Die Anzahl der Messungen verhindert nur große
Abweichungen.
Schlaumaier schrieb:> Ralf X. schrieb:>> Wichtig ist aber, dass man auch weiss, ob die einfache Löschung von 9>> von 10 Werten keine unzulässige Verfälschung der Ergebnisse bringt.>> Bei Deiner Temperaturaufzeichnung wäre das aber überhaüpt kein Problem.>> Deshalb ja die Puffertabelle. Die berechnet (je nach Einstellungen) den> Mittelwert aus einer Gruppe von Zahlen.>> Das ist dann relevanter. Immerhin ist die Analyse einer Messung immer> nur ein Mittelwert. Die Anzahl der Messungen verhindert nur große> Abweichungen.
Du bist einfach nur ein angeblicher Schlaufux und Schaumschläger, der
die meisten Kommentare gar nicht wirklich begreift, glaubst aber immer,
irgendwelche dahergeschwurbelten Empfehlungen geben zu müssen, die für
den Fall ohne Sinn sind und auch so, wie Du sie darstellst, auch in 99%
anderer Fälle den grössten Unsinn ergeben.
Wenn Du Deine "Puffertabelle" um eine Mittelwerttabelle einer Umgebung
erweiterst und dann einfach z.B. jeden 10ten Datensatz (Teile) nimmst,
steht immer noch Deine FORMEL in der Mittelwertspalte und errechnet dort
ganz andere Werte, als in der Ursprungstabelle standen.
Je nach Kurvenform und Art, was die Kurve in einem Diagramm aussagen
soll, ist eine einfache Darstellung der Mittelwerte das dämlichste, was
man machen kann.
Der TO hingegen hätte sogar einfach 29 von 30 Datensätzen einfach
eliminieren können, ohne dass sich eine wichtige Information aus dem
Diagramm verabschiedet hätte.
Oder auch 59 von 60..
Aber dafür fehlt Dir wie immer der Überblick.
Ralf X. schrieb:> Wenn Du Deine "Puffertabelle" um eine Mittelwerttabelle einer Umgebung> erweiterst
Und du liest nicht was ich schreibe.
Weil DAS hatte ich nie vor.
Die Puffertabelle macht nur eins. Sie verkürzt die Anzahl der Daten.
z.b.
Zeile 1 spalte 1 : Akt. Stunde
Zeile 1 Spalte 2 : Temperatur
Zeile 2 Spalte 1 : 1
Zeile 2 Spalte 2 : Mittelwert aus Zeile 1-100 der Original-Tabelle.
Zeile 3 Spalte 1 : 2
Zeile 3 Spalte 2 : Mittelwert aus Zeile 101-200 der Original-Tabelle.
u.s.w.
Am Ende habe ich (bei 24 Std. Daten) 24 Datenpunkte mit realistischen
Werten = Spalte 2, eine Ordentliche Beschriftung der Datenpunkte =
Spalte 1.
Und der Diagramm-Assistent macht da mit 2 Klicks ein Vernünftiges
Diagramm ohne das es zu Problemen kommt.
Und wenn man die Kopierfunktion und die Formeln von Excel versteht ist
das ganze keine 10 Min. Arbeit. Wenn ich Vorgabewerte angebe die ich
einstellen kann, ca. 15 Minuten.
Und der Witz an der Sache ist, das ganze Ergebnis entspricht sogar der
Üblichen Darstellung von Daten. Weil das Diagramm ja aussagt : Die
Temperatur um 3:00 Uhr betrug xx °C . Und weil es keine Fixe Zahl ist,
sonder ein Mittelwert nimmt man einfach ein Liniendiagramm.
So einfach ist das alles. Aber Hauptsache mal über Leute lästern die so
Sachen 20 Jahre lange 2 x im Jahr gemacht haben.
Der einzige Unterschied ist, da ich bis zu 10 Mio Datensätze verarbeiten
musst für ein Diagramm.
Und da würde selbst heutzutage, jedes Excel zusammenbrechen.
Also habe ich die Daten aus den IBM-Rechner der Faktura (die
Rechnungsdatenbank) in eine SQL-Datenbank auf mein PC geschafft, und
dort in einen VB-Prg die selben Mittelwerte mit SQL-Befehlen ermittelt
und dann via VB-Zugriff die Excel-Tabelle vom Programm erstellen lassen,
mit samt den plöden Diagramm.
Das war nämlich einfacher.
Mein Chef hat sich jedes Jahr andere Nebenanalysen einfallen lassen.
So musste ich nur die SQL-Abfragen anpassen und die Beschriftungen.
Sollte der TO also weiter mit so einer Menge an Daten arbeiten, würde
ich ihm genau den selben Weg empfehlen. Nämlich den Umweg über eine
SQL-Datenbank.
Schlaumaier schrieb:> Ralf X. schrieb:>> Wenn Du Deine "Puffertabelle" um eine Mittelwerttabelle einer Umgebung>> erweiterst>> Und du liest nicht was ich schreibe.>> Weil DAS hatte ich nie vor.>> Die Puffertabelle macht nur eins. Sie verkürzt die Anzahl der Daten.>> z.b.>> Zeile 1 spalte 1 : Akt. Stunde> Zeile 1 Spalte 2 : Temperatur>> Zeile 2 Spalte 1 : 1> Zeile 2 Spalte 2 : Mittelwert aus Zeile 1-100 der Original-Tabelle.>> Zeile 3 Spalte 1 : 2> Zeile 3 Spalte 2 : Mittelwert aus Zeile 101-200 der Original-Tabelle.>> u.s.w.>> Am Ende habe ich (bei 24 Std. Daten) 24 Datenpunkte mit realistischen> Werten = Spalte 2, eine Ordentliche Beschriftung der Datenpunkte => Spalte 1.
Der TO hatte nach eigenen Angaben 360 Datensätze/h, schon da hätte Dein
"Beispielansatz" versagt.
Wie kommst Du auf die Idee, da Stunden(Mittel-)werte auswerten zu
wollen?
Und auch wenn auf die Angaben des TO eingegangen wärest und DAFÜR die
möglichen möglichst wenig verfälschenden Eigenschaften
akzeptiert/erklärt hättest, wäre das eine absolute Einzellösung, die Du
aber gerne gleich als universell erklärst, was der absolute Bullshit
ist.
Ich arbeite alle naslang mit Datentabellen mit ggf. über 100 Spalten,
ein Teil als True-Daten in unterschiedlichen Zeitintervallen, woraus
sich auch wieder neue rechnerische Daten in der Auswertung ergeben.
Und immer muss man (auch neu) überlegen, wie man eine verkürzte Tabelle
oder daraus erzeugten Graphik erstellt, die das wichtige Geschehen
abbildet.
Wer 100 Messpunkte gerecht verteilt auf eine Sinusschwingung auf einen
Mittelwert reduziert, bekommt eine Nulllinie angezeigt.
Nimmt man jeden 95sten Mittelwert, sieht es völlig anders aus.
> Und der Diagramm-Assistent macht da mit 2 Klicks ein Vernünftiges> Diagramm ohne das es zu Problemen kommt.
Der macht nur, was Du ihm sagst.
Ob das vernünftig ist, ist Sache der Datenaufbereitung.
> Und wenn man die Kopierfunktion und die Formeln von Excel versteht ist> das ganze keine 10 Min. Arbeit. Wenn ich Vorgabewerte angebe die ich> einstellen kann, ca. 15 Minuten.
Ich habe oft mit Tabellen/Datensätze diversen Erfassungsdaten im
15min-Rhythmus zu tun, andere kommen nur stündlich.
Da muss man bedeutend mehr machen, als Mittelwerte zu erstellen, um ein
Stundenergebnis darzustellen.
Oft ist es dabei auch erforderlich, Min und Max der Stunde darzustellen.
Aber wie immer kommt es auf die Sinnhaftigkeit an.
DEINE Methode mag bei Dir für Abermillionen Daten sinnvoll sein.
Kein Grund anzunehmen, dass "Deine" Idee oder Makro auf eine andere
Problematik übertragbar wäre.
> Und der Witz an der Sache ist, das ganze Ergebnis entspricht sogar der> Üblichen Darstellung von Daten. Weil das Diagramm ja aussagt : Die> Temperatur um 3:00 Uhr betrug xx °C . Und weil es keine Fixe Zahl ist,> sonder ein Mittelwert nimmt man einfach ein Liniendiagramm.>> So einfach ist das alles. Aber Hauptsache mal über Leute lästern die so> Sachen 20 Jahre lange 2 x im Jahr gemacht haben.
Es wäre toll, wenn der TO mal seinen Datensatz z.B. als csv zur
Verfügung stellen würde.
Dann wären Deine Stundenmittelwerte im Vergleich zur Originalgraphik
wohl ein Brüller.
Du hast irgendwann das Denken weitgegend reduziert und die Leistung aufs
Mundwerk/Griffel verlagert.
Schlaumaier schrieb:> Sollte der TO also weiter mit so einer Menge an Daten arbeiten, würde> ich ihm genau den selben Weg empfehlen. Nämlich den Umweg über eine> SQL-Datenbank.
Von SQL kenne ich nur die 3 Buchstaben, das wird eher nichts werden.
Wenn man in Excel die beiden Werte-Spalten nebeneinander setzt, kann man
beide Spalten kopieren und in eine *.txt Datei einfügen.
Da man gerne das macht, was man kann, habe ich meinen alten ATARI aus
dem Keller geholt und mit dem genialen GFA-Basic von Frank Ostrowski
paar Zeilen getippt. Das Programm schreibt eine Zeile und verwirft die
nächsten fünf Zeilen. Die neue *.txt Datei wieder nach Excel zurück
kopiert und fertig ist die Laube.
Einer der sich mit der Linux Shell auskennt würde das wahrscheinlich
dort in einem Einzeiler hinbekommen. Aber auch die Powershell unter WIN
dürfte das hinbekommen.
Aber man nimmt halt was man kennt.
Sascha
Hans K. schrieb:> Da man gerne das macht, was man kann, habe ich meinen alten ATARI aus> dem Keller geholt und mit dem genialen GFA-Basic von Frank Ostrowski> paar Zeilen getippt. Das Programm schreibt eine Zeile und verwirft die> nächsten fünf Zeilen. Die neue *.txt Datei wieder nach Excel zurück> kopiert und fertig ist die Laube.
Prima Programm.
Geht in VB-A von EXCEL auch.
Wenn du die MID Funktion lernst, schreibt dein Script dir die Tabelle
automatisch richtig.
Wert = val(MID (Zeile,Start,anzahl_der_zeichen))
Hänge mal hier 10 Zeilen deiner Datei rein, dann zeige ich dir wie der
Code sein muss.
Hier dein Code für das Makro.
Kleiner Tipp.
Klicke auf AUFZEICHEN, dann tippe irgendwas in irgend eine Zelle. Dann
Stop die Aufzeichnung. Nun auf Makros - > bearbeiten. Such das Makro was
du aufgezeichnet hast, entferne allen Code und fülle den hier rein.
----------------------------------------------------------------
Dim tx As String
Dim anz, akt_zeile, m_bereich, m_bereich_zahl As Integer
Dim ges_wert As Double
akt_zeile = 2 ' startzeile
m_bereich = 5 ' anz der Werte aus der der Mittelwert gebildet wird
m_bereich_zahl = 0
Open "c:\2\100_Zeilen.txt" For Input As #1 ' <- hier Pfad eintragen
Do Until EOF(1)
Line Input #1, tx
zeit = Mid(tx, 1, 6)
wert = Trim(Mid(tx, 8, 5))
ges_wert = ges_wert + wert
m_bereich_zahl = m_bereich_zahl + 1
If m_bereich_zahl = 5 Then
m_bereich_zahl = 0
ActiveSheet.Cells(akt_zeile, 1) = zeit
ActiveSheet.Cells(akt_zeile, 2) = ges_wert / m_bereich
ges_wert = 0
akt_zeile = akt_zeile + 1
End If
Loop
----------------------------------------------------------------------
Das ist alles.
Sollte funktionieren. Bei mir geht das auch.
Ach ja, Die Zellen sind nicht formatiert, und es werden keine alten
Zellen gelöscht. Entweder du lässt es über eine neue Tabelle laufen,
oder du löscht einfach vor den Start die alten Werte.
Kannst du auch mit Makro machen. Aber du sollst ja selbst was lernen. ;)
Ach mir ist gerade aufgefallen das die letzte Mittelwertberechnung nicht
geschrieben wird.
Also unter das LOOP folgende Zeile
ActiveSheet.Cells(akt_zeile, 1) = zeit
ActiveSheet.Cells(akt_zeile, 2) = ges_wert / m_bereich_zahl
Schlaumaier schrieb:> Hier dein Code für das Makro.
Mit Macros habe ich noch nie was zu tun gehabt.
Wenn ich die beiden Spalten eh schon aus Excel kopiert habe, kann ich
den Mittelwert auch unter GFA-Basic bilden. Das ist aber nicht
notwendig. Um beim Datenloggen eine Messung pro Minute zu erreichen,
reicht es völlig, die 5 Messungen zu viel (Messung alle 10 sec.) einfach
auszulassen.
Du brauchst das Makro nur nach Anleitung einbauen in deine Tabelle.
Beim nächsten mal einfach - Makros -> "anklicken das Makro" und
ausführen.
Wenn der Name und Ort der Quelle-(text-Datei) sich nicht ändert wird
automatisch alles neu eingelesen nach deinen Wünschen.
Das muss man nicht können sondern nur "durchklicken".
ActiveSheet.Cells(akt_zeile, 2) = wert
anstelle von
ActiveSheet.Cells(akt_zeile, 2) = ges_wert / m_bereich_zahl
Dann nimmt er nur jede 5 Zeile OHNE Durchschnittswert.