2016-07-19 14 views
0

Ich habe 3 Blätter in Excelvergleichen Zeitbereich & feste Zeit zwischen verschiedenen Blättern in Excel

Blatt 1 enthält Spalte Arrival-Time in 24 Stunden-Format

Arrival-Time

11:00
22:00
05:00
09:00

S heet 2-Säule Departure-Zeit in 24 Stunden-Format

Departure-Zeit

14:00
23:00
18:00
10:00

Blatt 3 enthält enthält Spalte Geplanter Zeit im 24 Stunden Format

Geplante Zeit

15:00
18:00
3:00 - 12:00
12.00 bis 16.00

Jetzt möchte ich eine Formel, wenn Geplante Zeit zwischen der Ankunft Zeit & Abreise-Zeit Aktualisieren Sie dann eine Spalte DELIVERY auf JA, andernfalls NO.

Aber leider meine geplante Zeit Spalte enthalten beide, Zeitbereich (3:00 - 12:00) & feste Zeit (3:00).

Also, wie schreibe ich eine generische Formel, um die DELIVERY-Spalte zu aktualisieren? als meine geplante Zeit Spalte beide Zeitbereich & feste Zeit enthalten.

+0

Beziehen sich die Einträge für die geplante Zeit nur auf diese Zeile in den Einträgen Ankunftszeit und Abfahrtszeit? –

+0

@TimEdwards: Ja, es bezieht sich nur auf diese Zeile der Ankunfts- und Abfahrtszeit. So krank vergleichen A1, B1 & C1. Wo A ist Ankunftszeit B ist Abfahrt Zeit C ist geplante Zeit –

+0

Werden die Bereiche immer diejenigen in 12hr Uhr sein oder erhalten Sie Einträge wie 13:00 - 16:00 oder 11:00 AM. Würden diese immer auf die gleiche Weise geschrieben werden oder würden Sie manchmal 11 Uhr bekommen? Wenn Sie eine logische Formel schreiben müssen, müssen Sie über die Möglichkeiten nachdenken. –

Antwort

0

Ich bin sicher, es könnte in einer aufgeräumter Weise getan werden (Sie könnten einige von diesen in noch größere Formeln kombinieren), aber ich habe das unten.

Nicht erschöpfend getestet, aber ich denke, es tut, was benötigt wird.

Die Theorie ist zu erarbeiten, welche Art von Eingabe Sie haben und dann damit umgehen, so wie ich es sehe Sie haben Uhr-Typ und Bereich Variablen.

Daher ersten beiden "Helfer" Spalten sind Clock-Typ (B2):

=IF(RIGHT(A2,1)="M","12","24")

dann Range (C2):

`= NOT (ISERROR (FIND ("-", A2))) '

Ich habe dann vier Spalten, um den Anfang und das Ende der Bereiche in 12 Stunden und 24 Stunden Uhren zu berechnen (sorry aber diese sind lang!), D2:

=IF(MOD(IF(RIGHT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2))+0.5)*2,1)=0,IF(RIGHT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2))+0.5)-0.5,IF(RIGHT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2))+0.5))

E2 ist:

=IF(MOD(IF(RIGHT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2))+0.5)*2,1)=0,IF(RIGHT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2))+0.5)-0.5,IF(RIGHT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2))+0.5))

F2 ist:

=VALUE(LEFT(A2,FIND("-",A2)-2))

G2 ist:

=VALUE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2))

Wenn Sie noch wach sind wir dann auf Ausarbeiten bewegen, wenn die Typen Ihre Kriterien getroffen. H2 (24 Stunden und kein Range) ist:

=AND(A2>=Sheet1!A2,A2<=Sheet2!A2)

I2 (12hrs und kein Range) ist:

=AND(IF(RIGHT(A2,2)="AM",VALUE(LEFT(A2,LEN(A2)-2)),VALUE(LEFT(A2,LEN(A2)-2))+12)>=Sheet1!A2,IF(RIGHT(A2,2)="AM",VALUE(LEFT(A2,LEN(A2)-2)),VALUE(LEFT(A2,LEN(A2)-2))+12)<=Sheet2!A2)

J2 (24 Stunden und ist eine Strecke) ist:

=OR(AND(F2>=Sheet1!A2,F2<=Sheet2!A2),AND(G2>=Sheet1!A2,G2<=Sheet2!A2))

K2 (12 Stunden und ist ein Range) ist:

=OR(AND(D2>=Sheet1!A2,D2<=Sheet2!A2),AND(E2>=Sheet1!A2,E2<=Sheet2!A2))

Nun kommen wir zu Ihrer Liefer Spalte, ich habe eher mit WAHR/FALSCH gegangen, als "Ja"/"Nein" dies nutzt nur die Typen und die Ergebnisse oben, um die richtigen für das richtige Szenario zu verwenden:

=IF(B2=24,IF(C2,J2,H2),IF(C2,K2,I2))

Wie Ich habe gesagt, nicht getestet, aber hoffentlich, wenn ich Fehler gemacht habe (was in all dem durchaus möglich ist), sollte man in der Lage sein, die Logik zu nehmen und dann alle notwendigen Anpassungen vorzunehmen.

+0

danke für die Lösung, aber ich konnte es nicht funktionieren lassen. Können Sie das Excel-Blatt teilen? –

+0

Ich habe keine Dropbox oder ähnliches, um es zu teilen, also glaube ich nicht, dass das eine Option ist. Was ist der Fehler oder berechnet er nicht, wie Sie es erwarten? –

+0

Meine Testdaten: Sheet1.A2 = 11.00 Sheet2.A2 = 11.55 Sheet3.A2 = 12.00 bis 16.00 Nach der Formel Anwendung: Nach der Ausgabe: –