下面是某公司的財務人員收到的一份納稅人的信息表,其中納稅人名稱與稅號連在一起了。得想個辦法將其分離開來。
難點在于稅號有15位,17位,18位與20位的,完全沒有規律可以尋求,如果要使用分列與按固定長度提取的基本上沒戲了。但是小必還是給大家想了兩個辦法:
一是利用智能填充去提取;
二是利用公式函數來提取,當然公式與函數教大家最簡單的。
方法1
智能填充
在前面的帖子中給大家講過了關于智能填充的用法。
操作步驟為:先將要提取的對應的部分復制粘貼到對應的列去,然后選中要填充的區域,按快捷鍵<Ctrl+E>,如上圖所示。
注意:該方法在Excel2013的版本中才有此功能,以下的版本沒有此項功能,只能選擇公式與函數法。另外該功能對于規律很強的字符串能完全應對,但是對于上面像第3行的情況就出現了問題,所以請大家繼續向下看,下面的解決的方法更為穩妥。
方法2
公式函數法
在公式與函數法中,給大家提供2種方法供大家選擇,其基本的思路如下:
思路1:利用SEARCHB("?",A2)模式,此公式表示在A2單元格中的字符串中確定第一個單字節的位置;
思路2:2LEN(A2)-LENB(A2)模式,此公式表示計算單元單字節的字符的個數。
注意:在Excel中一個漢字表示兩個兩字節,屬于雙字節,而字母與數字屬于單字節,即一個數字或者字母表示一個字符。
思路1解法:
在B2單元格中輸入公式:=LEFTB(A2,SEARCHB("?",A2)-1),向下填充完成。
說明:SEARCHB("?",A2)表示在A2單元格中確定第一個單字節的位置為數字開始的位置,然后使用LEFTB函數從左向右進行提取字節至第一個單字節開始的前一位置即可,所以減1結果就正確了。
在C2單元格中輸入公式:=RIGHTB(A2,LENB(A2)-SEARCHB("?",A2)+1),向下填充完成。
說明:LENB(A2)-SEARCHB("?",A2)+1表示在A2字符串中單字節字符的個數有多少個,LENB函數是提取A2單元格中的字符串的長度(單字節)。如果不想使用從右截取的函數,也可以直接使用公式:=SUBSTITUTE(A2,B2,""),即把公司名稱替換為空白即可。
思路2解法:
在B2單元格中輸入公式:=LEFT(A2,LENB(A2)-LEN(A2)),向下填充完成。
說明:LENB(A2)表示計算出所有的字數以單字節計數的長度,LEN(A2)表示以正常的字節長度計算,兩者的差就可以得到了漢字的個數。然后使用LEFT函數進行截取即可。
在C2單元格中輸入公式:=RIGHT(A2,2*LEN(A2)-LENB(A2)),向下填充完成。
說明:2LEN(A2)-LENB(A2)是計算出除漢字以外的單字節字符的數量,然后使用截取函數進行截取即可。如果不想使用從右截取的函數,也可以直接使用公式:=SUBSTITUTE(A2,B2,""),即把公司名稱替換為空白即可。
小伙伴們,學會了吧,如果還沒有學會的可以下載正同的案例素材進行練習。
鏈接:
https://pan.baidu.com/s/1zg7EDYVWvWDxWw-y2jniIg
提取碼:xfce