本文的標(biāo)題是《每天學(xué)一點Excel2010 (88)——Match》來源于:由作者:陳鄧奇采編而成,主要講述了192 match
助記:英文的“匹配”。
類別:查找和引用
語法:
match(look
192 match
助記:英文的“匹配”。
類別:查找和引用
語法:
match(lookup_value,lookup_array,[match_type])
參數(shù):2~3個參數(shù)
- lookup_value 必需。要在指定區(qū)域中進(jìn)行查找的索引值。可以是值(數(shù)字、文本或邏輯值)或值的單元格引用。
- lookup_array 必需。要搜索的一維數(shù)組,即如果是單元格區(qū)域,必須是1行或1列。
- match_type 可選。默認(rèn)值為1。共有三種情況:
1或省略:查找小于或等于lookup_value的最大值,lookup_array參數(shù)中的值必須按升序排列,如:…-2,-1,0,1,2,…,A,B,…Y,Z,false,true。
0:返回等于lookup_value的第1個值,lookup_array參數(shù)可以按任何順序排列。
-1:查找大于或等于lookup_value的最小值,lookup_array參數(shù)中的值必須按降序排列,如:true,false,Z,Y,…A,…2,1,0,-1,-2,…。
用法:
在指定的一維數(shù)組,或作為數(shù)組引用的1行、1列單元格區(qū)域中搜索指定索引值,返回該項或近似項在單元格區(qū)域中的位置。根據(jù)可選參數(shù)的不同,數(shù)組元素可能要提前排好升序或降序,否則結(jié)果可能不對。
舉個例子,所有同學(xué)都站成一隊,我們要找一個身高正好等于1.8米的人。沒有的話,退而求其次,找個最接近1.8米的。
1)新建一個工作表,在A1單元格輸入“=randbetween(150,200)/100”生成一個1.50~2.00的隨機(jī)數(shù),代表身高。
2)向下填充A列的15個單元格,為了防止隨機(jī)數(shù)自動重新計算,我們將A列的15個“數(shù)值”選擇性粘貼到B列。現(xiàn)在可以把A列刪除或隱藏,或者重新填充成1~15的序號。
匹配參數(shù)
3)選擇D2單元格,輸入“=match(1.8,B1:B15,0)”,結(jié)果顯示#N/A,就是搜索無果,沒有找到。
4)現(xiàn)在我們把第10個人的數(shù)據(jù)改成1.80,D2結(jié)果為10。再把第6個數(shù)據(jù)改成1.80,D2結(jié)果為6。就是說,現(xiàn)實生活中,我們會把這一隊同學(xué)從第1個開始依次測量身高,找到一個正好等于1.8的就可以了,后面的不測了,全體解散,完成任務(wù)。如果沒有找到則退而求其次。
5)現(xiàn)實中,為了效率,我們會讓這些人按大小個排成一排,有兩種找法。如果要找大于1.8的最接近值,會從大個找起,逐漸接近,直到碰到一個小于1.8的搜索結(jié)束,上一個就是要找的人。反之要從小個找起。現(xiàn)在我們把公式的第3個參數(shù)改成-1,結(jié)果顯示#N/A。
降序排列
6)選中B列,單擊“數(shù)據(jù)”選項卡,“排序和篩選”中的“降序”按鈕,選擇“擴(kuò)展選定區(qū)域”,結(jié)果顯示為5。大于等于1.8的第一個同學(xué),原來的序號是6,第10個同學(xué)落選。
排序錯誤導(dǎo)致結(jié)果錯誤
7)現(xiàn)在我們把B5單元格的數(shù)據(jù)改成1.7,D2結(jié)果變成4,現(xiàn)在1.87被認(rèn)為是最接近1.8的最小值,第10個同學(xué)還是落選。這是因為我們要求必須按大小個排隊,10號同學(xué)排在6號同學(xué)后面,會被認(rèn)為10號同學(xué)比6號同學(xué)矮,所以返回錯誤結(jié)果。
8)需要再按降序重新排列一次就好了,選到10號同學(xué)了。
9)現(xiàn)在我們把6號同學(xué)數(shù)據(jù)改回1.8,把數(shù)據(jù)區(qū)按B列升序排列,結(jié)果出錯。把公式中的第3個參數(shù)刪掉,結(jié)果為11,還是6號同學(xué),與降序的篩選結(jié)果一致,沒天理呀!這次測量是10號同學(xué)先等于1.8的!為什么不停止!此時如果加上第3個參數(shù)0,才可以按順序選到10號同學(xué)。按照升序排列,要找到一個超過1.8的才會停止測量呢!
去掉等于1.8的數(shù)據(jù)
10)把等于1.8的數(shù)據(jù)全改掉,升序和降序選擇的人才會不一樣,一個是低于1.8的最大值,一個是高于1.8的最小值。
11)思考一下,查出來的單個行值或列值有什么用?比如,我們一般的表格每列都是不同的數(shù)據(jù),將其中的任一列都可當(dāng)作索引列,查出行號匹配值后,我們就可以構(gòu)造多個引用,配上列號得到整個一行的其他數(shù)據(jù)。可以用于查詢,但要先排序。
(待續(xù))
本文原作者為陳鄧奇,轉(zhuǎn)載請注明:出處!如該文有不妥之處,請聯(lián)系站長刪除,謝謝合作~
原創(chuàng)文章,作者:陳鄧奇,如若轉(zhuǎn)載,請注明出處:http://www.uuuxu.com/20220514322212.html