Excel-Formel gesucht: Verfügbarkeit nach Datum UND Uhrzeit prüfen?

vorher - (Microsoft Excel, Formel, Office) nachher - (Microsoft Excel, Formel, Office)

4 Antworten

Du brauchst ja auch noch die Wunschzeiten!

Dann musst Du die Anfangs- und Endzeiten wechselseitig verschränkt abfragen:

Also schreib  in A3 (wie schon Ausgeliehen von) zB: 15.05.2016 00:00:00

und in B3 (ausgeliehen Bis) zB: 16.05.2016 00:00:00

in C3 (wie Call for): zB: 16.05.2016 00:00:00

und in D3 (wie Dsurück) zB: 18.05.2016 00:00:00

Die Eingabe der Uhrzeit kannst Du dir sparen, wenn es um ganze Tage geht und Du den Folgetag der Rückgabe einträgst. Mit Uhrzeiten gehts aber selbstverständlich auch. Bei der Rückgabe solltest du einen Sicherheitszuschlag (nach Ermessen/Erfahrung) einplanen.

Formel: '=WENN((A3>C3)*(A3◄D3)+(B3>C3)*(B3◄D3)+(C3>A3)*(C3◄B3)+(D3>A3)*(D3◄B3);"sorry";"geht")

gleichbedeutend mit: '=WENN(ODER(UND(A3>C3;A3◄D3);UND(B3>C3;B3◄D3);UND(C3>A3;C3◄B3);UND(D3>A3;D3◄B3));"sorry";"geht")

Die ◄ musst Du alle durch < ersetzen, der GF-Editor lässt mich das nicht reinkopieren. Hinterher das Hochkomma vor dem = entfernen.

Wenn du nun die Zeiten probeweise variierst, kannst du alle möglichen Situationen nachstellen.

Wir deine Anfrage vereinbart als Ausleihe, kannst Du in zB A5 =C3 und in B5 =D3 schreiben (kopierbar, wenn auch nur geringe Erleichterung) oder die Formel 2 nach rechts kopieren und in E und F neue Prüfanfrage-Zeiten eintragen

Am besten verschiebst Du die Spalte mit dem individuellen Fahrradnamen noch nach ganz links, dann kommt sich nichts in die Quere!

eine einfachere Lösung fällt mir nicht ein!

Iamiam  24.12.2016, 00:30

sehe grade noch einen Fehler: wenn exakt die gleichen Datümer/Zeiten verwendet werden (100%ige Überschneidung) wird das als möglich interpretiert. Die Formel wird sich dadurch verkomplizieren, hab die Lösung zwar schon im Kopf (zusätzlich noch einen Mittelwert abfragen, einmal reicht da), kann sie aber vor Hl.Abend vorr. nicht mehr übermitteln!

1
Iamiam  24.12.2016, 00:52
@Iamiam

so. jetzt hab ichs doch noch auf die Schnelle hingekriegt:

'=WENN((A3>C3)*(A3◄D3)+(B3>C3)*(B3◄D3)+((A3+B3)/2>C3)*((A3+B3)/2◄D3)+(C3>A3)*(C3◄B3)+(D3>A3)*(D3◄B3);"sorry";"geht")

1
Dennisthek1nq 
Fragesteller
 27.12.2016, 07:38
@Iamiam

Vielen lieben Dank für deine Mühen an Heiligabend!

 

Deine Formel klingt an sich ja echt spitze, aber wenn ich dir richtig deute, vergleicht die nur die Wunschzeiten mit dem einen Datensatz in Zeile 3.

Ich muss aber ja die Wunschzeiten mit jedem Datensatz abgleichen.

Also A2:A1000, B2:B1000 u.s.w.

Allerdings könnte ich das so machen, dass ich die Wunschzeiten aus der letzten Zeile in alle anderen kopiere und danach mit VBA nach einer Zeile mit "sorry" suche.

0
Iamiam  27.12.2016, 14:55
@Dennisthek1nq

wenn Du mit meiner Datenanordnung zurechtkommst, wie beschrieben, werde ich mich aufgrund dessen des Themas nochmal annehmen, allerdings erst heute spät am Abend. Mit Matrixformeln sollte da was gehen, hab aber noch keine rechte Vorstellung, wie.

(ich dachte, Du wolltest immer die Anfrage nach einem bestimmten" Ausleihfahrrad  befriedigen. Wie Unterscheidest Du Gefährte gleichen Typs? Kannst du Zyp und einzelnummer in 2 verschiedene Zellen schreiben? Also zB Fahrrad Siebengang Kette Elektro | 123 oder noch besser/allgemeiner abfragbar Fahrrad | Siebengang | Kette | Elektro | 123 (natürlich sind alternativ auch Kürzel möglich, nur nicht gemischt Kürzel<->lang!) Man müsste allerdings entweder leer lassen oder nach etwas bestimmtewm fragen, zwi Eigenschaften derselben Kategorie (7- oder 21-Gang) wären nur mit 2 Formeln bzw einer sehr komplizierten Einzelformel möglich)

Letzteres gäbe zwar eine große (nicht allzu komplizierte) Formel, könnte aber alle Wünsche auf einfache Weise abfragen?

0
Iamiam  28.12.2016, 12:07
@Iamiam

ich schreib die Lösung in eine neue AW (breitere Zeilen und ganz oben)

0
Iamiam  28.12.2016, 15:01
@Iamiam

wollte ich, aber GF hat mich zwischenzeitlich rausgeschmissen und akzeptiert die AW nicht mehr. Ein häufiges Ärgernis, hab jetzt aber keine Zeit mehr, bis heut abend!

0

Im Folgenden tauchen viele Logik-Ergebnisse auf, da gilt generell: 1: geht, 0: geht nicht

Da ich Probleme bei der Resevierung eines Gefährts  für mehrere Zeiträume vorhersehe (mit Zeit-Lücken dazwischen), habe ich das mal exemplarisch für zwei solche Zeiträume gemacht, das lässt sich relativ einfach erweitern auf noch mehr.

Folgende Anlage (kannst die Spalten ja später so platzieren, wie Du es wünscht/brauchst.(ich beziehe mich hier auf Zeile 11 -weil das für suchen/ersetzen eindeutig sein dürfte-, die Formeln und Zeiträume kann man noch oben/unten kopieren (aber aufpassen, dass Du dabei endständige Ziffern/Datümer nicht veränderst, also kopieren, nicht nach oben/unten ziehen!!):

  1. E3: Wunschtermin Anfang Datum , ggf mit Zeit
  2. F3: Wunschtermin zurückgegeben (nicht Rückgabe, sondern Folgetag=wieder verfügbar! ggf mit Zeit, dann plus Sicherheitsspielraum für verspätete Rückgabe)
  3. A11: vorhandene Reservierung Anfang, zB: 16.Mai 16
  4. B11 wieder verfügbar am (Res Ende) zB : 17.Mai 16   --- Beachte: das Rückgabedatum beinhaltet -sofern keine Zeiten eingetragen sind- den NÄCHSTEN Tag (Annahme:0:00)
  5. C11: vorhandene 2. Reservierung Anfang 19.5.16 (beliebiges Datumsformat)
  6. D11: nach vorhandener 2. Reservierung wieder verfügbar: 22.5.16 13:30
  7. E11/F11: leer, vorgesehen für Erweiterung auf 3 schon reservierte Zeiträume
  8. G1: Prüfformel für Zeitraum der 1. Reservierung (muss 0 oder 1 liefen): =WENN((A11>$E$3)*(A11◄$F$3)+(B11>$E$3)*(B11◄$F$3)+((A11+B11)/2>$E$3)*((A11+B11)/2◄$F$3)+($E$3>A11)*($E$3◄B11)+($F$3>A11)*($F$3◄B11);0;1)
  9. H1 zunächst leer, bei Formel in G die ◄ durch < ersetzen (überlass ich Dir)
  10. G1 nach i1 kopieren
  11. H:H LeerSpalte löschen (Den Trick mit -später gelöschter- leerer Zwischenspalte zum Kopieren der Formel kannst Du später wiederholen, wenn Du noch mehr Reservierungszeiträume pro Gefährt haben willst.)
  12. G:V so schmal machen, dass gerade 2 Zeichen drin Platz haben (bei mir 22 Px)
  13. Vor weiteren Formeln braucht es ein paar Spaltendefinitionen, ich springe zu Q11, dahinein(und in die Folgenden) kommt eine technischer Definition: zB K für Kettenschaltung (Kundenwünsche), das impliziert keine Rücktrittbremse, weitere Kürzel mkannst Du selbst definieren, zB N für Nabenschaltung, EU=Elektrische Unterstützung etc. Irgendwas MUSS in die Spalte, ggf s für sonstiges o.ä.
  14. Den zugehörigen Kundenwunsch trägst Du (fett?) in Q3 ein, hier eben K
  15. R11: Zahl der Gänge hier 3 Korrespond. Kundenwunsch: hier auch 3. Sagt der Kunde, die Eigenschaft spielt keine Rolle, kann die Zelle für Kundenwunsch R3 in allen Fällen(hier Q3:V3 auch leer bleiben
  16. T11: J für Jugendfahrrad (H für Herren, D für Damen etc. Kundenwunsch in T3
  17. Weitere Eigenschaften und ihre Kürzel kannst Du selbst hinzufügen, ggf später in neu eingefügte Spalten vor V. Du musst aber alle Zellen bis V mit irgendwas füllen! (s.o: zB s für sonstiges oder x)
  18. in W der Name des Gefährts, zB Hersteller,Nr 12345678 oder Trivialname, beliebig. ist nur beschreibend, wird später über Formeln ausgelesen.
  19. Formel in i11: =(Q11=Q$3)+(Q$3="")  Diese Formel kann auch nach rechts kopiert werden. Sie prüft die Übereinstimmung von Kundenwunsch und Gefährt-Eigenschaften.
  20. Formel i11 kopieren bis O11 Bei obigen Vorgaben müssen jetzt lauter 1 drinstehen
  21. die Fo: P11: =PRODUKT(G11:O11)*ZEILE(P11) liefert die Zeilennummer, aber nur dann, wenn ALLE Bedingungen erfüllt sind, ansonsten 0
  22. Spalte W muss oberhalb des ersten Gefährt-Namens leer bleiben (ggf Kommentarfunktion oder kleine Textfelder nutzen). Da dieser aber ein Text ist, kannst Du die Spalte schmäler machen als der Eintrag erfordern würde.
  23. X3: eine 1, darunter eine 2 usw. Ist Vorgabe für die 1.-, 2.-, 3.- größte Zeilennummer übereinstimmender Einträge.(=zum Zeitraum verleihbarer Gefährte)
  24. Y3: Fo =KGRÖSSTE(P:P;X3)
  25. Z3: Fo für verleihbare Gefährte(Namen): =INDEX(W:W;Y3)
  26. Die Zeile, wo das Gefährt steht, entnimmst du Spalte Y
  27. Du kannst die wichtigen Einträge auch in eine eingefrorene Titelzeile übernehmen, Datumseinträge bedingt formatieren, wenn si in der Vergangenheit liegen und entfernt berden können uvam,.
  28. Ach ja, nach einer positiv beschiedene Kundenanfrage musst Du natürlich E3:F3 als Reservierung einfügen.
  29. Woran ich jetzt nicht gedacht habe: den Kundennnamen festhalten! aber da fällt Dir sicher selbst noch was zu ein!(ich denke da an Zwischenspalten zwischen den Leihspannen, nach Erstellung von det janze nachträglich eingefügt. Automatisches Festschreiben nur per VBA und nur, wenns in der Praxis wunschgemäß funktioniert.

Das wars auch schon ;))

Ich wünsch Dir viel Erfolg bei der konkreten Ausarbeitung, bei Problemen frag gern nochmal zurück (hier als Kommentar, damit ich das sehe) Halte Dich aber bei der Aufstellung genau an das Geschriebene, ich hab mir viel Mühe gegeben, das alles vollständig und eindeutig zu erstellen.

Ich glaube nicht dass das was wird. Ich würde MS Access nehmen und drei Tabellen anlegen.

  • tbl_Fahrraeder
  • tbl_Reservierungen
  • tbl_Entleihungen

Ggf. Noch eine Tabelle tbl_Kunden

Dann brauchst Du ein paar Formulare, und viel VBA - ich würde für die Umsetzung etwa zwei Wochen benötigen, aber meine Lust so etwas für Andere zu entwickeln hält sich in Grenzen.

Ich kann dir nur raten dich an einen Profi zu wenden oder dich in Bezug auf Datenbankentwicklung mit Access entsprechend weiterzubilden.

Dennisthek1nq 
Fragesteller
 22.12.2016, 08:29

Hallo,

Erstmal danke für die schnelle Antwort.

Mit Access hätte ich das Problem sehr schnell gelöst. Ich habe jedoch nicht die Möglichkeit MS Access zu nutzen, da ich die Reservierung beruflich benötige.

In Excel dürfte das auch locker möglich sein und dieses ist auch nicht in zwei Wochen Zeitaufwand zu erledigen.

Leider hat mir deine Antwort nicht wirklich geholfen.

Danke trotzdem

0
klugshicer  22.12.2016, 08:39
@Dennisthek1nq

Also wenn du für die Imlementierung irgendwie an Access rankommst, dann kannst Du die fertige Datenbank später auch mit einer Laufzeitbibliothek auf Rechnern nutzen auf denen kein Access installiert ist.

Das einzige das in der Laufzeitbibliothek nicht funktioniert, ist die Rechtschreibkorrektur.

0
Iamiam  28.12.2016, 11:58
@klugshicer

ich hab das in xl in 6 Tagen(nebenher) fertiggebracht - ohne VBA! (noch nicht mal Matrixformeln, dazu Extras wie mehrere Resevierungszeiträume) Ich brauche lediglich eine Menge Hilfsspalten, aber die sind in xl ja bekanntlich umsonst zu haben...

0
Iamiam  28.12.2016, 12:06
@Iamiam

Wer mit Access umgehen kann, hat meistens sein xl-Wissen nicht aktualisiert und unterschätzt dessen Möglichkeiten! (ich machs ja umgekehrt genauso: warum sollte man sich in mehrere Programme mühsam einarbeiten, wenn es mit dem einen, das man kann, auch geht?)

Nur: in Access kriegst Du nur wenig Hilfe, ausser eben professioneller, die was kostet. Ist klar, dass Profis keine Lust haben, anderer Leute Arbeit umsonst zu machen. Für viele xl-Interessierte sind dagegen solche Aufgaben wie hier das, was für andere Leute Sudoku ist, oder Kreuzworträtsel. (wobei sich natürlich jeder über positive Rückmeldungen oder erst recht einen Stern freut)

0

Müsste funktionieren mit
"wenn(und(Zelle x <>"";Zelle y <>"");1;0)

Oder so ähnlich :-)
Bzw gibt's da was mit "istleer" und 0 und 1 dann tauschen