Ärgernis:
In D4 steht die Formel =D3+C4, die herunterkopiert ist. Fügt man eine neue Zeile 4 ein, ändert sie sich zu =D3+C5.
Kopiert man nun von D3: =D2+C3 die Formel in die leere Zelle D4: =D3+C4, wird D3 zweimal direkt in den Saldo einbezogen. Dem kann man nur abhelfen, indem man von D3 aus <Ende> <Unten> betätigt und die Markierung (D3:D5) mit <Strg-U> ausfüllt.
Generationen von Steuerberatern wissen davon ein Lied zu singen, wenn sie endlich auf die Ursache falscher Verprobungen stoßen.
Abhilfe:
D4: Ausführung von Einfügen Namen Definieren Name Saldo bezieht sich auf: =D3+C4
(1) D4: =Saldo
Erklärung:
(1) stellt keinen relativen Bezug dar, sondern einen "unbeeinflussbar relativen" Bezug: Einen Vektor. So wie =Z[-1]S+ZS[-1].
Der Vektor zeigt immer auf die jeweils vorige Zeile und Spalte, auch wenn sie eingefügt wird. Ein relativer Bezug hingegen behält die Zelle fest, auf die er einmal bezogen wurde. "Relativ" zeigt er sich nur beim Kopieren.
Ohne benannte Formel funktioniert das übrigens auch mit den spezialisierten Vektoren
(2) D4: =INDIREKT(ADRESSE(ZEILE()-1;SPALTE()))+C4
(3) D4: =BEREICH.VERSCHIEBEN(C4;-1;1)+C4
(2) ist flexibler als (1) oder (3), weil eine Spalte D folgenlos eingefügt werden kann. Der Vektor verhält sich nämlich bezüglich der Zelle C4 in seiner eigenen Zeile 4 wie ein gewohnter relativer Bezug. (3) hingegen verlöre den Bezug zur dann richtigen Zelle E3 in der Vorzeile, entwickelt also zu (1) kaum Zusatznutzen.
Erst
(4) D4: =INDIREKT(ADRESSE(ZEILE()-1;SPALTE()))+INDIREKT(ADRESSE(ZEILE();SPALTE()-1))
- obwohl leider länger - entspricht (1) voll als Vektor, der sich eben durch Nichtbezug auf eine bestimmte Zelle auszeichnet. Bei der Wahl allerdings, ob man keine oder gleich acht Funktionen bemüht, neigt dann doch so mancher zur Lösung (1).
Für spezielle Anwendungen:
Intern wird =D3+C4 zu =Tabelle1!D3+Tabelle1!C4 umgewandelt, ist also nur auf Tabelle1 gültig. Von der naheliegenden arbeitsmappenweiten Lösung =!D3+!C4 muss in Verbindung mit VBA (Calculate) abgeraten werden. Ohne VBA scheint es zu funktionieren; auch bei automatischer Neuberechnung wird die Formel jedoch nur bei Strg-Alt-F9, F2 oder Editierung oder Kopieren der benannten Formel selbst aktualisiert. Wird VBA hingegen eingesetzt, kann man die !Namen (hier Saldo und Saldo1) redefinieren, was aber in Kalkulationsreihenfolge geschehen muss (!):
Sub Makro1()
ActiveWorkbook.Names.Add Name:="Saldo",
RefersToR1C1:="=0"
ActiveWorkbook.Names.Add Name:="Saldo",
RefersToR1C1:="=!RC[-1]+!R[-1]C"
ActiveWorkbook.Names.Add Name:="Saldo1",
RefersToR1C1:="=0"
ActiveWorkbook.Names.Add Name:="Saldo1",
RefersToR1C1:="=!RC[-2]+!RC[-1]+!R[-1]C"
End Sub
Prüfen Sie Ihr Modell daher unbedingt auf Herz und Nieren! !Namen sind höchst fehlerträchtig!