2016-03-30 12 views
1

Ich versuche festzustellen, für welche Zeile meiner Tabelle eine AND-Funktion True für gibt.So ermitteln Sie die Zeile einer UND-Funktion Excel

Zum Beispiel habe ich eine Spalte, die eine String-Kategorie Nummer namens Route enthält. Ich habe dann die Strecke in Abschnitte aufgeteilt. Ich möchte die spezifischen Informationen finden, wenn ich eine Routen-ID und einen bestimmten Meilenpunkt kenne. Als solcher brauche ich

If(AND(route=specified.route, Beginning.marker <= specified.marker, specified.marker <= end.marker), Return.Row, "not found") 

Ich kann dann verwenden, um die anderen Informationen über dieses spezielle Segment in der Tabellenkalkulation zu erhalten.

Antwort

3

Verwenden Sie die MATCH() - Funktion.

Zu diesem Zweck nehmen wir an, die folgenden:

  • Route Spalte ist eine
  • Anfang Spalte B
  • End Spalte C ist

Die Formel wäre:

=MATCH(1,IF(($A$1:$A$1000 = specified.route)*($B$1:$B$1000 <= specified.marker)*($C$1:$C$1000 >= specified.marker),1,0),0) 

Dies ist ein ar Strahlformel. Da es eine Array-Formel ist, muss es beim Verlassen des Bearbeitungsmodus mit Strg-Umschalt-Enter bestätigt werden. Wenn es richtig gemacht wird, wird Excel automatisch {} um die Formel setzen, um eine Array-Formel zu bezeichnen.

Array Formeln nicht wie die Verwendung von And und Or in ihren Berechnungen wir sie so ersetzen mit den mathematischen Operanden * und + sind. Das funktioniert, weil die Kriterien TRUE/FALSE zurückgeben, die als Boolean gespeichert werden, die im Wesentlichen 1/0 sind.

Array Formeln sollten keine vollständigen Spaltenreferenzen verwenden, da die Berechnungen exponentiell sind und die Berechnungszeiten verlangsamen. Halten Sie daher die Bereichsreferenzen so klein wie möglich, während Sie die größte Anzahl von Zeilen abdecken, für die die Daten denkbar sind.


Nun, ich gehe davon aus, dass hier Sie die Zeilennummer verwenden möchten, einen Wert in einer anderen Spalte zu finden, die diesen Wert zurückzukehren man das Ganze in einem INDEX() Funktion wickeln.

kann also annehmen, dass Sie den Wert aus Spalte D wollen, wo die Kriterien erfüllt sind:

=INDEX(D$1:$D$1000,MATCH(1,IF(($A$1:$A$1000 = specified.route)*($B$1:$B$1000 <= specified.marker)*($C$1:$C$1000 >= specified.marker),1,0),0)) 

Dies ist auch eine Matrixformel. Da es eine Array-Formel ist, muss es beim Verlassen des Bearbeitungsmodus mit Strg-Umschalt-Enter bestätigt werden. Wenn es richtig gemacht wird, wird Excel automatisch {} um die Formel setzen, um eine Array-Formel zu bezeichnen.


So, jetzt, was mit denen zu tun, die in einer Zeilennummer führen nicht, weil eine oder mehrere der drei Kriterien immer falsch ist. Wickeln Sie das ganze in einem IFERROR() Funktion:

=IFERROR(INDEX(D$1:$D$1000,MATCH(1,IF(($A$1:$A$1000 = specified.route)*($B$1:$B$1000 <= specified.marker)*($C$1:$C$1000 >= specified.marker),1,0),0)),"not found") 

Auch dies ist eine Matrixformel, so dass die oben genannten Bedingungen gelten.

Dies gibt "not found" zurück, wenn keine Übereinstimmung vorliegt.

+1

Vielen Dank für Ihre Antwort Scott! War sehr klar und hilfreich. Es hat auch perfekt funktioniert! – WolVes

+0

@WolVes Sie sind herzlich willkommen. –

Verwandte Themen