這樣用IF函式,才能讓你的效率翻倍「Excel教程」

作者老菜鳥 轉自excel教程

編按:

哈嘍,大家好!在excel中判斷單元格是否包含指定內容,已經是一個老生常談的話題了,相信大家在工作中也遇到不少類似問題。今天就給大家說說解決這類問題常見的三個套路,保證招招好使!

判斷單元格是否包含特定內容是平時工作中經常會遇到的一類問題,常見於包含備註資訊的表格中。例如下面這個考勤彙總表,需要根據備註中的內容判斷該員工是否存在加班的情況,就屬於這類問題。

這樣用IF函式,才能讓你的效率翻倍「Excel教程」

遇到這類問題該如何處理,常用的公式做法有三種,下面為大家逐一進行介紹。

01

IF+COUNTIF

公式:=IF(COUNTIF(D2,“*加班*”)=0,“”,“是”)

這樣用IF函式,才能讓你的效率翻倍「Excel教程」

公式解析:

COUNTIF(D2,“*加班*”)是這個公式的核心部分,這個函式主要實現的是條件計數功能,基本格式為COUNTIF(條件區域,條件)。

在這個例子中,條件區域就是一個單元格“D2”,而條件則是在要判斷的內容兩邊同時加上萬用字元*後得到的值,實現的效果就是對滿足條件的單元格進行計數,如果包含要判斷的內容,結果為1,不包含的話結果就是0。

這樣用IF函式,才能讓你的效率翻倍「Excel教程」

有了這個結果後,再使用IF函式得到最終的結果,公式=IF(COUNTIF(D2,“*加班*”)=0,“”,“是”)也就很好理解了。如果D2單元格中不包含“加班”,COUNTIF的結果就是0,IF返回對應的空值,否則返回“是”。

再來看看第二個方法。

02

IF+ISERR+FIND

公式:=IF(ISERR(FIND(“加班”,D2)),“”,“是”)

這樣用IF函式,才能讓你的效率翻倍「Excel教程」

公式解析:

這個公式的核心部分是FIND(“加班”,D2),FIND函式的基本格式為FIND(要找的內容,在哪找,從第幾個字開始找),如果第三引數不寫,表示從首字元開始找。這個公式的意思就是在D2單元格中找“加班”這兩個字,如果能找到,FIND就返回要找的內容在單元格中的位置,如果找不到就會返回一個錯誤值。

這樣用IF函式,才能讓你的效率翻倍「Excel教程」

從上圖中可以看出FIND函式的效果。接下來要判斷結果是否為錯誤值,如果是錯誤值,表示沒有要找的內容,這就需要用到ISERR這個函式。ISERR函式很簡單,就是判斷一個值是否為#N/A以外的錯誤值,本例中的錯誤值為#VALUE!,因此用這個函式完全沒問題。

這樣用IF函式,才能讓你的效率翻倍「Excel教程」

最後再加上IF函式,就構成了完整的公式=IF(ISERR(FIND(“加班”,D2)),“”,“是”)。

相比第一個方法,這個公式略微有點難度,不過多實踐兩個函式也不失為一件美事。

最後來看看第三個方法。

03

IF+SUBSTITUTE

公式:=IF(SUBSTITUTE(D2,“加班”,“”)=D2,“”,“是”)

這樣用IF函式,才能讓你的效率翻倍「Excel教程」

公式解析:

這個公式中用到了一個比較長的函式SUBSTITUTE,這個函式的功能是替換字元,格式為SUBSTITUTE(在哪裡替換,要替換的內容,替換為什麼,替換第幾個),如果最後一個引數不寫,表示全部替換。

公式SUBSTITUTE(D2,“加班”,“”)的意思是把D2單元格中的“加班”兩個字替換為空,替換後的結果如圖所示。

這樣用IF函式,才能讓你的效率翻倍「Excel教程」

接下來的一步比較有意思,用替換後的內容和原來的內容做比較,也就是SUBSTITUTE(D2,“加班”,“”)=D2,如果包含加班的話,替換後的內容肯定不等於原來的單元格了,反之如果替換後的內容與原內容一樣,表示不包含要找的內容,最後還是使用IF來實現結果的輸出。

相比前兩個方法,公式=IF(SUBSTITUTE(D2,“加班”,“”)=D2,“”,“是”)的思路非常巧妙,也從另一個方面讓我們重新認識了SUBSTITUTE函式。

小結:站在解決問題的角度來說,第一個方法足夠了,容易理解,也比較簡單。但是站在學習的角度來說,當我們遇到一個問題時,不妨多嘗試幾種思路,一方面可以開拓自己的思維,另一方面也可以多熟悉一些函式,有了不同的解決方法,也就可以體會到研究公式函式的樂趣,很多所謂的高手大神,其實都是這樣練出來的。