Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1532to1536
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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?

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
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)
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
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
Anzeige
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge