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