Anzahl Monate zw. 2 Datumsangaben
#11
Hallo Luc Lac,

ich versuch einmal deine Fragen zu beantworten.

Zu:
Zitat:Ich verstehe diese Min und Max nicht wirklich; ist das so programmiertechnisch so und ist das etwas getrickt?

Aus meiner Sicht ist dies nicht getrickst, sondern die effektivste Form Schnittmengen von Intervallen zu berechnen.

1) Wenn sich zwei Intervalle irgendwie überschneiden muss ich für die Untergrenze der Schnittmenge das Maximum der Untergrenzen und für die Obergrenze der Schnittmenge das Minimum der Obergrenzen ermitteln.

2) Wenn sich die Intervalle nicht überschneiden (in deinem Fall die gesamte Dauer ausserhalb von 2016 ist), dann habe ich nach der Berechnung "1)" entweder (wenn die gesamte Dauer vor 2016 liegt) ein Intervall mit
  a) von= 1.1.16 und bis= alte Obergrenze (<= 1.1.16)
oder (wenn die gesamte Dauer nach 2016 liegt) ein Intervall mit
 b) von = alte Untergrenze (>= 1.1.17) und bis = 1.1.17.
Auf jeden Fall ist dann die Untergrenze grösser oder gleich der Obergrenze.
Da die Funktion DateDif einen Fehler ausgibt, wenn die Obergrenze kleiner als die Untergrenze ist, konnte ich dies mit der Funktioin Wennfehler abfangen.
Die Funktion Tage 360 liefert aber in diesem Fall negative Werte. Daher muss ich hier
  im Fall  a) die Untergrenze der Schnittmenge auf alte Obergrenze
und
  im Fall  b) die Obergrenze der Schnittmenge auf die alte Untergrenze
setzen und erhalte ein Intervall der Länge 0.


Zu:

Zitat:Wegen den Monatsangaben hast du recht. Besser wäre es wenn man konsequent, die daten von 01. und bis 01. einträgt. welche Formel würdest du da empfehlen?

Jedoch muss ich die Berechnung anhand der mir gegeben Daten so berechnen und darf die nicht umändern.

Die Aussagen verstehe ich nicht in Kombination, wieso fragst du nach einer Abänderung, wenn es für dich gar nicht möglich ist?

Aber wichtig ist doch, ob mit dem 15. immer die Mitte des Monats und mit dem ersten oder letzten immer das Ende eines Monats gemeint ist.
Dann must du bei der Berechnung der Intervalllängen die Grenzen für Excel entweder in zwei Hilfsspalten oder in der Formel anpassen.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#12
Warum keine Berechnung basiert auf Tagen ?
Die Input ist tagesgenau, das Ergebnis jahresgenau. Dann sind Monaten nur komplizierende Faktoren.
Ohne hilsspalten geht's auch.


Code:
=B5/(D5-C5)*SUMPRODUCT(N(YEAR(ROW(INDIRECT(C5&":"&D5)))=2016))


Angehängte Dateien
.xlsx   __Produkkosten2016 snb.xlsx (Größe: 10,39 KB / Downloads: 2)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste