dynamischer Summenbereich
#1
Hallo zusammen,

ich komme auf keine zufriedenstellende Lösung für mein Problem, welches ich kurz erläutern möchte:

Ich möchte eine dynamische Summe bilden und bin mir nicht sicher, ob dies ohne VBA funktioniert. Ich habe dafür mal ein kleines Beispiel erstellt (die Formeln sind zur Veranschaulichung nur statisch).
-> Bild befindet sich im Anhang.

In Spalte A muss für jede Zeile ein Level eingetragen werden. In Level 3 soll eine Zahl händisch eingetragen werden. Level 2 soll die Summe aller Zeilen der Stufe unter ihm zusammenfassen oder anders ausgedrückt: "Bilde mir die Summe von allen Zeilen Level 3 bis zur nächsten Zeile Level 2". Level 1 soll dann die Summe der ihm unterlegenden Level 2 bilden.
Abhängig vom Level (Spalte A) möchte ich das in Spalte B untschiedliche Formeln mit dynamischen Summenbereichen verwendet werden. Mein Problem liegt also in der Dynamik der Spalte A. So könnte beispielsweise in einem anderen Projekt Level 3 von Zeile 4 bis Zeile 11 gehen.

Ich hoffe ich habe mein Problem verständlich erklären können. Potentielle Rückenfragen probiere ich so schnell wie möglich zu beantworten. VIelen Dank schon mal im Voraus!

Lieben Gruß,
Mathi


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Hallo,

ähnliche Ergebnisse kann man mit der Funktion Teilergebnis erreichen. Wenn man statt des Bildchens eine Datei hätte, könnte man das mal testen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallo Klaus-Dieter,

Danke für die schnelle Antwort. Anbei die Datei zum Bild.


Angehängte Dateien
.xlsx   dynamischerSummenbereich.xlsx (Größe: 9,95 KB / Downloads: 6)
Antworten Top
#4
Hi,

so ganz versteh ich Deinen Aufbau nicht, denn da Du in Spalte B sowohl Formeln als auch händische Einträge hast, musst Du die Formelzellen ja immer einzeln kopieren.
In Deinem Beispiel kannst Du in B2 mal eintragen:

=SUMMEWENN(A3:INDEX(A3:A$100;VERGLEICH(2;A4:A$101;)+1);A2+1;B3:INDEX(B3:B$100;VERGLEICH(2;A4:A$101;)+1))

Formel dann aus B2 kopieren und in die anderen grauen Zellen einfügen.
Wichtig: Der letzte Eintrag in Spalte A muss die Zahl 2 sein - also in der Beispieldatei in A21 noch eine 2 eintragen, damit auch die letzte Formel den Bereich korrekt bestimmen kann.
[-] Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:
  • Tutamun
Antworten Top
#5
Hallo,

so würde das mit Teilergebnis aussehen: 

Die zweite Summe könnte man auch erzeugen, dafür braucht man aber eine weitere Spalte für die Bezüge.


Angehängte Dateien Thumbnail(s)
   
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Tutamun
Antworten Top
#6
Hallo,

anbei als Variante eine LET-Formel, die Dir die Ergebnisse jeweils ausrechnet. In B2, B3 usw. einsetzen ...

Code:
=LET(Levels;$A3:$A$20;Current;$A2;S;SEQUENZ(ZEILEN(Levels));L;WENNFEHLER(VERGLEICH(1;
  WENN(INDEX(Levels;S;1)=Current;1;0);0);MAX(S));F;WAHL(Current;2;1;0);M;WENN(S>L;0;WENN(F>0;
  WENN(INDEX(Levels;S;1)=Current+F;S;0);0));V;BEREICH.VERSCHIEBEN(Levels;0;1);SUMME(V*WENN(M>0;1;0)))

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top
#7
Hi maninweb,

also da finde ich die SUMMEWENN-Variante aber doch ein Stück einfacher Wink
Antworten Top
#8
Hallo,

Warum einfach, wenn's auch kompliziert geht Wink
Hat mich etwas gefuchst, ob das auch mit dyn. Arrays geht.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste