Clever-Excel-Forum

Normale Version: Formel auf Zelle der vorherigen Zeile beziehen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe folgendes Anliegen:

Bei einer sehr umfangreichen Datenauswertung soll Excel den Mittelwert über bestimmte Bereiche bilden, also z.B: =MITTELWERT(B1:B50)
Auf diesen Mittelwert folgend soll dann der Mittelwert von (B51:100) gebildet werden. Darauf folgend dann (B101:B150) und so weiter. Also ist das Ende des vorherigen Bereichs der Beginn des neuen Bereichs.
Wenn ich allerdings zwei drei Zeilen mit der Mittelwert-Formel befülle und dann versuche die Formel automatisch auf alle weiteren Bereiche anwenden zu lassen, führt Excel die Formel (B1:B50) mit (B2:B51), (B3:B52)... fort.

Könnt ihr mir sagen, wie ich das am einfachsten anpasse?


Danke und Grüße!
Toby
Hallo Tobi,

könnte mit der Funktion Teilergebnis gehen, falls deine Abschnitte irgend einen gemeinsamen Nenner haben.
Hallo Toby , ein Gedanke dazu:

=MITTELWERT(INDIREKT("B"&(ZEILE(A1)-1)*$D$2+1&":B"&(ZEILE(A2)-1)*$D$2))
Formel rein kopieren und runter ziehen.
In D2 habe ich die Schrittweite eingefügt, hier kann natürlich für dein Beispiel auch 50 stehen.

Gruß Holger
Hi Tobi,

mein Vorschlag:

Arbeitsblatt mit dem Namen 'Tabelle1'
ABC
1ZahlenreiheMittelwertBlock
2125,5A2 - A51
32
43
4948
5049
5150
525175,5A52 - A101
5352
5453
9998
10099
101100
102101125,5A102 - A151
103102
104103
105104

ZelleFormel
B2=WENN(REST(ZEILE()-1;50)=50-49;MITTELWERT(A2:A51);"")
C2=WENN(ISTZAHL(B2);"A"&ZEILE()&" - "&"A"&ZEILE()+49;"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Geht auch ohne INDIREKT():
=MITTELWERT(INDEX(B:B;ZEILE(A1)*50-49):INDEX(B:B;ZEILE(A1)*50))
herunterziehen …

BC
1125,5
2275,5
33125,5
44175,5
55225,5
66275,5
77325,5
88
99
1010
1111
1212
1313
1414
1515
1616
1717
1818
1919
2020

ZelleFormel
C1=MITTELWERT(INDEX(B:B;ZEILE(A1)*50-49):INDEX(B:B;ZEILE(A1)*50))

Gruß Ralf
Habe das Problem mit eurer Hilfe gelöst bekommen. 

=MITTELWERT(INDEX(B:B;ZEILE(B2)+$AV2):INDEX(B:B;ZEILE(B61)+$AV2))

In der Spalte AV steht bei mir nun 0x59,1x59,2x59... Dadurch kann ich die Zeit relativ einfach variieren. 


Vielen Dank und ein frohes Weihnachtsfest euch allen.
Oder


Code:
Sub M_snb()
  With ThisWorkbook.Sheets("DPV1")
    sn = Array(.Range("A3"), Format(.Range("B1"), "m_yyyy"), Application.TemplatesPath & "\DPV1_" & Format(Now, "ddmmyyyy_hhmm") & ".xlsx")
  End With
    
  Sheets("DPV1").Copy
  With ActiveWorkbook
    .Sheets(1).UsedRange.Value = Sheets(1).UsedRange.Value
    .SaveAs sn(2)
    .Close 0
  End With
   
  With CreateObject("Outlook.Application").CreateItem(0)
    .To = "My.Kollegen@mail.de"
    .Subject = "Dienstplan - Gruppe: " & sn(0) & " - Monat: " & sn(1) & " - " & Now
    .Attachments.Add sn(2)
    .Body = "Öffnen auf eigenem Gefahr"
    .Send
  End With
End Sub
Hallo, so kurz vor dem Jahreswechsel eine Power Query Variante (also aktualisieren nicht vergessen) 

[attachment=21621]