Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Preise nach Datumszeitraum

Preise nach Datumszeitraum
01.01.2017 14:17:48
Frank
Hallo liebe Forengemeinde,
Ich wünsche allen ein gesundes und glückliches neues Jahr!
Ich habe hier schon mal Hilfe bekommen und habe versucht, nun bei einem ähnlichen Problem eine Lösung zu finden. Mein IQ reicht scheinbar nicht. Kann mir jemand helfen?
Ich möchte einen Preis in Spalte R berechnen lassen.
Je Person (Spalte H) im Zeitraum 15.März bis 30.April und 1. Oktober bis 31. Oktober = 1,10 € pro Tag
Je Person (Spalte H) im Zeitraum 1. Mai bis 30. September = 2,50 € pro Tag
Je Person (Spalte H) im Zeitraum 1. Oktober bis 14. März = 0,00 € pro Tag
Beispieldatei: https://www.herber.de/bbs/user/110279.xlsx
Was eigentlich als korrektes Ergebnis berechnet werden müsste, habe ich in Spalte S geschrieben. Gibt es hier jemanden, der mir helfen kann?
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Miet-Staffelpreise
01.01.2017 15:45:26
WF
Hi,
in R2:
=VERWEIS(F2;{0;42855;43008;43039;43173};{1,1;2,5;1,1;0;1})*H2*(F2-E2)
runterkopieren
die 5-stelligen Zahlen sind die bis-Daten 2017 / 2018
Das ist die einfache Lösung ohne Datumsüberlappungen.
Dann unsere:
http://www.excelformeln.de/formeln.html?welcher=371
WF
Anzeige
AW: Miet-Staffelpreise
01.01.2017 16:24:06
Frank
Hallo WF,
ganz herzlichen Dank für Deine Hilfe! Es klappt schon fast. Nur in einem Bereich gibt es noch Probleme. Dort wird weiterhin ein wert berechnet, obwohl eigentlich NULL das richtige Ergebnis wäre. Kannst Du mir da noch helfen?
In der Datei habe ich den fehlerhaft berechneten Wert markiert.
https://www.herber.de/bbs/user/110282.xlsx
Anzeige
reine Definitionssache
01.01.2017 16:43:55
WF
Hi,
ich schrieb ja 2017 / 2018
1. Januar bis 14. März ist bei mir 2018 (Teil von 1. Oktober bis 14. März war ja auch zuletzt in Deiner Aufstellung)
Wenn Du noch separate Daten für den Jahresbeginn 2017 hast, musst Du das entsprechende Datum davor/dazufummeln.
WF
AW: reine Definitionssache
01.01.2017 17:54:46
Frank
Vielen Dank nochmals. Nun habe ich das Prinzip verstanden.
=VERWEIS(F2;{0;42808;42855;43008;43039;43173};{0;1,1;2,5;1,1;0;1})*H2*(F2-E2)
Anzeige
Hier auch zeitraumüberschneidend - m.Korrektur R3
02.01.2017 06:09:38
lupo1
R2: {=SUMME({0.1,1.2,5.1,1.0}*WENNFEHLER(EXP(LN(
WENN(MONAT(F2)*100+TAG(F2)<{314.430.930.1030.1231};F2;DATUM(JAHR(F2);{3.4.9.10.12};{14.30.30.30.31}))-
WENN(MONAT(E2)*100+TAG(E2)>{100.314.430.930.1030};E2-1;DATUM(JAHR(E2);{1.3.4.9.10};{0.14.30.30.30}))));))*H2}
unter Bezugnahme auf
http://office-loesung.de/p/viewtopic.php?f=166&t=728550
Mangels WENNFEHLER vor xl2007 in Verbindung mit EXP(LN( wird die Formel doppelt so lang:
R2: {=SUMME({0.1,1.2,5.1,1.0}*WENN(
WENN(MONAT(F2)*100+TAG(F2)<{314.430.930.1030.1231};F2;DATUM(JAHR(F2);{3.4.9.10.12};{14.30.30.30.31}))>
WENN(MONAT(E2)*100+TAG(E2)>{100.314.430.930.1030};E2-1;DATUM(JAHR(E2);{1.3.4.9.10};{0.14.30.30.30}));
WENN(MONAT(F2)*100+TAG(F2)<{314.430.930.1030.1231};F2;DATUM(JAHR(F2);{3.4.9.10.12};{14.30.30.30.31}))-
WENN(MONAT(E2)*100+TAG(E2)>{100.314.430.930.1030};E2-1;DATUM(JAHR(E2);{1.3.4.9.10};{0.14.30.30.30}));))*H2}
In R3 kommt übrigens 80 statt 70 raus, denn 22.7-29.7 sind 8 statt 7 Tage * 2,5 * 4.
Um beide Formeln herum fehlt noch die UND-Bedingung (F2>E2)*(JAHR(F2)=JAHR(E2)); bitte selbst drum herum bauen. Was bedeutet das für die Praxis? Jahresüberschneidende Buchungen (Weihnachtsferien) müssen manuell auf beide Jahre aufgeteilt werden! Das hat den angenehmen Effekt, dass jedes Kalenderjahr für sich dargestellt wird, z.B. in Pivottabellen oder sonstigen Auswertungen, und sauber für sich steht.
Eine Lösung über Jahre hinweg wäre wohl grundsätzlich auch möglich, aber ich habe diese Einschränkung gut gefunden.
Anzeige
Frohes Neues, Walter!
02.01.2017 06:52:18
lupo1
... und Du scheinst ja auch zur Frühaufwacherfraktion zu gehören!
Ich finde, dass unsere Lösungen nichts miteinander zu tun haben.
Möglicherweise ist Deine praxisgerechter, weil sich Preise letztlich doch im Zeitablauf nur erhöhen und daher über die Jahre kaum wiederholen. Aber sie benötigt eine Hilfstabelle D6:H8, die außerdem maximal auf 2 Preisänderungen beschränkt ist. Auch das ist im Hotelbereich vermutlich ausreichend!
Bei mir wird H10 direkt ermittelt (ok, die Tage eines Jahres und deren Dotierungen gehören natürlich auch in eine Tabelle, statt hart in die Formel hineingeschrieben. Ist nur aus Verständnisgründen so!).
Nicht falsch verstehen! Ich bin als anscheinend einziger Mensch in allen Foren eigentlich absoluter Hilfszellenfreund und verfechte diese aus Size- und Performancegründen! Aber hier?
Anzeige
versteh ich nicht ?
02.01.2017 07:07:04
WF
auch ein gutes neues.
"maximal auf 2 Preisänderungen beschränkt"
In meinem link sind als Beispiel 11 verschiedene Preise.
WF
Vergleich der beiden Lösungen
02.01.2017 07:35:02
lupo1
Es geht einfach um unterschiedliche Präferenzen.
WF:
- kann fortlaufend unendlich sich ändernde Preise wiedergeben, auch über Jahre hinweg
- benötigt jedoch je eine Hilfstabelle für die Ermittlung JEDER Buchung, da bei excelformeln.de der immer wieder gleiche Fünf-Möglichkeiten-Ausgang von Zeiträumen in oder über Fixintervalle(n) hinaus anscheinend nicht gemocht wird:
=MAX(Null;MIN(ZREnde;Intervallende)-MIN(ZRAnfang;Intervallanfang)).
Ihr bringt dazu nur eine an eine Situation angepasste Version irgendwo. Diesen Fünf-Möglichkeiten-Ausgang habe ich in eine Arrayform gebracht und in ihrer Länge ab xl2007 halbiert.
lupo1:
- kann nur innerhalb eines Kalenderjahres ändern. Danach neue Formel notwendig, falls jahresübergreifend. Und geänderte Hartwerte/Bezüge notwendig, falls Änderung.
- benötigt keine Hilfstabelle pro Buchung und kann trotzdem Saisons innerhalb eines Kalenderjahres ohne Beschränkungen aufnehmen.
Fazit:
In einem Buchungssystem, welches Zeile für Zeile neue Buchungen aufweist, müssen Hilfszellen tatsächlich entweder vermieden werden, oder sich in eben dieser Zeile wiederfinden (bei Credo NO VBA).
Und letzteres ist ärgerlich, da man variabel viele Parameter besser nicht in eine Zeile, sondern in eine Tabelle einbaut. Beispiel: In vielen Adressdatenbanken stehen 2 oder 3 mögliche Telefonnummern pro Name, aber 1:1 (Tel1 und Tel2) und nicht 1:n (Tel1 bis Tel-n). Das ist entweder genau richtig oder zu wenig oder zu viel, nicht unpragmatisch, damit man programmierend dafür keine Normalisierung vornehmen muss, die manchmal eben auch nerven kann. Aber Aufträge pro Kunde wird man niemals im Kunden-Stammdatensatz finden, anders als den Grenzfall Telefonnummern.
Anzeige
5-Mögl-Ausgang korrigiert
02.01.2017 07:38:26
lupo1
=MAX(Null;MIN(ZREnde;Intervallende)-MIN(ZRAnfang;Intervallanfang))
ist falsch
=MAX(Null;MIN(ZREnde;Intervallende)-MAX(ZRAnfang;Intervallanfang))
ist richtig
AW: Vergleich der beiden Lösungen
02.01.2017 07:41:12
Frank
Vielen herzlichen Dank für Eure Mühe. Beide Ansätze haben ein Für und Wieder. sie haben auf jeden Fall bewirkt, mich mehr mit dem Thema zu beschäftigen. das werde ich nun tun. Der erste Lösungsansatz erscheint mir aktuell auch praktikabler. Das mag aber auch daran liegen, dass ich den zweiten Ansatz erst noch nachbauen muss, um ihn besser verstehen zu können. Was die Zählung der tage angeht, ist es allerdings so, dass da im 24h-Takt gezählt wird. Das hatte ich nicht dargestellt. Somit sind z.B. vom 22. bis 29.07.2017 7 Tage. Präziser wäre es gewesen, wenn ich von Nächten gesprochen hätte. Dann ergibt sich das Gemeinte sofort.
Anzeige
a) Das erste Datum gezählt, das letzte nicht
02.01.2017 07:48:21
lupo1
R2: {=SUMME({0.1,1.2,5.1,1.0}*WENNFEHLER(EXP(LN(
WENN(MONAT(F2)*100+TAG(F2) WENN(MONAT(E2)*100+TAG(E2)>{100.314.430.930.1030};E2;DATUM(JAHR(E2);{1.3.4.9.10};{0.14.30.30.30}))));))*H2}
Dafür geändert: ;E2; statt ;E2-1;
ich bin für letztes Datum zählen und erstes nicht
02.01.2017 07:58:21
WF
Hi,
der erste Tag ist der Anreisetag - ergo wurde da noch keine Nacht verbracht.
In dem download meines obigen links werden sowohl Tage als auch Nächte als Abrechnungsbasis angeboten.
WF
Anzeige
sind eh noch zwei Fehler drin
02.01.2017 08:07:25
lupo1
a) ich habe noch den 30.10. statt des 31.10. als letzten Tag für 1,10 drin stehen (Abschreibefehler)
b) ich vertüdel mich immer mit der Korrektur der diskreten Zählung von Tagen und deren korrekter Zuordnung. Stetige Begriffe wie 31:10. 0:00 sind da viel einfacher
Zusammenfassung alle 3 Fälle
02.01.2017 09:05:55
lupo1
R2: {=SUMME({0.1,1.2,5.1,1.0}*WENNFEHLER(EXP(LN(
WENN(MONAT(F2)*100+TAG(F2) WENN(MONAT(E2)*100+TAG(E2)>{101.315.501.1001.1101}-1;E2;DATUM(JAHR(E2);{1.3.5.10.11};{1.15.1.1.1})-1)));))*H2}
für 1. bis letztes genanntes Datum inklusive (also An- und Abreisetag inkl.)
R2: {=SUMME({0.1,1.2,5.1,1.0}*WENNFEHLER(EXP(LN(
WENN(MONAT(F2)*100+TAG(F2) WENN(MONAT(E2)*100+TAG(E2)>{101.315.501.1001.1101};E2;DATUM(JAHR(E2);{1.3.5.10.11};{1.15.1.1.1}))));))*H2}
für 1. bis vorletztes genanntes Datum inklusive (also ohne Abreise)
R2: {=SUMME({0.1,1.2,5.1,1.0}*WENNFEHLER(EXP(LN(
WENN(MONAT(F2)*100+TAG(F2) WENN(MONAT(E2)*100+TAG(E2)>{101.315.501.1001.1101}-1;E2;DATUM(JAHR(E2);{1.3.5.10.11};{1.15.1.1.1})-1)));))*H2}
für 2. bis letztes genanntes Datum inklusive (also ohne Anreise)
Man trennt immer zur fiktiven Datumzeit. War vorher falsch!
Anzeige
Musterdatei dazu
02.01.2017 11:28:24
lupo1
Unter Anreise kann man 1 eintragen, wenn der Anreisetag ebenfalls (mit dem Rest einschließlich Abreisetag) berücksichtigt werden soll. 2 der 3 Varianten sind somit enthalten.
Anwendungsbeispiel:
Jahreswechsel im Hotel: Benötigt zwei Erfassungen (Beipiele):
25.12.17-31.12.17, "Anreise" nicht füllen => der 25.12. wird nicht berechnet.
01.01.18-03.01.18, "Anreise" = 1
Kurzcode aus
http://office-loesung.de/p/viewtopic.php?f=166&t=728550&p=3029231#p3029231
mit Strg-C kopieren, Alt-F11, Einfügen Modul, Strg-V, F5
Die Regelung, dass der Abreisetag bezahlt wird, der Anreisetag aber normalerweise nicht, passt übrigens dazu, dass ja auch das Frühstück am Tag jeweils NACH der Übernachtung berücksichtigt wird.
Anzeige
steuerfuzzi haut hier noch einen raus!
02.01.2017 19:06:16
lupo1
{=WENNFEHLER(SUMME(VERWEIS(ZEILE(A1:INDEX(A:A;D2-C2))-1+C2;1*(Anreise&JAHR(C2));Tagespreis));) *E2*F2}
(bezieht sich auf meine dort erstellte Datei) ist nur halb so lang. Bin im Moment auch nicht unglücklich, da ich am 1.1. ein Problem habe.
;
Anzeige
Anzeige

Infobox / Tutorial

Preise nach Datumszeitraum in Excel berechnen


Schritt-für-Schritt-Anleitung

Um Preise nach einem Datumszeitraum in Excel zu berechnen, kannst du folgende Schritte befolgen:

  1. Daten vorbereiten: Stelle sicher, dass du die benötigten Daten in den entsprechenden Spalten hast. Zum Beispiel:

    • Spalte E: Startdatum
    • Spalte F: Enddatum
    • Spalte H: Anzahl der Personen
  2. Preise definieren: Lege die Preiskategorien fest:

    • 1,10 € pro Tag für den Zeitraum 15. März bis 30. April und 1. Oktober bis 31. Oktober.
    • 2,50 € pro Tag für den Zeitraum 1. Mai bis 30. September.
    • 0,00 € pro Tag für den Zeitraum 1. Oktober bis 14. März.
  3. Formel eingeben: Nutze die folgende Formel in Zelle R2, um den Preis zu berechnen:

    =VERWEIS(F2;{0;42855;43008;43039;43173};{0;1,1;2,5;1,1;0;1})*H2*(F2-E2)

    Diese Formel verwendet die VERWEIS-Funktion, um die korrekten Preise basierend auf dem Datumsbereich zu ermitteln.

  4. Formel nach unten ziehen: Ziehe die Formel nach unten, um die Berechnung auf alle relevanten Zeilen anzuwenden.


Häufige Fehler und Lösungen

  • Fehlerhafte Datumseingaben: Stelle sicher, dass die Daten in den Spalten E und F im richtigen Datumsformat eingegeben sind. Falsche Formate können zu unerwarteten Ergebnissen führen.

  • Negativer Preis: Wenn du negative Preise erhältst, überprüfe die Bedingungen in deiner Formel. Möglicherweise sind die Start- und Enddaten nicht korrekt.

  • Fehler in der Berechnung: Wenn die Berechnung nicht den erwarteten Wert ergibt, überprüfe, ob die verwendeten Daten wirklich in die definierten Zeiträume fallen.


Alternative Methoden

Eine alternative Methode zur Berechnung von Preisen im Excel-Zeitraum ist die Verwendung der SUMMEWENN-Funktion. Diese Methode kann hilfreich sein, wenn du mit umfangreichen Daten arbeitest:

=SUMMEWENN(E:E;">=Startdatum";R:R)-SUMMEWENN(F:F;">Enddatum";R:R)

Diese Formel summiert die Preise basierend auf definierten Kriterien.


Praktische Beispiele

Hier sind einige Beispiele zur Verdeutlichung:

  • Beispiel 1: Du hast 5 Personen, die vom 15. März bis 20. März bleiben. Die Berechnung wäre:

    =1,10*5*(20-15) = 22,00 €
  • Beispiel 2: Für 3 Personen, die vom 1. Mai bis 10. Mai bleiben:

    =2,50*3*(10-1) = 67,50 €

Diese praktischen Beispiele zeigen, wie du die Preise in einer Excel Preisliste berechnen kannst.


Tipps für Profis

  • Verwendung von Named Ranges: Du kannst die Zellbereiche in deiner Formel mit benannten Bereichen ersetzen, um die Lesbarkeit zu verbessern.

  • Pivot-Tabellen: Nutze Pivot-Tabellen, um die berechneten Daten übersichtlich darzustellen und Analysen durchzuführen.

  • Dynamische Preisanpassungen: Implementiere dynamische Preisanpassungen in deiner Kundenmatrix Vorlage, um saisonale Änderungen schnell anzupassen.


FAQ: Häufige Fragen

1. Wie kann ich den Zeitraum in Excel berechnen? Du kannst den Zeitraum in Excel berechnen, indem du einfach die Enddaten von den Startdaten abziehst. Verwende die Formel =F2-E2, um die Anzahl der Tage zu erhalten.

2. Was mache ich, wenn ich eine Preiserhöhung in die Berechnung einfügen möchte? Du kannst die Preiskategorien in der Formel anpassen. Ändere einfach die Werte in der VERWEIS-Funktion entsprechend deiner neuen Preisliste.

3. Kann ich mehrere Preisoptionen gleichzeitig berechnen? Ja, du kannst mehrere Preisoptionen in einer Formelnestung oder durch die Verwendung von SUMMEWENN-Funktionen kombinieren.

4. Wie funktioniert die WENNFEHLER-Funktion in diesem Kontext? Die WENNFEHLER-Funktion hilft dir, Fehler in der Berechnung zu vermeiden, indem sie stattdessen einen definierten Wert zurückgibt, falls ein Fehler auftritt.

5. Welche Excel-Version benötige ich für diese Formeln? Die beschriebenen Formeln funktionieren ab Excel 2007 und neuer. Wenn du eine ältere Version verwendest, kann es notwendig sein, die Formeln anzupassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige