2017-08-01 4 views
0

= (INDEX (Daten, KLEIN (IF ((Daten, [POSITION] = "Manager") (Daten [Bonus] = "ja") (Daten [Umzug] = A1) OR * (Daten [Umzug] = B1, ROW (Daten [Umzug])), ROW (1: 1)) - 1, SPALTE (Daten [NAME]))Excel-Index klein Wenn mit OR-Anweisung

Ich habe versucht, die über die Formel hinaus für die Ewigkeit, aber immer noch nicht zur Arbeit

Alles, was ich will, ist die Formel, um mir alle Namen der Manager mit einem Bonus, die bereit sind, in beide Städte in A1 OR B1 zu verlagern. Ich verwende Array, so dass es so viele Manager wie möglich auflisten kann.

Ich habe versucht, oder in verschiedenen Verschachtelung zu verwenden, aber konnte nicht herausfinden, so würde ich jede Hilfe dankbar, danke

Antwort

0
=(INDEX(data,SMALL(IF(AND((data[POSITION]="Manager"),(Data[Bonus]="yes"),OR((data[relocation]=A1),(data[relocation]=B1))),ROW(data[relocation])),ROW(1:1))-1,COLUMN(Data[NAME])) 

Dies wird die Menschen identifizieren, die Manager sind und einen Bonus haben und (auch auf A1 verlagern ODER Verschieben Sie auf B1)

Die Syntax für AND() und OR() ist, dass das UND oder OR an der Vorderseite einer Liste von Dingen geht, die Sie überprüfen möchten.

Noch besser ist es, die folgende Funktion am Ende der Datentabelle einzufügen und zu kopieren.

=IF(AND((data[Position]="Manager"),(data[Bonus]="yes"),OR((data[relocation]=$A$1),(data[relocation]=$B$1))),data[NAME],"") 

Es wird den Namen in die Spalte kopieren, wenn die Person, die Kriterien zu Ihnen passt angegeben, aber es leer lassen, wenn sie es nicht taten. Dadurch können Sie die Tabelle für diese Spalte filtern und bei Bedarf weitere Daten anzeigen.

Sheet with formula

Wie Sie die Verwendung von Index/Klein machen wollen, die Ergebnisse zu sammeln, können Sie meine ursprüngliche Formel ändern:

=IF(AND((data[Position]="Manager"),(data[Bonus]="yes"),OR((data[relocation]=$A$1),(data[relocation]=$B$1))),1,0) 

Dieses eine 1 in der Reihe von niemandem gestellt wird, die passt zu deinen Kriterien und einer 0 in die Reihe derer, die das nicht tun.

Dann können Sie den Index/kleine Methode auf dieser Datenspalte verwenden (die ich genannt ausgewählt haben)

=INDEX(data,SMALL(IF(data[Selected]>0,ROW(data[Selected])-3),ROW(1:1)),3) 

Using INDEX/SMALL

+0

Dies würde Fehler zurück, habe ich versucht, und/oder an verschiedenen Orten, einfach funktioniert nicht. Wenn ich die And/Or-Anweisungen entferne, mache nur einen Bonus ** position * location, es würde funktionieren. Aber ich muss mir zwei Standorte anschauen, nicht einen ... – Ramon

+0

Ich habe einen Screenshot angehängt, der zeigt, wie die Formel funktioniert. Da es jetzt Teil der Tabelle ist, hat es die Daten [] Notation fallengelassen. Wenn Sie gerne einen Teil Ihrer tatsächlichen Tabelle oder einer redigierten Version zeigen, könnte ich die Formel für Ihren speziellen Fall überprüfen. –

+0

meine Schlussfolgerung ist, wenn Sie setzen und/oder Anweisung zu indexieren/klein, es funktioniert nicht. Nun, selbst das würde nicht funktionieren = index (data, small (wenn (und ((data [position] = "Manager"), (data [bonus] = "yes")), row (data [relocation])), Zeile (1: 1)) - 1, Spalte (Daten [Name]) ABER wenn ich * anstelle von UND verwende, würde es funktionieren. Bizarre ... – Ramon