當前位置: 妍妍網 > 辦公

一個VLOOKUP函式就能解決的事,你卻用IF函式寫了一長串,難怪你天天加班!

2024-03-03辦公

領導給小張布置了一項任務——完成公司全體員工的統計,需要將員工的年齡劃分成不同的年齡段,然後再按年齡段進行統計。

數據如下圖所示,A列為員工姓名,B列為員工年齡,C列為要計算的員工年齡段。 公司全部員工的年齡範圍是18歲至60歲,根據公司要求,需要將員工的年齡段具體劃分為: 18-20歲,21-25歲,26-30歲,31-35歲,36-40歲,41-45歲,46-50歲,51-55歲,56-60歲,一共9個年齡段。

小張是怎麽操做的呢?

他的辦法就是用IF函式一層一層地巢狀,對年齡區間依次進行判斷。

先判斷員工年齡是否在18-20歲這個區間,如果在,則返回「18-20歲」,如果不在18-20歲這個區間,則判斷員工年齡是否在21-25歲這個區間,如果在,則返回「21-25歲」,如果不在21-25歲這個區間,則判斷員工年齡是否在26-30歲這個區間……然後就這樣一個區間一個區間判斷下去,直到完成所有年齡段的判斷。

IF函式是Excel中的基礎函式了,小張原以為這是一個簡單的事兒。可是,小張在寫IF函式的過程中,他感覺簡直不能更崩潰了。

IF函式的難點:

- 因為IF函式巢狀的層數太多,經常寫著寫著,就忘記寫到哪一層了;

- 隨著巢狀層數的增加,函式中的括弧越來越多,一不小心少寫或多寫一個,就出錯;

- 年齡段的返回值需要用引號括起來,引號中還要漢字,所以就要在漢字和英文輸入法間來回切換,也很麻煩;

- 還有就是,沒寫完的函式,在Excel中不能進行保存,如果一不小心碰到其他的單元格,則前面辛辛苦苦寫下的巢狀函式就白寫了。

總之,種種意想不到的狀況,導致小張把屁股「貼上」在工位上了,心塞!

過了很久,終於把公式寫出來了,大家感受一下:

=IF(AND(B2>=18,B2<=20),"18-20歲",if(and(b2>=21,B2<=25),"21-25歲",if(and(b2>=26,B2<=30),"26-30歲",if(and(b2>=31,B2<=35),"31-35歲",if(and(b2>=36,B2<=40),"36-40歲",if(and(b2>=41,B2<=45),"41-45歲",if(and(b2>=46,B2<=50),"46-50歲",if(and(b2>=51,B2<=55),"51-55歲","56-60歲< span="">"))))))))

別說寫這個公式,是不是看到它,就讓人絕望?

那麽,有沒有什麽函式,能夠高效地解決小張面臨的這個問題呢? 當然有了! 案就是那個人見人愛、花見花開的函式界的「大眾情人」——VLOOKUP函式。 不過,更確切地說,應該是VLOOKUP函式的模糊查詢功能。

只需要在C2中輸入 「=VLOOKUP(B2,E:F,2,1)」即可。

下面,大家就來具體學習一下公式是如何透過VLOOKUP模糊查詢功能來實作小張需求的。

關於模糊查詢,有一個很簡單但是很重要的概念:查詢小於等於某值的最大值。

可能有一點繞,小夥伴們可以多讀幾遍這句話,並把它記牢。打一個形象的比方,如果有重要的賓客來公司存取,在理論上應由公司一把手接待,如果一把手在的話,則由他接待;如果偏巧一把手不在的話,那麽應由職位上小於等於一把手的那個領導——也就是公司二把手接待,說白了,就是「老大在家找老大,老大不在找老二」。

對模糊查詢的概念有了理解之後,接下來,就該研究研究如何操作了。

熟悉VLOOKUP函式的小夥伴們都知道,VLOOKUP函式的第一參數,是查詢值,在本例中,即為B列中的員工年齡;

VLOOKUP的第四參數,是查詢方式,其為0時,是精確查詢,其為1時,是模糊查詢,因為要本例中我們要使用的是VLOOKUP函式的模糊查詢功能,所以第四參數為1。

現在,四個參數就已經確定了兩個。接下來,大家來看一下第二、第三參數應該是什麽?

大家知道,VLOOKUP函式的第二參數是查詢區域,而第三參數是返回值在查詢區域中的列序號,所以,只要第二參數(即查詢區域)確定了,第三參數就應運而生了。所以,問題就轉化為,我們要構建一個查詢區域來作為VLOOKUP函式的第二參數。

如果這個查詢區域構建出來,就可以順利解決小張面臨的問題了。筆者構建了一個查詢區域,如下圖中E列、F列所示。

E列中的數據為分段點,它的值,分別是各個年齡段的起始值。F列中的數據為分段點對應的就是分段內容,在本例中即為年齡段。這裏面有一個邏輯,就是如何將分段點和分段內容對應起來。分段內容是一種標識,它用來標識各分段點所對應的區間段,一般來說,分段內容標識的是分段點(註意:包含此分段點)至下一個分段點(註意:不包含此分段點)之間的數據。

以18這個分段點為例,它對應的是從18歲至下一個分段點21之間的所有年齡,即 18歲、19歲、20歲,亦即18-20歲。以此類推,21對應的是21歲、22歲、23歲、24歲、25歲,亦即21-25歲……56對應的即為56歲、57歲、58歲、59歲、60歲,亦即56-60歲。

下面,大家再從各個員工年齡的角度,來看一下構造出的查詢區域和VLOOKUP函式之間的關系,如下圖所示。

假設大家要尋找的員工年齡是18歲,那麽尋找的是小於等於18的最大值,即為18,亦即實際尋找值為18,則對應的年齡段是18-20歲;假設我們要查詢的員工年齡是19歲,那麽查詢的是小於等於19的最大值,即為18,亦即實際尋找值為18,則對應的年齡段是18-20歲;其余以此類推。

好了,弄清模糊查詢的邏輯和查詢區域的構建方法之後,接下來,大家只要寫一下VLOOKUP函式的公式就行了。

在C2中輸入 「=VLOOKUP(B2,E:F,2,1)」,然後下拉復制填充,即可得到員工的年齡段,如下圖所示。

這樣,透過VLOOKUP函式,就輕松地解決了小張面臨的問題。而且采用這種方式,不僅寫函式的時候輕松,而且函式的擴充套件性非常好。例如,假設公司中的員工有61-65歲的員工,如果想要對他進行年齡段判斷的話,只需要再加增加一個新的分段點和對應的年齡段即可(函式不用動),如下圖所示。

VLOOKUP函式的模糊查詢功能是對數值型數據進行分段的一個非常重要的函式,它廣泛地套用於賬齡、工齡、年齡、成績、銷售數量、銷售金額、天數等數值型數據的分段問題中。

最後,再給大家留一個小小的練習作業:請用VLOOKUP函式的模糊查詢,來計算月份對應的季度。答案就提前公布在下方了,小夥伴們,趕快來練習一下吧!


粉絲福利:免費課程,掃碼領取學習

2元領取:全套Excel技巧視訊+200套樣版



點"閱讀原文",學習更多的Excel視訊教程