有位朋友的問題是這樣的:要查找出客戶名稱中包含“揚(yáng)名”且商品為“杜鵑”的最后一次記錄的單價(jià),結(jié)果如I3單元格所示。符合條件的記錄已用綠色標(biāo)出,只取最后一次記錄的單價(jià)。
這是個(gè)多條件查找的問題,而且是查找最后一次的記錄,我們可以用lookup函數(shù)來完成。在I3單元格輸入公式=LOOKUP(,-FIND(G3,A3:A20)/(H3=B3:B20),C3:C20),完成。下面來解釋下這個(gè)公式的意思。FIND(G3,A3:A20)這部分用find函數(shù)在A列的客戶名稱中查找G3的“揚(yáng)名”,如果能找到返回一個(gè)數(shù)字,否則返回錯(cuò)誤值。如下圖D列所示。H3=B3:B20這部分用來判斷B列的商品是否等于H3的“杜鵑”,如果相等返回TRUE,否則返回FALSE。如下圖E列所示。如果要同時(shí)滿足這2個(gè)條件,D列必須為數(shù)字且E列必須為TRUE,下圖中已經(jīng)用紅線標(biāo)出。讓這兩列做相除的運(yùn)算,用D列除以E列,前面再加個(gè)負(fù)號,也就是-FIND(G3,A3:A20)/(H3=B3:B20)這部分,結(jié)果如F列所示,可以看到同時(shí)滿足這2個(gè)條件的返回一個(gè)負(fù)數(shù),否則返回錯(cuò)誤值。只要找到最后一個(gè)負(fù)數(shù)的位置,就找到了最后一次滿足條件的記錄。最后的查找公式為=LOOKUP(,-FIND(G3,A3:A20)/(H3=B3:B20),C3:C20)。
其中l(wèi)ookup的第1參數(shù)省略相當(dāng)于0,由于0比第2參數(shù)中所有的負(fù)數(shù)都大,所以會找到最后一個(gè)負(fù)數(shù),并返回第3參數(shù)中對應(yīng)位置的單價(jià)。
常規(guī)的lookup多條件查找的套路公式是=lookup(1,0/((條件區(qū)域1=條件1)*(條件區(qū)域2=條件2)),返回區(qū)域)。本例中2個(gè)條件之間能用除法,是因?yàn)閒ind函數(shù)返回的結(jié)果只有正數(shù)和錯(cuò)誤值。用find()/(條件區(qū)域=條件),同時(shí)滿足條件的返回?cái)?shù)字,不同時(shí)滿足條件的返回錯(cuò)誤值。https://pan.baidu.com/s/1ASPWGKaY4BKvADbw4MOqzQ
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。