Frage von Galdur, 44

Kann man in Microsoft Excel 2010 den Wert einer Zelle durch sich selbst (den Wert) definieren?

Moin liebe Community!

Mein Problem: Meine Mutter möchte eine Tabelle in Excel haben, in der manuell die Arbeitszeiten der Mitarbeiter eingetragen werden. Die Spalten sind im Grundlegenden "Arbeitsbeginn", "Arbeitsende", "Überstunden".

Die Tabelle arbeitet ganz einfach: Sie berechnet die Zeitdifferenz und ermittelt in Abhängigkeit von einer festen Konstante, wie viele Überstunden der jeweilige Mitarbeiter hat.

Das Problem: Ich möchte gerne in einer Zelle immer den aktuellen Wert der Überstunden angezeigt bekommen. Man müsste quasi den Wert, der in der Zelle gespeichert ist, für seine Berechnung mit einbeziehen, aber damit kommt Excel (glaube ich) nicht so einfach klar (Stichwort: Zirkelbezug).

Hat jemand von euch eine Idee, wie ich das Problem lösen kann? Ganz wichtig: Die manuelle Ausrechnung ist keine Option, es muss quasi automatisch iterativ aufsummiert werden, sobald man in der einbezogenen Zelle den Wert ändert.

Hoffe ihr könnt mir helfen :)

Gruß, Galdur

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von PWolff, Community-Experte für Mathematik, 28

Eine Funktion wie AKTUELL (in OpenOffice/LibreOffice) gibt es in Excel nicht. (Und auch in OpenOffice/LibreOffice ist sie nicht dazu gedacht, in Berechnungen einbezogen zu werden)

Damit bleibt nur ein Makro, um den Inhalt dieser Zelle immer aktuell anzupassen.

Aber das Ergebnis ist dann davon abhängig, ob man eine Zahl versehentlich doppelt eingibt und ähnlichem.

Besser wäre es allemal, den von Excel vorgesehenen Weg zu nehmen und die einzelnen Daten auch in einzelne Zellen einzutragen.

Wenn das aufgrund der Marotten des Kunden keine Option ist, muss man eben dann doch ein Makro nehmen. Und dem Kunden gegenüber andeuten, dass man gegen einen Aufpreis auch eine Korrekturmöglichkeit einbauen kann. Und auf Dauer überlegen, ob man so einen Kunden wirklcih braucht. (Wobei die letzten beiden Punkte bei Familienangehörigen mit den üblichen Problemen verknüpft sind. Mischpoche - jiddisch für Familie - ist bekanntlich nichts zum Essen, sondern was zum Kotzen.)

Expertenantwort
von Suboptimierer, Community-Experte für Excel & Mathematik, 10

Die meisten solcher Probleme, die einen Zirkelbezug bergen, lassen sich entknoten.

Klassisch würde man die Überstunden berechnen, indem man pro Tag Endezeit - Anfangszeit nimmt, diese Zeiten aufsummiert und von Sollstunden pro Tag * Anzahl Tage abzieht.

Du hast also pro Tag in einer Überstundenspalte einen kumulierenden Wert.

Expertenantwort
von Iamiam, Community-Experte für Excel, 23

Zellen gibts in xl ganz umsonst, störende kann man sogar ausblenden(ganze Zeilen/Spalten). Also in einer Zelle rechnen+speichern für den nächsten Zugriff, in der anderen das Ergebnis darstellen: wo ist das Problem?

Vielleicht willst Du den ganzen Monat in einer Zelle zusammenfassen? Davon kann ich Dir nur abraten: Jeder Tag eine Zeile ist bewährte Zeitkontenführung - und glaub mir: jede Zeitabrechnung arbeitet nach diesem Schema, weil es Narren-sicher, nachvollziebar und genau ist!

Sollte Dein Problem sein, dass Du negative Überstunden so einfach nicht darstellen kannst: auch dafür kann ich Dir auf Nachfrage eine -sogar mehrere- einfache Lösung(en) liefern!

Selbst gegen unbefugte Nachbesserungen kann man Sicherungen einbauen, das ist aber etwas aufwändiger! (und alarmt im einfachen Fall schon bei einfachem Vertippen und korrigieren)

Kommentar von Galdur ,

Hey, danke für deine Antwort.

Negative Überstunden sind nicht das Problem, aber danke für das Angebot :)

Es ist überhaupt kein Problem, immer eine neue Zelle für eine neue Speicherung zu nehmen, ich habe lediglich gefragt, ob man das elegant machen kann mithilfe von Iteration :p

Expertenantwort
von Ninombre, Community-Experte für Excel, 22

Die Anforderung ist etwas nebulös beschrieben - was ist diese Konstante? Eine Soll-Arbeitszeit je Woche oder ähnliches?
Was nichts bringt, ist mit dem Kopf durch die Wand und Excel verbiegen. Ein Zirkelbezug funktioniert nicht, eine Formel kann keinen festen Wert hinterlassen, wenn sich die zugrunde liegenden Werte ändern und iterativ läuft da auch nichts.

Wenn etwas von der Anzahl der Überstunden, die sich aus Arbeitsende-Arbeitbeginn-Sollarbeitszeit ergeben, noch abgezogen werden soll (z.B. freie Tage), dann muss das irgendwo erfasst und in der Formel berücksichtigt werden. Entweder steht eine Formel in einer Zelle oder ein fester Wert, niemals beides.

Kommentar von Galdur ,

Okay, das ist relativ schade, dann lässt sich das Problem mit Excel wohl nicht lösen.

Genau, diese Konstante ist von der Bedeutung für das Problem irrelevant, aber ja, es ist eine Soll-Anzahl an Stunden.

Ich dachte nur, es gibt vielleicht eine Art "Stack-Funktion" in Excel, welches auf einem iterativen Prinzip beruht, sodass Zellen sich selbst in ihrer Formel benutzen können (also ihren Wert). Aber na, gut, dann ist das so. Hättest du vielleicht eine andere Lösung für das Problem, das nicht auf Iteration beruht? Die Überstunden müssen quasi bei jeder Änderung der Arbeitszeit aktualisiert werden.

Kommentar von Ninombre ,

diese Formulierungen sind mir irgendwie zu kompliziert und hochtrabend für ein in Excel eigentlich simpel zu lösendes Problem

Wie schreibst Du ein Kassenbuch? Anfangsbestand, diverse Zu-/Abgänge. Endbestand = Anfangsbestand - Summe der Zu- und Abgänge. Direkt den Endstand anpassen macht ja keinen Sinn - keine Buchung ohne Beleg. Nix anders für die Überstunden.

Kommentar von Galdur ,

Wie gesagt, ob das Sinn macht oder nicht, ist nicht Gegenstand der Aufgabe. Es ist einfach die Anforderung - und hier habe ich auch eingesehen, dass dieses Problem mit Excel nicht so einfach lösbar ist (einfach vielleicht schon, aber hier steigt der Aufwand bloß für jeden Tag proportional an, in anderen Umgebungen kann man das mit 4-5 Zeilen Code abharken).

Danke aber für die Antwort :)

Kommentar von Ninombre ,

Es geht auch in Excel mit einigen Zeilen Code, wenn man es als Makro programmiert. Es springt nur keiner der Excelkenner auf diesen Lösungsweg an, weil es nicht wirklich notwendig ist bzw. es generell nicht ratsam ist, wenn es eine Standardsoftware gibt, die man nutzen möchte, diese ohne zwingenden Grund zu verbiegen.

Kommentar von Suboptimierer ,

Sehe ich genauso. Selbst wenn man das irgendwie mit Iterationen gebacken bekommen könnte, würde ich davon abraten. Das sind so Spielereien... Erfahrungsgemäß hat man an solchen Sheets nicht lange Freude. 

Also wenn es nicht nur zu Übungszwecken für das Verständnis von Interationen dienen soll: Finger weg!

Antwort
von Gerste94, 20

Warum benötigst du den für die aktuelle Anzahl an Überstunden den Wert der Zelle selbst? Wenn du diesen Wert mit verwendest, würde sich der berechnete Wert ja immer wieder ändern, da nach jeder Berechnung der Wert garnicht mehr stimmt. Das nennt sich denn Zirkelbezug.

Du musst immer aus anderen Zellen/Werten den Wert einer Zelle berechnen. Unter Umständen nimmst du eine andere Zelle mit einer Zwischenrechnung zur Hilfe und lässt dann die Zeile ausblenden.

Kommentar von Galdur ,

Ehm... genau das, was du in deinem ersten Absatz geschrieben hast, ist auch Sinn und Zweck :D - Genau das will ich.

Der Wert soll sich selbstverständlich immer ändern, sonst hätte das ganze ja keinen Sinn. Sobald man die Überstunden ändert, soll sich auch die aktuelle Anzahl der Überstunden ändern.

Was ich suche ist nach einer Art "Gedächtnis" bzw. "Speicherfähigkeit" der Zelle.

Kommentar von Gerste94 ,

Warum soll sich denn die Zelle etwas merken? Es sind ja alle Arbeitsstunden aufgeführt, also kann die Überstundenzahl wieder neu berechnet werden. An der Zelle in der die Formel steht, darf natürlich nichts verändert werden.

Kommentar von Galdur ,

Ich glaube du verstehst das Problem nicht.

Keine passende Antwort gefunden?

Fragen Sie die Community