2017-05-19 3 views
0

Was ich versuche zu tun ist, eine Formel zu finden, die ich bei der Lokalisierung nicht gefunden habe, und sie zu dem ändern, wofür ich sie brauche. Was ich habe, ist eine Liste, in der Namen durchweg mit unterschiedlichen Werten auf jeder Seite des Namens dupliziert werden. Ich möchte ein Weg sein, wo etwas passiert.Array-Formel, um Wert anzuzeigen, wenn es nicht übereinstimmt

Ich werde versuchen zu erklären und ein Beispiel geben.

In Spalte A habe ich alle Namen, nicht in einer bestimmten Reihenfolge, nur alle durcheinander. In Spalte B habe ich eine Zeit oder den Wert "aus", wenn für diesen Tag niemand geplant ist. Was ich tun möchte ist, jede Instanz zu finden, in der "John" arbeitet und den Wert zurückgibt, wenn er nicht sagt, dass er aus ist oder Urlaub macht.

Example

Die Formel I haben, dass jede Instanz zeigt hier. Dies würde in D2 residieren: Code:

={IFERROR(INDEX('$B:$B,MATCH(0,IF($C$2=$A:$A,COUNTIF($D$1:D1,$B:$B),""),0)),"")} 

Die Formel habe ich versucht, aber keinen Erfolg hatte, ist hier:

Code:

={IFERROR(INDEX('$B:$B,MATCH(0,IF(NOT(OR("Off"=$B:$B,"Vacation"=$B:$B)),COUNTIF($D$1:D1,$B:$B),""),0)),"")} 

Jede mögliche Hilfe würde geschätzt!

Antwort

0

Ich fand etwas andere Formel als das, was Sie versuchen zu verwenden, aber es könnte Ihnen helfen. (In den Codes unter "John" ist in C2)

=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW(B:B)/((B:B<>"off")*(A:A=$C$2)),COUNTA($A$1:A1))),"") 

, wenn Sie es auch "Urlaub" entfernen wollen, dann

=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW(B:B)/((B:B<>"off")*(B:B<>"vacation")*(A:A=$C$2)),COUNTA($A$1:A1))),"") 

in meiner Lokalisation Ich bin mit ";" anstatt Ihres "," (ich habe das bereits in den Beispielen geändert), so dass es noch einige andere kleine Änderungen geben kann, die Sie auf den Code anwenden müssen ... das brauchen Sie auch nicht als Array-Formel einzugeben.

0

einige Änderungen in Ihrer Formel hergestellt:

=IFERROR(INDEX($B:$B,MATCH(0,IF(($C$2=$A:$A)*("Off"<>$B:$B)*("Vacation"<>$B:$B),COUNTIF($D$1:D1,$B:$B),""),0)),"") 

Dies ist eine Matrixformel es so begehen, indem Ctrl +Umschalt + der Enter-Taste.

ganze Spalte (wie $A:$A oder $B:$B) in Matrixformel Bezug macht die Ausführung sehr langsam und daher nicht ratsam ist, statt den Bereich mit Daten wie

=IFERROR(INDEX($B$1:$B$9,MATCH(0,IF(($C$2=$A$1:$A$9)*("Off"<>$B$1:$B$9)*("Vacation"<>$B$1:$B$9),COUNTIF($D$1:D1,$B$1:$B$9),""),0)),"") 
+0

@KevinTuri verwenden - bitte die Lösung akzeptieren, antworte, wenn es dein Problem gelöst hat. – Mrig

Verwandte Themen