Normalerweise erweitert Excel den Bereich der „Summen“-Funktion automatisch, wenn man eine neue Zeile über der Ergebniszeile einfügt. So fließen die neu eingetragenen Werte im Regelfall sofort mit in die Summe ein. In einer Tabelle klappt das aber, aus welchem Grund auch immer, einfach nicht. Außer in der Spalte A, in der ich das nicht benötige. Den Grund konnte ich nicht finden, aber einen Workaround den ich dir hier zeige.
Automatische Summe in Excel dynamisieren
Ich habe die Ergebniszeilen mit Hilfe der Indirekt-Funktion wie folgt dynamisch gemacht:
1 |
=SUMME(INDIREKT("B2:B"&ZEILE()-1)) |
Durch die Nutzung der „Indirekt“-Funktion kann man den Bereich, den die „Summen“-Funktion berücksichtigen soll, erst einmal aus Strings bzw. den Ergebnissen anderer Funktionen zusammensetzen. Die entsprechende Zeilennummer der Zeile vor der Ergebniszeile holt man sich mit Hilfe der „Zeilen“-Funktion. Diese gibt die Nummer der aktuellen Zeile aus, von welcher man eine Eins subtrahiert. So erhält man immer die „Vorgänger“-Zeile.
1 |
=ZEILE() |
1 |
=ZEILE()-1 |
Fazit: Der einzige Nachteil ist, dass man auf diese Weise die Funktion nicht mehr nach rechts oder links weiterziehen kann. Denn „B2:B“ liegt nun als String vor und kann nicht mehr durch Excel selber abgeändert werden.
Summen-Funktion noch dynamischer gestalten
Aber wenn man es doch noch dynamischer braucht und auch den Buchstaben der Spalten in der Formel automatisch anpassen lassen will, dann geht das wie folgt:
1 |
=SUMME(INDIREKT(WECHSELN(ADRESSE(1;SPALTE();4);1;)&"2:"&WECHSELN(ADRESSE(1;SPALTE();4);1;)&ZEILE()-1)) |
Das wirkt etwas kryptisch, ist aber eigentlich recht einfach. Mit Hilfe der „Spalte“-Funktion kann man sich, wie auch schon mit der Zeilen-Funktion, die aktuelle Spalte ausgeben lassen. Einziges Problem ist, dass diese nicht als Buchstabe sondern als Zahl ausgegeben wird. Deshalb kann man diese Funktion im Gegensatz zur „Zeilen“-Funktion nicht direkt in einer „Indirekt“-Funktion verwerten.
Deshalb muss man das Ergebnis der „Spalten“-Funktion erst einmal in einen Buchstaben umwandeln. Dies geht mit folgender Formel bzw. folgenden Funktionen, die ich an dieser Stelle nicht weiter erläutern werde:
1 |
=WECHSELN(ADRESSE(1;SPALTE();4);1;) |
Wozu das Ganze?
Manchmal geht einem etwas nach Jahren so auf den Nerv, dass man sich endlich die paar Minuten Zeit nimmt um das Problem doch mal zu lösen. Das ganze habe ich übrigens für folgende Tabelle, mit der ich den Spritverbrauch unseres Autos festhalte, benötigt.
Der Witz ist, dass ich diese eigentlich gar nicht mehr brauche. Denn die Ausgaben für den Sprit sind mir aufgrund des überschaubaren Verbrauchs eigentlich sowieso mittlerweile egal 😀
Excel: Sortieren – Spalten sortieren nach Datum oder alphabetisch
Excel: Filter setzen – Filter einfügen in Excel-Tabelle
Excel: Runden – Kaufmännisch runden und alle Runden-Funktionen
Excel: Oberste Zeile fixieren – Spalten und Zeilen fixieren
Goto in C#, Python, PHP, Excel VBA, Bash, PowerShell nutzen?
Excel- bzw. CSV-Datei in vCard umwandeln mit Freeware
Excel: AutoSumme funktioniert nicht – automatisch berechnen
Excel-Datei öffnet langsam – Tabellen öffnen dauert sehr lange
Excel: Kalenderwoche aus Datum ermitteln - Formel für KW
Dokumentation der Gebäude-Verkabelung mit Excel
Trennzeichen bei Dezimalzahlen in Excel plötzlich falsch
Makros per Gruppenrichtlinie deaktivieren
Makros signieren
Nutzung falscher Programme