2017-05-19 91 views
0

我想要做的是找到一個公式,我已經找不到,並將其更改爲我所需的公式。我所擁有的是一個列表,其中姓名的兩邊都有不同的值,並且名稱重複。我想成爲具體事情發生的一種方式。數組公式如果不匹配,則顯示數值

我會盡力解釋和舉例。

在A列中,我擁有所有名稱,不是任何特定的順序,只是所有的名稱都是混亂的。在B欄中,如果有人不安排在那一天,我有時間或價值「關閉」。我想要做的是找到「John」正在工作的每個實例,如果它沒有說他是休假或假期,則返回該值。

Example

公式我有一個顯示每一個實例是在這裏。這將駐留在D2: 代碼:

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

我試過,但還沒有任何成功的祕訣就在這裏:

代碼:

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

任何幫助,將不勝感激!

回答

0

我發現與您嘗試使用的配方略有不同,但它可能對您有所幫助。 (下文中「約翰」的代碼是在C2)

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

,如果你希望它也刪除「休假」,然後

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

「;」而不是你的「,」(我已經在例子中改變了這個),所以你可能需要對代碼進行一些其他的小修改...... btw你不需要輸入這個數組公式。

0

做出了一些改變您的公式:

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

這是一個數組公式按Ctrl鍵++輸入所以提交它。

在陣列式參照整列(像$A:$A$B:$B使得執行速度很慢,因此是不可取的,而是使用範圍內具有如

=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數據 - 請接受的溶液,作爲回答如果它解決了你的問題。 – Mrig

相關問題