標籤:

全體村民注意:星號和逗號又要坑人了

2018-01-11祝洪忠

小夥伴們好啊,今天老祝要和大家分享一組很少有人注意,但是卻很重要的知識點,逗號「,」和星號「*」。要想學好函數公式,這個必須要理解才可以哦。在函數公式中,逗號的作用是對不同參數進行間隔。但是在實際應用中,一些新人朋友往往會被這個小逗逗搞得暈頭轉向。首先來看看咱們熟知的IF函數,如果A1輸入1,目測一下下面兩個公式,會返回什麼結果呢?=IF(A1>5,"大")=IF(A1>5,"大",)怎麼樣,猜對了嗎?前者返回的是邏輯值FALSE,後者返回的是數值0。兩個公式唯一的差別是一個逗號,第一個公式預設參數,是指參數的位置給剝奪了。第二個公式是省略參數值,就是位置留著,不過沒有明確指出參數值是多少。接下來再看一個排名函數RANK。

C2單元格的公式是=RANK(B2,B$2:B$6)RANK函數的第三參數如果為0或是省略,排位結果是按照降序排列的。如果第三參數不為零,則排位結果是按照升序排列的。

一個逗號的差異,蒼老師從排名第一直接變成排名第5了。MATCH函數參數中的最後一個逗號也是有講究的。如下圖所示,需要查詢芳菲在A列所處的位置。

圖中分別使用兩個公式,結果卻不相同。=MATCH(D2,A:A)=MATCH(D2,A:A,)從圖中可以看出,前者返回的是一個錯誤結果。當MATCH函數第三參數為0或是省略參數值時,將按精確匹配的方式返回結果。如果逗號也省略了,就是查找小於或等於查詢值的最大值,但是要求查詢參數中的值必須按升序排列。受逗號影響的,還有VLOOKUP函數,看下圖:

圖中分別使用了兩個公式,這裡的逗號也會影響查詢的精度。=VLOOKUP(D2,A:B,2)=VLOOKUP(D2,A:B,2,)當VLOOKUP函數第四參數為0或是省略參數值時,將按精確匹配的方式返回查詢結果。如果逗號也省略了,就是在查詢區域中查詢小於或等於查詢值的最大值,並返回指定列的內容,同樣要求查詢參數中的值必須按升序排列。通過以上幾個例子可以看出,小小的逗號對公式結果的影響是不容忽視的,你還可以舉出幾個類似的例子嗎?在Excel中,還有一個身份獨特的符號,就是小星號(*),千萬不要小看他,就是這個小小的精靈,總讓新手們覺得難以捉摸。說它身份獨特,是因為星號(*)除了表示運算符乘號,還具有通配符的身份,用來表示任意多個字元。與之對應的還有半形的問號「?」,問號也是通配符的一種,表示的是單個字元。既然身份特殊,就要有特殊的處理規則。如下圖所示,需要將單元格中的星號(*)批量替換為「待評估」。

如果按常規方法,所有數據都將被替換為「待評估」。

正確方法是:

在星號(*)之前加上波形符(~),起到轉義的作用,就是告訴Excel:我要查找的是文本字元*,不要按通配符進行處理哦。在某些公式中,星號(*)則表示通配符。如公式:=SUMIF(A:A,"HK*",B:B)就是表示如果A列中以字元「HK」開頭,則計算所對應的B列之和。常用的支持通配符的函數包括:SUMIF、SUMIFS、COUNTIF、COUNTIFS、AVERAGEIF、AVERAGEIFS等等。除了使用星號(*)作為通配符按模糊條件進行匯總之外,星號(*)還有另一個特殊的用途:如下圖所示,需要標註身份證號碼是否重複。如果直接使用下面的公式判斷,將無法得到正確結果。=IF(COUNTIF(B:B,B2)>1,"重複","")

圖中,女神和金蓮的身份證號碼完全一致,公式貌似沒有問題,但是再看金花的身份證號碼,問題就來了,後三位不同的身份證號碼也被識別為相同了。這是因為COUNTIF函數在處理文本型數字時,會自動按數值進行處理,而Excel的最大精度只有15位,超過15位部分全部按0進行處理,所以對於18位的身份證號碼出現了錯誤判斷。可以在公式中加上一個星號(*),以實現正確判斷。=IF(COUNTIF(B:B,B2&"*")>1,"重複","")

加上星號(*)的目的是使其強制識別為文本,相當於告訴COUNTIF,我找的是以B2單元格內容開頭的文本,這樣就可以區分女神和金花了。如果需要精確查找含有星號(*)的內容,也需要進行特殊的處理。如下圖所示,需要根據D2單元格中的指定產品型號查詢對應的供貨商,E2單元格公式為:=INDEX(B:B,MATCH(D2,A:A,))

結果明顯不對了,明明是如花,返回怎麼是女神呢。由於D2單元格中包含星號(*),MATCH函數查找時就會默認將星號按通配符處理,在B列中返回前兩個字元是「6S」、最後一個字元是「A」的位置。如果有多個符合條件的結果,MATCH函數只能返回第一個的位置,所以女神如花傻傻分不清了。使用以下公式可以返回正確的結果:=LOOKUP(1,0/(A2:A8=D2),B2:B8)

利用等式中不能使用通配符的特點,用A2:A8=D2,以完全匹配的方式返回邏輯值TRUE或是FALSE。再用0除以邏輯值,得到0或是錯誤值#DIV/0!組成的內存數組。最後使用1作為查找值,以內存數組中最後一個0進行匹配,並返回B2:B8單元格對應位置的內容。最後留給大家一個小尾巴:如果在單元格中輸入下面的內容,想想結果會是什麼呢?=4**5

打開Excel驗證一下,你猜對了嗎,為什麼會是這樣呢?
推薦閱讀:

四大寶寶起名的注意事項
用玻璃杯喝綠茶的注意事項
3秒鐘被注意,3分鐘被喜愛
糖尿病注意的飲食
手有「三角紋」的人,千萬要注意了,不論男女,遲早會成為有錢人

TAG:注意 | 坑人 |