1.5k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich habe folgende Problemstellung anzubieten:

in einer Spalte stehen Startzeiten von unterschiedlich lang andauernden Zeitintervallen, in der Spalte daneben die jeweilige Dauer des Zeitintervals.

Als Beispiel:

A1: 529; B1: 134 (Das Zeitinterval beginnt also bei 529ms nach einem kritischen Punkt und dauert 134ms an.)

Die Intervalle können ab einem Zeitpunkt von 0ms bis zu 999ms starten. Der Zeitraum von 200ms bis 999ms wird nun in 20er-Schritten gesplittet und die einzelnen abschnitte sind nun die Überschriften für die spalten C, D, E usw.
(C wäre demnach der Zeitraum von 200 - 219ms, D von 220 - 239ms usw.)

In C soll nun geprüft werden, ob sich das Zeitinterval in der entsprechenden Zeile mit dem 20er-Abschnitt (im Falle C also von 200 - 219) überschneidet oder nicht. Wenn ja, soll das Feld eine 1 bekommen, ansonsten eine 0.
Die Formel

=UND(A1>=200;A1<=219)

bewirkt ja immerhin, dass WAHR erscheint, wenn das Zeitinterval in dem Zeitabschnitt von C beginnt - aber ich weiß leider nicht, wie ich eine Art Loop erstellen kann, der dann die Dauer mit berücksichtigt und für jede weitere Spalte D, E usw, in der das Zeitinterval der Zeile "läuft", ebenfalls eine 1 notiert.

Weiß vielleicht jemand eine Lösung für mein Problem? Ich wäre überglücklich, weil mir das unheimlich viel "Handarbeit" sparen würde.

Viele Grüße,

Tanja

4 Antworten

0 Punkte
Beantwortet von flupo Profi (17.8k Punkte)
Ich habe mir deine Tabelle mal nachgebastelt.
In Zeile 1 habe ich der Übersichtlichkeit halber Überschriften drin.
Zeile 2 ist eine Hilfsspalte, die später ausgeblendet werden kann. Darin stehen ab Spalte C die Startwerte für den Testbereich (C2=200, D2=220, E2=240...)
Ab Zeile drei dann die Startwerte und die Intervalldauern.

Als Formel habe ich für Zelle C3 folgendes eingetragen:
=WENN(ODER($A3>C$2;$A3+$B3<C$2+20);0;1)


Durch die Dollarzeichen lässt sich die Formel dann auf den gewünschten Bereich ausdehnen (an der Ecke unten rechts klicken und ziehen).
Damit erscheint in allen Spalten, deren volle 20 Sekunden innerhalb des Intervalls liegen, eine 1.
Im Beispiel also erste 1 bei 540-559s und die letzte bei 640-659s.

Wenn beide angerissenen Intervalle auch eine 1 haben sollen, muss die Formel folgendermaßen lauten:
=WENN(ODER($A3>C$2+19;$A3+$B3<C$2);0;1)


Gruß Flupo
0 Punkte
Beantwortet von
Hej Flupo,

herzlichen Dank!!!

Wenn ich die Lösung jetzt sehe, wurmt es mich umso mehr, dass ich nicht selber drauf gekommen bin, weil es ja auch ohne Loop geht - mal wieder viel zu kompliziert gedacht!

Besten Gruß,

Tanja
0 Punkte
Beantwortet von
Hallo,

nun habe ich doch noch eine Frage:

Ich habe nun eine Tabelle, in der wie gehabt in Zelle A der Intervallstart angegeben ist, in B die Intervalldauer, in C ein weiterer Intervallstart (zu einem späteren Zeitpunkt als der in A), in D dessen Dauer.

Warum funktioniert da die folgende Formel nicht? Kann man die ODER-Funktion nicht beliebig erweitern?

=WENN(ODER($A3>E$2+19;$A3+$B3<E$2;$C3>E$2+19;$C3+$D3<E$2);0;1)

Danke und Gruß,

Tanja
0 Punkte
Beantwortet von flupo Profi (17.8k Punkte)
Das Problem liegt in der ODER-Funktion. Das Ergebnis wird 1 wenn einer der Teilausdrücke 1 ist.
So, wie ich die Formel oben entworfen habe, wird das Ergebnis (der Zellwert) genau dann 1, wenn die beiden Teilausdrücke der ODER-Funktion "falsch" ergeben.
Du hast noch einen Teilintervall mit gleichen Bedingungen hinzugefügt. Dies führt aber dazu, dass eines der Teilergebnisse immer "wahr" ist und somit die ganze ODER-Funktion.

Ich habe das Problem gelöst, indem ich die beiden Teilintervalle wie in A1 auswerte und die beiden WENN-Ergebnisse addiere:
=WENN(ODER($A3>E$2+19;$A3+$B3<E$2);0;1) +WENN(ODER($C3>E$2+19;$C3+$D3<E$2);0;1)


Kleiner Schönheitsfehler: Wenn sich die Intervalle überlappen, erscheint eine 2 in der Zelle.

Gruß Flupo
...