下表是王者公司組隊競賽數據
1、根據不完整的組合名查找匹配戰績
2、根據組員名字查找對應戰績
我們都知道VLOOKUP函數查找匹配要求第1個參數的值,在查找數據區域内在第一列,并且保持一字不差,甚至都不能有空格,如果在H2簡單的使用VLOOKUP(G2,A:E,5,0),返回的結果是錯誤值。而G列的組員在原始數據源中分布在多列,,遇到這種情況時,如何進行查找匹配?
求組合戰績
第一想到的就是将G列的組合名字修改成和A列的名字保持一緻,後面加個“組”字,然後再使用VLOOKUP函數求解
、
這個是數據源和需要查找的數據比較少的情況下可以這麼修改,但是如果數據很多時,則需要使用公式=VLOOKUP(G2&"*",A:E,5,0)計算
其中*号是通配符,也就是萬能字符,G2&"*"表示查找開頭是巾帼對應的戰績。假如A2單元格内容是巾帼英雄666,也能查找到對應的戰績。
求組員戰績
第一反應可能是将所有的組員放至一列,然後再查找匹配,但這個工作量是複雜并且巨大的
輔助列雖然容易解決問題,但是建立輔助列太複雜的話,不如不要,直接在H7使用數組公式:
=INDEX(E:E,MAX(IF(G7=$B$2:$D$6,ROW($B$2:$D$6),1))),輸入完之後使用CTRL SHIFT ENTER進行計算。
我知道每次列出一個公式,都有同志不理解,今天來解釋下數組公式,這也是理解數組公式有效的方法,以H7單元格的公式為例
框選區域,然後按F9鍵
什麼意思呢?在表格中理解,就是B2:D6哪些等于呂布,得到的結果就是下面的數組
然後框選ROW(B2:D6),按F9,得到的是:
然後框選IF()函數了,如果是TRUE,返回對應的({2,3,4,5,6}),如果錯誤返回1,則在數組中運算就是:
在表格中的體現就是:對的返回呂布所在行的行号3,錯誤返回1
然後使用max()函數,這些數組最大的值就是3了
然後就是INDEX(E:E,3),就是求E列的第3行,即數據為90。
通過這樣的計算解釋,你理解了嗎?
歡迎留言分享。
-----------------
歡迎關注,Excel教程持續更新中...
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!