當前位置:首頁 > 教育 > 正文

我折騰到半夜,同事用這個“萬能”函數,30秒查找提取數據交給領導

編按

Hello大家好,Find函數是Excel中非常常見的查找函數,除了自身的查找定位功能外,它還經常與其它函數嵌套使用。今天我們就來學習一下Find函數搭配Average、Left、Mid函數解決區間數據平均值的問題。對于一長串的嵌套函數,各位小夥伴也不要害怕,阿碩老師今天一步一步給你講得明明白白的。連函數苦手小E都能學會,相信你也可以~

哈喽,大家好,歡迎來到部落窩教育!我是阿碩。最近,有小夥伴咨詢了這樣一個問題:公司每月的銷售任務是一個區間,但是公司領導想讓我計算一下區間的平均值,該如何做?

這位小夥伴的數據如下圖所示。A列中的數據是月份,B列中的數據是公司制定的月銷售任務。根據公司核算制度的要求,月銷售任務的平均值是月銷售任務的最低值與最高值的平均值。下面,就讓我們一起來看一看如何解決這個問題吧!

【思路分析】

通過上圖,我們可以看到,公司的月銷售任務是一個區間,這個區間是由短斜杠“-”連接的,“-”的兩端,分别是月銷售任務區間的最低值和最高值。所以,我們解決這個問題的思路,就是先找到“-”的位置,然後再分别提取其左、右兩側的數據,最後,再計算平均值。

掃碼入群,下載Excel圖表文件練習

Step1 通過FIND函數定位“-”

在C2中輸入“=FIND("-",B2,1)”,然後下拉複制填充公式,即可找到“-”在月銷售任務這一列數據中的位置,如下圖所示。

【函數釋義】

FIND函數的作用是對數據中某個字符串進行定位,返回其位置的值。

①FIND函數的第一參數是要定位的某個字符串,在本例中為“-”,所以我們以“-”作為第一參數;

②FIND函數的第二參數是含有要查找的字符串的單元格,在本例中,由于我們是要判斷“-”在B列中的位置,所以我們用B2單元格作為第二參數(注:函數下拉之後,就會依次變成B2、B3、B4、B5);

③FIND函數的第三參數是定位的起始位置,在本例中,我們是從B2單元格的第1個字符開始查找“-”,所以我們以“1”作為第三參數。

④由上圖可見,FIND函數的返回值為依次為6、6、7、7,這就表明“-”在B2:B5中的位置分别是在第6、6、7、7位。

Step2 使用LEFT函數提取“-”左側的數據

剛才我們已經通過FIND函數定位到了“-”的位置,接下來,讓我們來提取“-”左側的數據。由于月銷售任務的最低值是“-”左側的内容,所以我們使用LEFT函數來提取“-”左側的數據。

我們在D2中輸入“=LEFT(B2,C2-1)”,然後下拉複制填充公式,得到的結果如下圖所示。

【函數釋義】

這裡有一點需要注意:由于 “-”分别位于B2:B5的第6、6、7、7位,而B2:B5的前5、5、6、6位數字剛好是我們需要的内容, “-”的位置與我們要提取的數字的位數剛好相差1。所以我們在寫LEFT函數時,第二參數應為FIND函數的返回值再減1,即為“C2-1”。

Step3 使用MID函數提取“-”右側的數據

提取完“-”左側的數據,讓我們再來提取“-”右側的數據,即月銷售任務的最高值。

要實現這一需求,我們可以使用MID函數。MID函數的作用,就是從數據中間的某一位置開始,向右側提取若幹個連續的數據。

我們在D2中輸入“=MID(B2,C2+1,99)”,然後下拉複制填充公式,得到的結果如下圖所示。

【函數釋義】

①剛才我們已經說過,“-”分别位于B2:B5的第6、6、7、7位,所以從B2:B5的第7、7、8、8位開始直至數據的末尾,恰好是我們需要提取的數據,“-”的位置與我們要提取的數據長度之間,剛好也相差1。所以我們在寫MID函數時,第二參數應為FIND函數的返回值再加1,即為“C2+1”。

②我們重點來看一下MID函數的第三參數。對于B2、B3來說,應該用MID函數向右提取5位數,對于B4、B5來說,應該用MID函數向右提取6位數。可以看到,提取的位數并不統一。那麼,MID函數的第三參數應該如何寫呢?阿碩是使用“99”來作為MID函數的第三參數的。這是為什麼呢?

因為向右提取的數據的位數是不确定的(假設5月份的銷售任務是900000-1100000,則我們要向右提取7位數),所以我們可以找一個比較大(能夠涵蓋實際應用中可能遇到的數據長度)并且方便輸入的數字來作為MID函數的第三參數!

根據常用的使用習慣,我們一般使用“99”來作為第三參數。因為實際工作中的數據一般不會超過99位,并且輸入兩個“9”相對于輸入兩個不同的數字還是相對更符合我們“偷懶”的需求的!

有的小夥伴可能還會問,“-”後面的數據不足99位,但是我們要提取99位,會不會出問題?答案是不會!因為如果數據位數不足99位的話,MID函數提取的數據是以實際長度為準的。

Step 4 使用AVERAGE函數計算平均值

好了,提取出了“-”左、右兩側的數據之後,接下來,讓我們計算平均值。計算平均值,我們可以使用AVERAGE函數。

我們在F2中輸入“=AVERAGE(--D2,--E2)”,然後下拉複制填充公式,得到的結果如下圖所示。

【函數釋義】

有的小夥伴可能會問,為什麼在D2和E2前面加上了減負運算(“--”)呢?

這是因為,LEFT函數和MID函數都是文本函數,它們的返回值都是文本格式。剛才我們所寫的的LEFT函數和MID函數,得到的結果雖然看上去都是數字,但是它們的數據格式實際上卻是文本,也就是說,它們是文本型的數據。

所以,我們需要通過減負運算把它們變成數值型的數據,才可以讓它們作為AVERAGE函數的參數參加運算。因為如果不這樣,就會出現“#DIV/0!”的錯誤提示。

Step5 函數嵌套

好了,小夥伴們,分步驟的函數我們已經都寫出來了,下面,我們隻要将函數嵌套在一起就行了。

我們在G2中輸入“=AVERAGE(--LEFT(B2,FIND("-",B2,1)-1),--MID(B2,FIND("-",B2,1)+1,99))”,就可以得到我們想要計算的月銷售任務的平均值啦!本步驟的結果如下圖所示。

小彩蛋:

有的小夥伴可能覺得在寫AVERAGE函數的時候,用減負運算有那麼一丢丢麻煩,想問問有沒有什麼辦法可以避免這個問題?

感興趣的小夥伴,可以在H2中輸入“=(LEFT(B2,FIND("-",B2,1)-1)+MID(B2,FIND("-",B2,1)+1,99))/2”,然後下拉複制填充公式,得到的結果如下圖所示。

可以看到,這裡并沒有用到減負運算,這是為什麼呢?請小夥伴們自己來思考一下哦!

你可能想看:

有話要說...

取消
掃碼支持 支付碼