Hilfe bei Formel für Kalenderberechnungen

msg

msg

Aktives Mitglied
Thread Starter
Dabei seit
31.07.2005
Beiträge
1.975
Reaktionspunkte
32
Hallo Leute,

ich suche eine Formel (Excel, Libreoffice-Tabelle etc.) für folgenden Fall:

Für Berechnung von Daten muss ich immer 28 Tage auf ein eingegebenes Datum (zB mit Zahlenwert 150) drauf-addieren.
Wenn ich über 260 komme, sollte der Wert wieder bei 0 bzw. 1 beginnen.
Beispiel: Das sind dann 150, 178, 206, 234 und 262. Bei letzterer müsste man 260 abziehen, damit dann 2 angezeigt würde. Und wenn die Reihre noch weiterginge bis über 400, 500, 600 usw., dann müsste man so oft 260 abziehen, dass wiederum eine Zahl <260 dasteht.
Ich kann mir zwar herleiten, wie ich das in vielen Schritten mit Wenn/Dann usw. mühsam bewerkstellige, aber ich bin sicher, da gibt ne eigene Formel dafür...

Da ich den Namen der gewünschten Formel von Excel u.a. nicht kenne, weiß ich auch nicht, wonach ich suchen sollte.
Wenn jmd. von euch sich auskennt, was ich brauche, freue ich mich über einen Hinweis!

Danke
Liebe Grüße Sandro
 
REST(Divident;Divisor)
Das gibt dir immer den Rest bei einer möglichen ganzzahligen Division aus.

Beispiel:
REST(150;260) ergibt 150
REST(262;260) ergibt 2
REST(521;260) ergibt 1
 
  • Gefällt mir
Reaktionen: msg
danke dir!!!!
 
Wenn nun genau 260 bei der Summe herauskommt, ergibt die Formel jedoch 0!
Wie kriege ich es hin, dass dann 260 da steht? Und die nächste Stelle bei 1 beginnt?
 
aus'm Bauch heraus würde ich folgendes probieren:
REST(Wert;261)+QUOTIENT(Wert;261)
Damit teilst du immer durch 261 und addierst anschließend die Anzahl wie oft 261 reingepasst hat. Sollte so eigentlich passen.

EDIT: funktioniert nicht. Vielleicht fällt mir noch was ein
 
Code:
GANZZAHL(wert/260)*260+REST(wert;260)
 
Code:
$wert−(GANZZAHL($wert÷260)×260)

Bzw. reicht auch ein REST($wert;260), wenn ich das Problem richtig verstanden habe.
Bildschirmfoto 2021-04-08 um 13.00.20.png
 
  • Gefällt mir
Reaktionen: SirVikon und iWetterstein
Bzw. reicht auch ein REST($wert;260), wenn ich das Problem richtig verstanden habe.
reicht eben nicht. Das war doch mein erster Lösungsvorschlag... Damit bekommst du niemals 260 als Ergebnis, sondern immer nur 0 wenn die Zahl ein vielfaches von 260 ist.

Könnte man aber durch eine kleine Wenn Funktion umgehen:

WENN(REST(wert;260)=0;260;REST(wert;260)) So wird einfach die Null durch 260 ersetzt

oder anders geschrieben mit zwei Zeichen weniger ;)

WENN(REST(wert;260);REST(wert;260);260)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: tigion
arrgh, jetzt habe ich das Problem verstanden: Du willst die Zahlen von 1 - 260 durchalufen lassen und dabei immer wieder bei 1 anfangen. Das eigentlich Problem einer Formel ist daher, dass die Mathematik in einem Zahlensystem davon ausgeht, dass die Zahlen von 0 bis n-1 laufen, also im 10er System von 0 - 9. Du möchtest aber das die Mathematik der Formel REST() auf der Zahlenreihe von 1 bis n basiert (im 10er System also von 1 - 10).

Die Lösung wäre dann also erst mal den Ausgangswert um 1 verringern, so dass er wieder von 0 bis n-1 läuft und dann das Ergebnis um 1 erhöhen, um wieder die Reihenfolge von 1 bis n zu erhalten.

Somit:

Code:
REST(wert-1;260)+1

@hutzi20 das wären dann noch ein paar Zeichen weniger und sogar ohne WENN() ;)
 
  • Gefällt mir
Reaktionen: tigion und hutzi20
@hutzi20 Ja, entweder 0 bis 259 oder 1 bis 260. Bin von seinem Beispiel ausgegangen, dass bei 262 eine 2 rauskommen soll, ohne auf den Zahlenbereich zu achten.
 
Zuletzt bearbeitet:
Somit:

Code:
REST(wert-1;260)+1
@hutzi20 das wären dann noch ein paar Zeichen weniger und sogar ohne WENN() ;)
So ist es mathematisch auch am schönsten ;)... Ist der Anfangswert allerdings Null wird 260 angezeigt (genau wie bei meinem Vorschlag auch); was in leeren Zellen wieder für Verwirrung sorgen kann.

Vielleicht sollte man unsere Ideen kombinieren ;)
WENN(wert;REST((wert−1);260)+1;0)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: msg
ja, das war auch komplett daneben von mir und rumdum falsch. Erst in #9 habe ich das dann auch selbst gemerkt. :shame:
 
danke für eure Bemühungen!!!!! Alles geht so wie es soll :)
 
Zurück
Oben Unten