Hallo zusammen,
ich bräuchte mal eure Hilfe. Diesmal geht es um ein VBA-Programm bzw. -Funktion.
Folgender Sachverhalt:
Ich habe Rohdaten in einer Textdatei, die ich mir in Excel importiere. Diese Rohdaten bestehen aus einer Vielzahl an Zahlen, aufgegliedert nach verschiedenen "Szenarien". Die Szenarien sind jeweils unter einander gelistet und bestehen aus 80 Zeilen und 260 Spalten.
Zur besseren Verständlichkeit lade ich eine Beispieldatei hoch. Hierin ist allerdings nur ein Ausschnitt enthalten, da die Anzahl an Szenarien später vmtl. bei 1000+ liegen wird.
Das Ziel besteht nun darin, aus diesen Rohdaten in jeweils einem neuen Tabellenblatt folgendes zu berechnen:
Mittelwert
Maximum
Minimum
Standardabweichung
Zur Berechnung sollen jeweils alle Zahlen herangezogen werden, die in den verschiedenen Szenarien an derselben Stelle stehen. Als Beispiel: Für den ersten Mittelwert der neuen Tabelle (A2) sollen die Zellen A2, A84, A166, A248 , etc. herangezogen werden. Hierbei ist sicher hilfreich zu wissen, dass die jeweiligen Zahlen immer an derselben Stelle stehen - sie sind immer 82 Zeilen auseinander. Die Berechnung soll dann für jede Zelle durchgeführt werden. Am Ende ist das Ziel eine einzige Tabelle (bzw. für Mittelwert, max, min, Sigma jeweils eine) aus der Vielzahl an Szenarien zu erhalten. Die Tabelle ist dann wiederum 80x260 groß.
Ich hoffe das ist soweit verständlich.
Ich habe bei der Beispieldatei im Tabellenblatt Mittelwert über eine Formel eingetragen, wie die Berechnung stattfinden soll:
https://www.herber.de/bbs/user/158344.xlsb
Ich habe das ganze auch bereits über eine Formel berechnet, allerdings ist das sehr rechenlastig (zudem muss die Berechnung nur einmal durchgeführt werden. Die Rohdaten ändern sich nicht bzw. für neue Rohdaten wird das Makro dann einfach nochmals durchgeführt. Es braucht also keine permanenten Verlinkungen).
Formel in Zelle A2:
=MITTELWERT(Rohdaten!A2;WENN(REST(ZEILE(INDIREKT("Rohdaten!"&ADRESSE(1;SPALTE(A2))&":"&ADRESSE(VERGLEICH(0;Rohdaten!A:A;-1);SPALTE(A2))))-ZEILE(A2);82)=0;INDIREKT("Rohdaten!"&ADRESSE(1;SPALTE(A2))&":"&ADRESSE(VERGLEICH(0;Rohdaten!A:A;-1);SPALTE(A2)))))
Ich wäre über eure Hilfe wirklich sehr dankbar!
Viele Grüße
Andre
PS: Falls es auch über eine simple Formel funktioniert, hätte ich auch nichts dagegen :)