Excel Makro oder Formel für Zellenwert-abhängige Mittelwertbildung

Queediab

Lt. Commander
Registriert
Nov. 2007
Beiträge
1.212
Hallo,
nachdem mir hier neulich so kompetent geholfen wurde, hat sich ein weiteres Problem für mich aufgetan. Folgendes möchte ich machen:
Sagen wir Spalte B hat Zahlen (1-20 etwa) und diese Zahlen geben mir an wieviele Werte ich in Spalte C mitteln muss. Die gemittelten Werte sind dann in Spalte D. Ich kann das manuell machen aber frage mich, ob es dafür nicht ein Makro oder eine Formel in Excel gibt, die das ganze etwas beschleunigt.
Ein Beispiel habe ich angehängt.
MfG
 

Anhänge

  • Picture1.png
    Picture1.png
    116,1 KB · Aufrufe: 325
Ich wüsste keine Formel - die einzige ist die von dir erwähnte Handarbeit.

Ein Makro, dass B abläuft und sich entweder auf die Zahl oder die Anzahl der Zahl verlässt um C zu mitteln und in D einzutragen ist nichts Schweres.

Ich blicke mal einen Schritt weiter. Du musst in B doch eh eintragen wie viel zu mitteln ist. Da könnte ich glatt einfacher die Formel die das macht mit dem Bereich von bis (bei 3 von mir aus Zeilen 7 bis 9) bearbeiten.
Oder (das widerspräche aber deinem Aufbau) einfach eine weitere Spalte bemühen in der (wenn in B von steht) ein bis steht (oder in B von und dann eine Anzahl) aus denen sich dann die Mittelformel bedient in dieser Zeile das Mittel der des angegebenen Bereichs anzuzeigen, Zeile um Zeile kompakt von oben herunter.

Ein Makro wäre gut wenn die Daten aus B samt derer aus C direkt so kommen und nur noch ausgewertet werden müssen.

CN8
 
Kann man nicht über SummeWenn alle Einträge mit Nr "3" addieren ? Dann notfalls mit einer Hilfsspalte voller "1" einen Bruch bilden.

edit: Habe es falsch verstanten
 
Zuletzt bearbeitet:
in die Zelle D4:
=SUMME(C4:BEREICH.VERSCHIEBEN(C4;B4;0))/B4

Das ist nur eine Idee, das muss noch ausgearbeitet werden für dein Beispiel.
 
Zuletzt bearbeitet:
Code:
=WENN(UND(B2>1;B2<>B1);SUMME(SUMME(INDIREKT("A" & ZEILE(B2) & ":A" & (ZEILE(B2)+B2-1))))/B2;WENN(B2=1;A2;D1))
Code:
=WENN(UND(B2>1;B2<>B1);SUMME(SUMME(INDIREKT("A" & ZEILE(B2) & ":A" & (ZEILE(B2)+B2-1))))/B2;WENN(B2=1;B2;D1))

Die Werte in Spalte A, die Anzahl (farbig bei dir) in Spalte B und das Ergebnis in Spalte D.
Davor eine Zeile frei lassen (oder Überschrift oder sonst was.)

Getestet in LibreOffice, sollte aber genau so auch in Excel tun. Wobei ein Makro mit einer Schleife über die zu mittelnden Werte sicherlich eleganter wäre.

Edit: Das funktioniert allerdings dann nicht mehr, wenn du in deiner Liste bspw. zweimal hintereinander 5 zu mittelnde Werte hast. In dem Fall wird in allen 10 Zeilen der Mittelwert der ersten fünf Zeilen eingetragen. Mit einem Makro könntest du sagen, dass du von Beginn der Liste an sukzessive alle Zeilen durchgehst und immer bei erreichen eines Abschnitts neu anfängst.

Edit: Hatte mich vertippt, in der Datei ist das noch falsch. Es muss natürlich in der Formel hinten für B2=1 A2 sattt B2 genommen werden.
 

Anhänge

  • zeilen_mitteln.ods.zip
    10,1 KB · Aufrufe: 211
Zuletzt bearbeitet:
Ich gehe deine Fragestellung mal von einer anderen Seite an:
Woher kommt denn die Info aus deiner Spalte B ?
Mir kommt diese Art von Liste etwas komisch vor.

Wenn in Spalte B z.B. anstatt die Anzahl der dazugehörigen Zeilen ein Gruppennahme stünde, könnte man diese Info nutzen.
In deiner Spalte B stünde dann zB. als Name:
a
b
c
c
d
e
f
f
f
g
g
g
g
etc.

Dann kannst du mit Zählenwenn und Summewenn arbeiten und in D2 folgendes schreiben:
=SUMMEWENN(B:B;B2;C:C)/ZÄHLENWENN(B:B;B2)

Vllt gibt es aber noch eine bessere Lösung, die genau auf deine Tabelle passt.
 
@engine
Ich glaube zwar nicht, dass der TE noch nach einer Lösung sucht.
Aber wenn, dürfte man noch anmerken, dass deine Formel, so weit ich das sehe, immer nur für die erste Zeile eines neuen Blocks das gewünschte Ergebnis ausgeben wird. Danach wird sie einfach die unteren Zeilen dazumitteln.
Du wirst also wahrscheinlich um eine Wenn-Abfrage wie bei mir nicht drum rum kommen.

So gesehen ist dann vielleicht doch meine die bessere Lösung, die genau auf die Tabelle passt, meinst du nicht? ;-P
 
Natürlich brauche ich eine Wenn Abfrage für die Grenzen, aber die Notwendigkeit der Ausarbeiten hatte ich doch erwähnt.
Ich nehme mir mal 5min für die Ausarbeitung :) und meine obige Formel wird etwas erweitert.
Für die Zelle D2: =WENN(UND(B2=B1;B2<>1);D1;SUMME(C2:BEREICH.VERSCHIEBEN(C2;B2-1;0))/B2) und herunter ziehen.
gemittelte Werte.JPG
 
Also wenn ich mir die Lösungen so anschau und probiere komm ich nicht auf die Lösungswerte des TEs.

Hier mal meine Lösung:
Matrixformel (rote Spalte) nicht nur mit [ENTER] abschließen, sondern mit [STRG]+[SHIFT]+[ENTER].
Die Hilfsspalte ist leider notwendig.
Ergänzung ()

OK. Sorry engine.
Deins hab ich übersehen ;)
 

Anhänge

  • mittelwerte.xlsx
    11,4 KB · Aufrufe: 247
Zurück
Oben