VIP學員的問題,要根據(jù)財務編碼,查找狀態(tài)為已結束,對應的全部立項編號。  早期,盧子都是采用VLOOKUP+輔助列,這種說了幾十次,就一筆帶過,重點說TOROW+FILTER。=IF(D2="已結束",B2&COUNTIFS(B$2:B2,B2,D$2:D2,"已結束"),"") 
=IFERROR(VLOOKUP($F2&COLUMN(A1),$A:$D,3,0),"")  時代變了,現(xiàn)在應該把更多的時間放在研究新函數(shù)上面,別老想著那些老函數(shù)。 假如現(xiàn)在要根據(jù)財務編碼,查找全部對應的立項編號。=FILTER(B2:B16,A2:A16=E2)  假如現(xiàn)在要根據(jù)財務編碼,狀態(tài)為已結束,查找全部對應的立項編號。也就是再增加一個條件。=FILTER(B2:B16,(A2:A16=E2)*(C2:C16="已結束")) 
 其實,F(xiàn)ILTER函數(shù)還存在第三參數(shù),可以讓錯誤值顯示空白。=FILTER(B2:B16,(A2:A16=E8)*(C2:C16="已結束"),"") 
=FILTER(返回區(qū)域,(條件區(qū)域1=條件1)*(條件區(qū)域2=條件2),錯誤值返回值) 到這里就解決了查找的問題,現(xiàn)在只需將一列的內容轉換成一行。這時TOROW就派上用場。=TOROW(FILTER(B2:B16,(A2:A16=E2)*(C2:C16="已結束"),"")) 
差點忘了說,這個公式因為需要下拉,區(qū)域記得鎖定哦。除此之外,其他所有公式可以不用鎖定,因為公式會自動拓展。 =TOROW(FILTER($B$2:$B$16,($A$2:$A$16=$E2)*($C$2:$C$16="已結束"),"")) 
問題解決了,下面再拓展一些案例。 1.將狀態(tài)為已結束的內容自動引用出來 FILTER的返回區(qū)域,可以是一列,也可以是多列。
=FILTER(A2:C16,C2:C16="已結束") 
2.將立項編號包含T的內容自動引用出來 條件判斷的時候,支持嵌套其他函數(shù)。用FIND可以判斷是否包含T,滿足返回數(shù)字,不滿足返回錯誤值。錯誤值會導致引用出錯,再嵌套ISNUMBER。 =FILTER(A2:C16,ISNUMBER(FIND("T",B2:B16))) 
3.將財務編碼為101100001或101100012的內容自動引用出來 同時滿足2個條件用*,滿足其中1個條件用+(也就是或)。 =FILTER(A2:C16,(A2:A16="101100001")+(A2:A16="101100012")) 
|