Clever-Excel-Forum

Normale Version: Teilweise keine Berechnung bei Indirekt-Funktionen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich nutze eine relativ große Arbeitsmappe mit etlichen Tabellenblättern. Die Blätter enthalten teils hart hineinkopierte Zahlen. Größtenteils kommen hier jedoch Formeln mit direkter Berechnung oder veränderlichen Funktionen zum Einsatz, teils aber auch Formeln, die Zahlen aus SAP ziehen. Bei den Formeln mit veränderlichen Funktionen wird häufig die Funktion „indirekt“ verwendet. Dass diese Indirekt-Formeln aufgrund der Volatilität zu einer Verlangsamung beitragen, ist klar. Das ist aber nicht das Problem.

Problematisch ist, dass einige der Zellen mit Indirekt-Formeln nicht mehr berechnet werden. Es wird der Wert 0,0000… angezeigt, obwohl dort eine Zahl erscheinen müsste. Die Zellen funktionierten, stellten dann aber irgendwann „den Dienst ein“. Bei der überwiegenden Mehrzahl der Zellen klappt es weiterhin problemlos.

An der automatischen Berechnung scheint es nicht zu liegen, der Knackpunkt ist mir bekannt. Die Formeln in diesen Zellen sind auch nicht händisch verändert worden. „Interessanterweise“ erscheinen die Nuller auch dann, wenn eine vergleichbare Formel aus funktionsfähigen Zellen hineinkopiert wird oder die Formel neu per Hand eingegeben wird. Wird eine Formel eingegeben mit sogenannter direkter Berechnung, funktioniert die Berechnung auch problemlos. Jetzt wäre es aber schlecht, alle Zellen betrachten zu müssen, um festzustellen, wo Nuller erscheinen und diese dann händisch auf alternative direkte Berechnung umzustellen. Hat jemand eine Idee?

Falls eine fehlende Berechnung an der einen oder anderen Stelle nicht „heilbar“ ist, gibt es vielleicht zumindest eine brauchbare Möglichkeit, die fehlende Berechnung direkt zu erkennen?


VG
Reiner
Hi Reiner,

ich vermute mal, Deine Datei ist sehr umfangreich. Es kann schon passieren, das sie dadurch instabil wird. Schmeiß doch mal testweise 50% der Daten / Blätter raus und schau, ob die INDIREKT-Bezüge dann wieder die richtigen Ergebnisse liefern.
Zudem nehme ich an, dass Du INDIREKT auch tatsächlich für veränderliche Zellbezüge / Blattnamen benötigst. Falls nicht, ließe sich auch möglicherweise daran schrauben (mit INDEX etc.).
Ich habe mal getestet und zahlreiche Tabellenblätter gelöscht. Dann wird korrekt gerechnet.

Die Indirekt-Funktionen würde ich gerne weiterhin verwenden, da der Umstellungsaufwand doch sehr hoch wäre. Hat jemand eine Idee, wie Excel über Fälle fehlender Berechnung informieren kann, damit in diesen Fällen eine direkte Berechnungsformel manuell eingebaut werden kann? Ich könnte mir die Nutzung bedingter Formatierungen vorstellen, die farblich darauf hinweisen, wenn der Formelinhalt 0,000… beträgt. Allerdings ist dies kein eindeutiges Kriterium, es könnte ja tatsächlich eine Null sein. Hat jemand weitere Ideen?
NO Hi,

die Bedingte Formatierung ist ein echter Speicher-/Performancefresser. Damit wird Deine Mappe vermutlich noch instabiler.
Vielleicht hat ja noch jemand anderes eine Idee - andernfalls müsste man tatsächlich an der eigentlichen „Wurzel des Übels“ indirekt schrauben…
=(ABS(A1)<1%)*(ABS(A1)>0)
Hi LCohen,

im Thread verrutscht??
Moin,

schon mal die Berechnungen auf manuell umgestellt?
Hallöchen,

ich kann mich nur Boris / Index etc. anschließen. Wenn Du noch öfter mit der Datei arbeiten willst, ist das sicher ein lohnender Aufwand.

Alternativ könnte man mit VBA den Zellinhalt prüfen, ob er mit dem erwarteten Ergebnis der in der Zelle enthaltenen Formel übereinstimmt Smile

Oder Du rechnest die Zellen gleich nochmal einzeln Smile

Code:
Public Sub Recalculate()
  Dim rngCell As Range
  For Each rngCell In Cells.SpecialCells(xlCellTypeFormulas)
    rngCell.Calculate
  Next
End Sub

Da könnte man noch eine Prüfung einbauen, ob die Formel INDIREKT enthält.
Hallo zusammen,

ich bin gerade erst wieder am Rechner, daher ein Dankeschön erst jetzt!

An der manuellen Berechnung liegt es nicht. Danke für die Tipps bzgl. INDEX und VBA-Prüfung. Werde ich prüfen!