在工作中,我們常常需要處理一些數據,小編最近在統計一批鋼管尺寸時,拿到的數據是“外徑*壁厚”,小編想計算內徑,一兩個還好,可以用計算器計算,可是幾千個數據,看著頭都大了。後來,小編經過一番研究,用公式很好的解決了此問題,下面來分享一下小編的經驗吧。
工具/原料
電腦
office Excel2007版本
方法/步驟
首先,我們來看看我們需要處理的數據,最左邊A列是外徑×壁厚,如果數據量也就兩三個,我們可以直接在B列和C列分別手動輸入外徑和壁厚,然後D列用公式D=B-2×C就可以了,可是如果A列成千上萬個數據的時候,這麼做那可是要累到趴的喲。
別急,讓小編慢慢告訴你怎麼巧用公式將*號兩邊的字符分開。
首先我們要獲取的是*號左邊的外徑數據,我們要用到一個函數:left。作用是從左邊開始獲取字符,它的格式是=left(text,[num_chars]),裡面有兩個參數,一個是text,也就是你要從哪裡獲取字符,另一個是num_chars,也就是你要獲取幾個字符(可以不寫,默認獲取一個字符)。
小編給各位演示一下:比如我們要在A3單元格也就是177.8*16中獲取177.8,將結果放在B3,那麼我們在B3輸入=left(A3,5),按enter,結果就出來了。
也許你可能會問了,可是*號前不一定都是5個字符呀,這公式拉下去,有些結果不對啊。
別急,小編進一步告訴你該如何解決。造成那樣的結果是因為left公式中的字符數不會跟據A列的情況而變動,那麼就很簡單了,只要我們用一個能隨著A列的情況而變動的函數代替就好了。
這裡小編用了個函數:find,作用是查找某個特定字符在字符竄中的起始位置,它的格式是=find(find_text,within_text,[start_num]),它有三個參數:第一個find_text是你要查找的字符;
第二個within_text是這個字符在哪裡;
第三個start_num是從第幾個字符開始找,不填寫就默認是第一個開始。
小編給各位演示下函數的效果:
現在我們來獲取*左邊的字符,在B3輸入=left(A3,find("*",A3)-1)按enter,然後公式下拉,如何,是不是覺得很棒?
有人可能會問,為什麼要減1,大家理解麼?因為*的位置比前面字符的數量剛好多1,所以要減去1.
結果如圖所示:
那麼接下來我們再來看看,如何將*後面的字符分開。同樣,我們要用到一個叫 right 的函數,它的作用是從右邊開始獲取字符。它的格式是:
=right(text,[num_chars]),與left一樣的參數格式,不再囉嗦。
同樣,我們要保證num_chars隨著A列的情況變動,這裡用到兩個函數的組合,一個是find,跟前面一樣找出*號的位置,另一個是len,這個函數是獲取單元格字符竄的字符數。它的格式如下:
=len(text),給大家演示下len的效果:
我們發現,將獲取到的字符數減去*的位置,剛好是*號後面的字符的數量,所以,如果獲取A3單元格*號後面的字符,並放到C3,則C3的函數這麼寫:
=right(A3,len(A3)-find("*",A3))
輸入以上公式按enter,然後下來,是不是完美的解決了問題?
如圖所示:
到最後一步求內徑了,大家應該都知道: 內徑=外徑-壁厚*2,假設我們要將內徑結果放在D列,如圖示輸入函數就可以了。
注意事項
是不是很有用?小編曾為此研究了好久才發現這麼好的方法的,大家覺得有用就點個贊吧