《偷懶的技術(shù)》讀友群有朋友提問,如何將A列長短參差不齊的代碼(代碼的首字母均只有一位),用0補(bǔ)齊為五個字符長度,效果如B列C列如示。 一、公式1
在自定義格式中,0是占位符,當(dāng)數(shù)字位數(shù)小于自定義格式0的個數(shù)時,會自動用0補(bǔ)足。比如,下圖中的A列是原數(shù)據(jù),在B列對數(shù)字用自定義格式顯示為五位,不足五位的自動用0補(bǔ)齊。比如下圖中B4單元格實(shí)際值是321,設(shè)置自定義格式為“00000”,則顯示為“00321”。 在任一單元格使用下面的Text函數(shù),顯示效果也是一樣,比如:
我們可以使用這個知識點(diǎn)來編制公式:先截取A列右邊的數(shù)字(字符數(shù)減1),然后用TEXT顯示為四位長度,再與A列代碼的首字母連接起來。 組件1:先取A列右邊的數(shù)字: 組件2:套入到TEXT函數(shù) =TEXT(RIGHT(A2,LEN(A2)-1),"0000") 組成3:提取左邊的字母 將組件2和組件3用&符號連接起來就是完整的公式: =LEFT(A2,1)&TEXT(RIGHT(A2,LEN(A2)-1),"0000") 二、公式2
我們分析最終結(jié)果的代碼和原代碼,實(shí)際上就是在中間插入了若干個0,如果我們用函數(shù)直接在字母后插入0,要插入的0的個數(shù)就是目標(biāo)代碼長度5減去現(xiàn)有長度。這樣的公式思路簡單明了,易理解。但是,Excel并沒有直接在字符串指定位置插入字符的函數(shù)(在Power Query中倒有一個Text.Insert函數(shù)),我們要插入函數(shù)一般是使用Replace函數(shù),此函數(shù)是用于替換指定的文本字符。其語法是: =REPLACE(字符串,開始位置,要替換的字符個數(shù),新文本) 它的第三個參數(shù)是0是,可以實(shí)現(xiàn)插入功能,也就是在指定位置插入新文本。比如A2單元格是字符串“A1”,使用下面的公式: 計算結(jié)果為:A0001 因而,我們可以使用這個特點(diǎn)來編制公式
那要如何生成"000"文本字符串呢?直接用REPT函數(shù)將0重復(fù)指定3次就是了: 為了讓公式自動計算,用5-LEN(A2)替換掉上面公式中的3,嵌套后公式為: 完整的公式就是: =REPLACE(A2,2,0,REPT(0,5-LEN(A2))) 三、知識點(diǎn)回顧 1、在自定義格式中,0是占位符,當(dāng)數(shù)字位數(shù)小于自定義格式0的個數(shù)時,會自動用0補(bǔ)足。 2、TEXT函數(shù)中可以使用自定義格式代碼。 3、REPLACE的第三參數(shù)是0時,可實(shí)現(xiàn)插入功能。 -----好--書--推--薦------- |
|