不久前,WPS官微發(fā)布了一條消息,說是自即日起WPS開始正式支持XLOOKUP函數(shù)。
很多人就奇怪了,作為一款辦公軟件,增加個(gè)函數(shù)不是太正常了?這有啥可激動(dòng)的?
其實(shí)能讓W(xué)PS“激動(dòng)”自然是有些道理,理由就是這個(gè)XLOOKUP實(shí)在太強(qiáng)了!
示例1、反向查找
目的:通過“姓名“反查“工號(hào)“
公式:=XLOOKUP(G6,B:B,A:A)
日常工作中我們經(jīng)常會(huì)遇到用姓名查工號(hào)的情況,由于原始數(shù)據(jù)中,“工號(hào)”字段通常是位于“姓名”之前,因此直接使用VLOOKUP肯定無法得到結(jié)果。
通常的辦法,是借助IF函數(shù)建立一個(gè)虛擬數(shù)組”IF({1,0},B:B,A:A)”,將“工號(hào)”與“姓名”臨時(shí)對(duì)調(diào)一下,以滿足VLOOKUP的操作需求。
不過它的問題就是,對(duì)于新手童鞋來說,這個(gè)數(shù)組太難理解了。
如果換作XLOOKUP呢?很簡(jiǎn)單,直接輸入“=XLOOKUP(G6,B:B,A:A)”就行。
整個(gè)語法基本參照了VLOOKUP的習(xí)慣,先確定好要查找的內(nèi)容(G6),然后告訴表格去哪里查找(B:B),最后返回對(duì)應(yīng)列的結(jié)果就可以了(A:A)。
相比之下,XLOOKUP的邏輯是不是就清晰多了!
示例2、出錯(cuò)處理
目的:當(dāng)查詢無結(jié)果時(shí),顯示“查無此人“
公式:=XLOOKUP(G6,B:B,A:A,"查無此人")
為了防止LOOKUP、VLOOKUP等函數(shù)意外出錯(cuò),我們通常會(huì)在函數(shù)外圍包裹一層IFERROR,用于手工控制出錯(cuò)信息的顯示。
不過這種做法一來會(huì)讓公式變長,二來也不怎么高效。而XLOOKUP的處理方法絕對(duì)是簡(jiǎn)單粗暴,直接將出錯(cuò)信息標(biāo)在了函數(shù)里。高效的同時(shí),也讓公式更加簡(jiǎn)練,就像下面這樣:“=XLOOKUP(G6,B:B,A:A,"查無此人")”。
示例3、批量化查詢
目的:通過“工號(hào)“查詢?cè)搯T工所有信息
公式:=XLOOKUP(G8,A:A,B:E)
編寫搜索器時(shí),會(huì)在原始數(shù)據(jù)中批量查詢所需的內(nèi)容。通常有兩種解決方法,一是借助VLOOKUP手工確定要查詢的列,二是通過COLUMN函數(shù)配合VLOOKUP做一個(gè)半自動(dòng)查詢器。
那么XLOOKUP有沒有更簡(jiǎn)單的辦法呢?答案是有的,方法就是直接填寫“=XLOOKUP(G8,A:A,B:E)”。
語法上依舊沿用了VLOOKUP的邏輯,先是確定好要查找的內(nèi)容(G8),然后告訴表格去哪里查找(A:A),接下來返回B:E列里的對(duì)應(yīng)信息即可。
由于函數(shù)的“溢出效應(yīng)”,相鄰幾個(gè)單元格(性別、職務(wù)、部門)也會(huì)自動(dòng)填好結(jié)果,連拖拽這一步都省去了。
示例4、多條件查詢
目的:通過“姓名”和“性別”兩組條件查詢員工信息
公式:=XLOOKUP(G7&H7,B:B&C:C,D:D)
現(xiàn)實(shí)中重名的情況并不少見,當(dāng)一個(gè)條件無法確定一個(gè)人時(shí),就要加載第二組條件。
比如本例中,小編就使用了“姓名”+“性別”的雙重條件驗(yàn)證。對(duì)于此類需求,傳統(tǒng)的VLOOKUP需要借助IF函數(shù)生成一個(gè)虛擬數(shù)組。而在XLOOKUP之下,上述公式可以直接簡(jiǎn)化為“=XLOOKUP(G7&H7,B:B&C:C,D:D)”。
示例5、模糊查詢
目的:根據(jù)分值為每個(gè)人標(biāo)注等級(jí)。
公式:=XLOOKUP(D2,$H$2:$H$5,$I$2:$I$5,,-1)
熟悉VLOOKUP的小伙伴,大多知道這個(gè)函數(shù)最后有一個(gè)“精確匹配FALSE”和“近似匹配TRUE”的小參數(shù)。
其中的“近似匹配”,就是我們常說的模糊查找。通常來講,模糊查找主要用作區(qū)域數(shù)值的界定,比如90-100分為“優(yōu)秀”、70-89分為“良好”,類似這樣的分?jǐn)?shù)段篩選,就很適合使用模糊查找。
不過它有一個(gè)前提,那就是數(shù)值源必須提前使用升序排列,否則無法得到準(zhǔn)確結(jié)果。
而使用XLOOKUP就不用這么麻煩了,它的第五個(gè)參數(shù)(輸入公式時(shí)會(huì)有提示)直接提供了“0”、“-1”、“1”、“2”四種不同匹配條件。
以本例使用的“-1”為例,它的含義就是當(dāng)搜索結(jié)果達(dá)不到目標(biāo)值499時(shí),會(huì)自動(dòng)向下查找(小于499)。正是借助這樣一個(gè)選項(xiàng),我們就輕松配置出了一個(gè)業(yè)績(jī)等級(jí)設(shè)定表。
示例6、橫向查找
目的:輸入產(chǎn)品名稱查詢?cè)摦a(chǎn)品的銷量、銷售額、利潤、利潤率
公式:=XLOOKUP(B7,B1:E1,B2:E2)
在Excel中,除了縱向搜索的VLOOKUP外,還有一個(gè)支持橫向搜索的HLOOKUP。這兩組函數(shù)雖然作用不一,但語法卻基本相同。
區(qū)別是一個(gè)在列中查找,一個(gè)在行中查找。而我們的XLOOKUP其實(shí)也集合了縱向和橫向兩種查詢機(jī)制,除了上面講到的縱向查詢外,你還可以通過變換查找區(qū)域來實(shí)現(xiàn)橫向搜索。
具體效果,如上圖所示。
示例7、搜索最后記錄
目的:快速查詢某商品的最新入庫價(jià)格
公式:=XLOOKUP(F4,B:B,C:C,,,-1)
很多出入庫表格,都需要查找最后一次出入記錄。這個(gè)看似簡(jiǎn)單的要求,實(shí)現(xiàn)起來卻不容易。
通常我們都是使用LOOKUP建立一個(gè)虛擬數(shù)組,然后再對(duì)其進(jìn)行查找。
但正如前面所言,這一類東東一來不適合新手理解,二來過多的數(shù)組函數(shù)對(duì)于系統(tǒng)性能也是拖累。特別在一些大型表格中,頻繁地使用數(shù)組函數(shù),會(huì)讓表格變得異常緩慢。
而XLOOKUP的加入,讓這個(gè)問題變得簡(jiǎn)單多了。它的解決方法很簡(jiǎn)單,直接用一個(gè)參數(shù)來搞定。
依舊以上文為例,如果想查詢某商品的最近一次入庫價(jià)格,只要在它的第6參數(shù)位中,輸入?yún)?shù)值“-1”。而返回的結(jié)果,正是該商品的最后一次入庫價(jià)。
寫在最后
怎么樣?看完上面這些案例,是不是有種豁然開朗的感覺?其實(shí)在日常使用中,XLOOKUP還有邏輯清晰、語句簡(jiǎn)練等優(yōu)勢(shì)。
舉個(gè)最簡(jiǎn)單例子,以往在使用VLOOKUP時(shí),查找范圍后面的列數(shù)常常要我們手工去數(shù),而XLOOKUP由于直接使用了列標(biāo)作為返回列,因此也就省掉了這個(gè)步驟。
同時(shí)由于XLOOKUP還是一個(gè)全能型選手,特別對(duì)于新手來說更加友好,再不用勞神記憶各種復(fù)雜的函數(shù)和數(shù)組,一個(gè)XLOOKUP統(tǒng)統(tǒng)就搞定了!
評(píng)論