Diese Anfrage habe ich schon mal an die Experten im Forum gerichtet. Leider gab es keine Lösung. Deshalb ein neuer Versuch.
Hier mein Problem: Ich habe im Excel eine Tabelle mit 154000 Zeilen und 20 Spalten.
Jede Zeile repräsentiert ein Messergebnis.
4 Zeilen entsprechen 1 Minute Messdauer
240 Zeilen entsprechen 1 Stunde Messzeit
Ich möchte nun jeweils 240 Zeilen (1Stunde) gruppieren, aus den Werten den Mittelwert berechnen, und die Stundenwerte später in eine Grafik überführen.
Mit den normalen Bordmitteln von Excel 2010 funktioniert das nicht. VBA Programmierung ist nicht meine Welt.
Hy zenogra,
du kannst dir pro Zeile einen gleichen Wert errechnen (STUNDE, auf eindeutigkeit achten) und dann nach diesem Wert die TEILERGEBNISSE einschalten. (unter Funktionsleite DATEN)
Dies sollte dich deutlich weiter nach vorn bringen.
Alternativ die gesamte Tabelle markieren (mit der neuen Spalte STUNDE) und dann Einfügen PivotTable.
Also ehrlich gesagt verstehe ich dein Problem nicht so wirklich. Was hindert dich daran am Ende der 240 Zeilen den Mittelwert auszurechnen?
Den Trick mit dem Doppelklick auf das schwarze Quadrat rechts unten an der Zelle kennst du, oder?
Das mit der Grafik würde ich so lösen, dass ich ein extra Arbeitsblatt nehme, auf die Zahlen aus dem anderen Arbeitsblatt verweise und daraus dann die Grafik erstelle.
Damit du die Verweise alle 240 Zeilen hinbekommst kann man Exel austricksen.
Du verweist auf das erste Ergebnis (also Zeile 240), dann in den nächsten Zeile auf das zweite(also Zeile 480). Wenn du jetzt die Formel automatisch weiterziehst klappt das nicht.
Wenn du aber das Gleichheitszeichen durch Leerzeichen Gleichheitszeichen ersetzt, hast du die Formel in der Zelle stehen, ohne dass sie berechnet wird.
Diese beiden (also 240 und 480) markieren, unten rechts an der Zelle anfassen (der Cursor wird zu einem schwarzen Kreuz) und einfach runter ziehen. Dann nur noch " =" wieder durch „=“ ersetzten und die Ergebnisse sind da.
Falls das irgendwie verwirrend klingt (besser kann ich es im Moment nicht beschreiben) frag nochmal konkret nach.
schade, dass VBA nicht deine Welt ist. Mit vielleicht 10 bis 15 Zeilen Code würde sich das ganze fix und Problemlos genau nach deinen Wünschen umsetzen lassen.
An „normalen“ Bordmitteln fallen mir leider keine spontan an. Vieleicht ließe sich etwas umständliches über eine VERGLEICH-Formel oder ähnliches bewerkstelligen.
Doch gerade für diese Aufgabe ist VBA wirklich das einfachste.
Wenn du mir eine Mustertabelle schickst, dann kann ich eventuell auch die paar Zeilen schreiben. Kann aber ein paar Tage dauern, da ich Land unter bin.
leider kann ich mir die Tabelle noch nicht ganz vorstellen. Ich würde versuchen über gemeinsame Kriterien die gesuchten Summen zu bilden und im Anscluss halt den entsprechenden Mittelwert bilden.
Leider ist eine genauere Antwort aus meiner Sicht nur mit einer genaueren Beschreibung der Tabelle möglich (am besten Anhand einer Beispiel-Datei).
Hallo,
ohne VBA wirst du wohl keine saubere Lösung hinbekommen. Versuch aber mal folgendes:
Zunächst eine Spalte A mit den Zeilennummern anfügen. Dann schreibst du in B240:
=WENN(REST(A240/240)=0;MITTELWERT(C1:C240);„“)
Das ziehst du dann nach unten.
Vielleicht kannst du das schon direkt als Graph darstellen. Falls nicht wird das ohne VBA etwas schwieriger.
In Spalte Z schreibst du:
=WENN(REST(A240/240)=0;A240/240;„“)
Die ganze Tabelle kopieren und in eine neue Tabelle „Inhalte einfügen –> Werte“. Dann kannst du Spalte C löschen und nach Z sortieren … fertig.
ich wundere mich, dass du bei deiner ersten Anfrage keine Hilfe bekommen hast. Wenn ich dein Problem richtig verstanden habe, dann kommst du OHNE VBA aus.
Dein Problem ist das Gruppieren in 240er Päckchen. Ich denke, wenn du dann eine Summe pro Päckchen bilden kannst, dann ist der Rest einfach (Mittelwerte, Diagramme, etc)
Füge neben deiner Tabelle noch eine weitere Spalte direkt anschließend ein. In dieser neuen Spalte bilden wir eine Zahl, die pro 240er Päckchen gebildet wird. Das Ergebnis wäre also von Zeile 3 bis 242 eine 1 und von Zeile 243 bis 482 eine 2, usw.
Das geht mit folgendem Ungetüm:
=AUFRUNDEN((ZEILE(A3)-2)/240;0)
Wie funktioniert das: du nimmst die Zeilennummer als Hilfsnummerierung und ziehst den „irgendwo“ Beginn ab, so dass dein erster Eintrag auch eine 1 ergibt. Beispiel:
Dein erster Eintrag ist in Zeile 3 - dann ziehst du 2 ab, ergo ergibt sich eine 1 für deinen ersten Eintrag. Die nächste Zeile ergäbe dann eine 2, usw.
Das jeweilige Ergebnis (DEINE Zeilennummer) teilst du durch 240. Das Ergebnis wäre eine krumme Zahl.
Die krumme Zahl rundest du auf die nächste Zahl auf.
Nachdem du die Formel eingetragen hast, stehen in den ersten 240 Zeilen jeweils eine 1 und in den nächsten 240 Zeilen jeweils eine 2, usw.
Jetzt kommt dein nächstes Problem:
Du musst Ergebnisse zusammenfassen/errechnen und zwar für die jeweiligen Päckchen. Das machst du mit einem weiteren Bereich neben deiner Riesentabelle.
In dem Bereich trägst du in der ersten Spalte (bei mir ist es die Spalte H) die Zahlen 1, 2, 3 bis (154000/240) ein. Dabei hilft dir der Ausfüll-Assistent. Neben der ersten Spalte kommen dann deine Auswertungsformeln.
In meinem Beispiel:
=SUMMEWENN($F$3:blush:F$15403;H3;$A$3:blush:A$15403)
Was macht die Formel (du solltest evtl. nachlesen!)
Die Spalte F (du solltest dort 154003 anstatt 15403 eintragen) sucht eine Päckchennummer - und zwar die Nummer, die in Zelle H3 steht. Wann immer dort diese Zahl gefunden wird, werden die Inhalte der Spalte A addiert.
Wenn du mehr Spalten auswerten willst, dann musst du eben eine dritte, vierte, … Spalte mit der Summewenn-Formel füllen.
Diese Formel bildet den Mittelwert der ersten 240 Werte in der Spalte A der Daten-Tabelle. wenn deine Werte erst in der 5. Zeile beginnen, so ändere den Bezug von A$1 auf A$5 sowie A$240 auf A$245.
Diese Formel kannst du für alle Spalten einfach nach unten bzw. nach rechts kopieren, so dass du in der Tab. „Auswertung“ die von dir gesuchten Werte zur Weiterverarbeitung für die Grafik hast.
Die Grafik zu erstellen dürfte dann eigentlich kein problem mehr sein.
viele Grüße
Kai