Suchen des mit einem negativen Wert verknüpften Datums (Microsoft Excel)
Stuart hat eine Reihe von Lesungen in einem Arbeitsblatt. In der ersten Spalte hat er Daten, die mit den Messwerten verknüpft sind, und in der zweiten Spalte hat er die tatsächlichen Messwerte. Stuart hätte gerne eine Formel, die das erste Datum zurückgibt, an dem ein Messwert negativ wurde. Mit anderen Worten, die Formel sollte in der zweiten Spalte nach dem ersten negativen Wert suchen und dann das diesem Wert zugeordnete Datum zurückgeben.
Die zweite Spalte kann mehrere negative Werte enthalten, er benötigt jedoch nur das Datum, das dem ersten negativen Wert zugeordnet ist.
Es gibt eine Reihe von Möglichkeiten, wie dieses Problem angegangen werden kann. Alle Methoden setzen voraus, dass die Daten in Spalte A in aufsteigender Reihenfolge vorliegen und dass die Messwerte in Spalte B in keiner erkennbaren Reihenfolge vorliegen. (Mit anderen Worten, die Messwerte können an jedem beliebigen Datum über und unter 0 springen.)
Vorausgesetzt, Sie haben eine gewisse Kontrolle über das Layout des Arbeitsblatts, können Sie in Spalte C eine Zwischenarbeitsspalte hinzufügen, die angibt, wann ein Wert negativ ist. Platzieren Sie einfach eine Formel wie diese in Spalte C rechts von jeder Lesung:
=IF(B1<0,A1,"")
Diese Formel gibt das Datum in Spalte A zurück, wenn der Wert in B unter 0 (negativ) liegt, andernfalls wird nichts zurückgegeben. Sie müssen dann nur noch nach dem Mindestwert in Spalte C suchen:
=MIN(C:C)
Formatieren Sie das Ergebnis als Datum und stellen Sie das Datum dar, an dem die Messwerte zum ersten Mal negativ wurden.
Ein anderer Ansatz besteht darin, auf die Verwendung der Zwischenspalte zu verzichten und eine Arrayformel zu verwenden, um das Datum zu bestimmen. Angenommen, die Daten liegen im Bereich A1: B42, können Sie eine der folgenden Formeln verwenden:
=MIN(IF(B1:B42<0,A1:A42,"")) =OFFSET($A$1,MATCH(TRUE,$B$1:$B$42<0,0)-1,,,) =INDEX(A:A,MIN(IF(B1:B42<0,ROW(B1:B42)))) =INDEX(A1:A42,MATCH(TRUE,B1:B42<0,0)) =INDIRECT("A"&MIN(IF(B1:B42<0,ROW(B1:B42))),TRUE)
Denken Sie daran, dass dies alles Array-Formeln sind. Sie müssen also die gewünschte Formel eingeben, indem Sie Umschalt + Strg + Eingabetaste drücken. Formatieren Sie das Ergebnis als Datum und es ist die Antwort, die Sie suchen.
Wenn Sie möchten, können Sie auch ein einfaches Makro verwenden, um das Datum zu bestimmen:
Function GetFirstNegative(rngdata) Dim c As Variant For Each c In rngdata If c < 0 Then GetFirstNegative = c.Offset(0, -1) Exit Function Else GetFirstNegative = "All Data is Positive" End If Next End Function
In Ihrem Arbeitsblatt würden Sie diese benutzerdefinierte Funktion folgendermaßen verwenden:
=GetFirstNegative(B1:B42)
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (7092) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: