Microsoft Excel

Herbers Excel/VBA-Archiv

Zeiträume vergleichen | Herbers Excel-Forum


Betrifft: Zeiträume vergleichen von: philG
Geschrieben am: 18.01.2012 09:24:45

Liebe Herber-Gemeinde,

ich hoffe mir kann bei folgendem Problem geholfen werden, bin langsam am verzweifeln:

Ich habe einen Zeitraum, der in 2 Zellen abgelegt ist (von-bis-Datumsangaben), dann habe ich in 2 weiteren Zellen einen Vergleichzeitraum und möchte checken, ob dieser innerhalb des 1. Zeitraums liegt.

Ich habe die Datumfelder nicht als solche formatiert, es stehen also die Zahlenwerte darin, z.B. (Zelle):

Start (B) Ende (C) Datum (E) Datum (F)
32782 32963 32876 32898

Dazu habe ich folgende Formel entworfen:

=WENN(ODER(UND(E2>=$B$2;F2<=$C$2);UND(E2>=$B$3;F2>=$C$3);UND(E2>=$B$4;F2>=$C$4);UND(E2>=$B$5;   F2>=$C$5);UND(E2>=$B$6;F2>=$C$6));"o.k.";"Bereich größer als ein Winter oder Sommer Halbjahr")   

..leider funktioniert diese nur bis Zeile 31, danach geht nichts mehr.

Es wäre wirklich super, wenn mir jemand mit einer Lösung weiterhelfen könnte!

Vorab schonmal vielen Dank!!!

  

Betrifft: AW: Zeiträume vergleichen von: Rudi Maintaire
Geschrieben am: 18.01.2012 10:15:26

Hallo,

 BCDEFG
215.01.1230.03.12 18.01.1220.03.12OK
3   05.01.1220.03.12nicht OK
4   16.01.1205.04.12nicht OK

ZelleFormel
G2=WENN((MIN(E2:F2)>=MIN($B$2:$C$2))*(MAX(E2:F2)<=MAX($B$2:$C$2));"OK";"nicht OK")
G3=WENN((MIN(E3:F3)>=MIN($B$2:$C$2))*(MAX(E3:F3)<=MAX($B$2:$C$2));"OK";"nicht OK")
G4=WENN((MIN(E4:F4)>=MIN($B$2:$C$2))*(MAX(E4:F4)<=MAX($B$2:$C$2));"OK";"nicht OK")


Gruß
Rudi


  

Betrifft: AW: Zeiträume vergleichen von: philG
Geschrieben am: 18.01.2012 10:32:20

Vielen Dank aber das ist nur eine Abwandlung meiner bisherigen Lösung, mir wäre daran gelegen, dass mit über 32 Zeiträumen verglichen wird (die linken beiden Spalten). Bisher gelöst mit Oder-Verküpfung aber davon kann Excel maximal 32 behandeln.

Hat da jmd. eine Lösung?


  

Betrifft: verstehe nicht. owT von: Rudi Maintaire
Geschrieben am: 18.01.2012 10:41:43




  

Betrifft: AW: verstehe nicht. owT von: philG
Geschrieben am: 18.01.2012 11:04:34

Spalte B: Startdatum eines Halbjahres
Spalte C: Enddatum eines Halbjahres
Spalte B und C enthalten zeilenweise für 42 Sommer- bzw. Winterhalbjahre das Anfangs- und Enddatum

Spalte E und F enthalten das Start- bzw. Enddatum verschiedener Zeiträume. Insgesamt liegen über 100 solcher Zeiträume vor - diese sind also zeilenweise in die Spalten E und F eingetragen.

Ziel: überprüfe für jeden Zeitraum (Spalte E-F), ob er in einem Halbjahr liegt (Ergebnismeldung "o.k."), oder ob er zwei oder mehrere Halbjahre überschneidet (Ergebnismeldung "nicht o.k." o.ä.).

Urpsrünglicher Lösungsansatz:

WENN(ODER(UND(2>=$B$2;F2<=$C$2);UND(E2>=$B$3;F2>=$C$3);UND(E2>=$B$4;F2>=$C$4);UND(E2>=$B$5;F2>=$C$5);UND(E2>=$B$6;F2>=$C$6));"o.k.";"nicht o.k.")
Obige Formel liefert folgendes Problem:
Die in der ODER-Verknüpfung enthaltenen UND-Verknüpfungen müssten fortgeführt werden bis
UND(E2>=$B$42;F2>=$C$42)
, was aber nicht möglich ist in Excel - hier geht es nur bis

UND(E2>=$B$32;F2>=$C$32)
- mehr Wahrheitsbedingungen kann eine ODER-Funktion nicht behandeln.

Wie kann ich dieses Problem lösen, ohne VBA zu nutzen?


  

Betrifft: Matrixformel von: Rudi Maintaire
Geschrieben am: 18.01.2012 12:03:54

Hallo,

 BCDEFG
1BeginnEnde    
201.01.201230.05.2012 15.09.201501.11.2015OK
301.09.201230.11.2012 05.08.201430.09.2014nicht OK
401.01.201330.05.2013 15.02.202001.04.2020OK
501.09.201330.11.2013 01.06.201730.09.2017nicht OK
601.01.201430.05.2014    
701.09.201430.11.2014    
801.01.201530.05.2015    
901.09.201530.11.2015    
1001.01.201630.05.2016    
1101.09.201630.11.2016    
1201.01.201730.05.2017    
1301.09.201730.11.2017    
1401.01.201830.05.2018    
1501.09.201830.11.2018    
1601.01.201930.05.2019    
1701.09.201930.11.2019    
1801.01.202030.05.2020    
1901.09.202030.11.2020    

ZelleFormel
G2{=WENN(SUMME(($B$2:$B$100<=E2)*($C$2:$C$100>=F2));"OK";"nicht OK")}
G3{=WENN(SUMME(($B$2:$B$100<=E3)*($C$2:$C$100>=F3));"OK";"nicht OK")}
G4{=WENN(SUMME(($B$2:$B$100<=E4)*($C$2:$C$100>=F4));"OK";"nicht OK")}
G5{=WENN(SUMME(($B$2:$B$100<=E5)*($C$2:$C$100>=F5));"OK";"nicht OK")}
Achtung, Matrixformel!
Die geschweiften Klammern{} nicht eingeben,
sondern die Zelle mit
Shift + Strg + Enter
verlassen statt Enter alleine.


Gruß
Rudi


  

Betrifft: AW: Matrixformel von: philG
Geschrieben am: 18.01.2012 12:34:47

Also das nenne ich mal einen tollen Ansatz, das hat mir sehr geholfen RIESEN Dank Rudi!!!


Beiträge aus den Excel-Beispielen zum Thema "Zeiträume vergleichen"