編按
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”,然後下拉複制填充公式,得到的結果如下圖所示。
可以看到,這裡并沒有用到減負運算,這是為什麼呢?請小夥伴們自己來思考一下哦!
有話要說...