本教程展示了使用內(nèi)置功能和自定義VBA函數(shù)在Excel單元格中分離文本和數(shù)字的幾種方法。您將學(xué)習(xí)如何在刪除文本時(shí)提取數(shù)字,在丟棄數(shù)字時(shí)隔離文本,最后將數(shù)據(jù)分為兩個(gè)不同的列。
假設(shè)您的數(shù)據(jù)有一個(gè)列,文本和數(shù)字被混合在一起。對于一致的數(shù)據(jù), LEFT
, RIGHT
和MID
的簡單功能可能就足夠了。但是,實(shí)際數(shù)據(jù)通常不一致,在文本之前,之后或文本中出現(xiàn)數(shù)字。下面的解決方案解決了這種復(fù)雜性。
刪除文字以保持?jǐn)?shù)字(Excel 365,2021,2019):
Microsoft Excel 2019推出了TEXTJOIN
功能,這簡化了此任務(wù)。低于以下的公式利用TEXTJOIN
, MID
, ROW
, INDIRECT
, SEQUENCE
和IFERROR
來實(shí)現(xiàn)這一目標(biāo)。
對于Excel 365和2021:
=TEXTJOIN("",TRUE,IFERROR(MID(A2,SEQUENCE(LEN(A2)),1)*1,""))
對于Excel 365-2019:
=TEXTJOIN("",TRUE,IFERROR(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1,""))
(在Excel 2019中,這需要Ctrl Shift Enter進(jìn)行數(shù)組公式條目。在Dynamic Array Excel中,簡單的輸入就足夠了。)
該公式通過每個(gè)字符迭代,乘以1來轉(zhuǎn)換數(shù)字。非數(shù)字字符成為錯(cuò)誤,由IFERROR
處理,留下空字符串。然后, TEXTJOIN
將剩余的數(shù)字串聯(lián)。
自定義VBA功能(所有Excel版本):
對于較舊的Excel版本或更簡單的方法,自定義VBA功能提供了簡化的解決方案。提供了兩個(gè)版本:
VBA代碼1(字符字符):
函數(shù)removeText(str作為字符串) DIM SRES作為字符串 SRES =“” 對于i = 1到len(str) 如果是命名的(中間??(str,i,1)),則SRES = SRES = SRES和MID(Str,i,1) 下一個(gè)我 removetext = sres 結(jié)束功能
VBA代碼2(正則表達(dá)式):
函數(shù)removeText(str作為字符串)為字符串 使用CreateObject(“ vbscript.regexp”) .global = true .pattern =“ [^0-9]” removetext = .replace(str,“”) 以 結(jié)束功能
將這些功能與=RemoveText(A2)
一起使用。代碼2(使用正則表達(dá)式)通常在大型數(shù)據(jù)集上表現(xiàn)更好。
刪除數(shù)字以保留文本(Excel 365,2021,2019):
類似的公式可以在刪除數(shù)字時(shí)提取文本。同樣,使用TEXTJOIN
, MID
, ROW
, INDIRECT
, SEQUENCE
, IFERROR
和ISERROR
:
對于Excel 365和2021:
=TRIM(TEXTJOIN("",TRUE,IF(ISERROR(MID(A2,SEQUENCE(LEN(A2)),1)*1),MID(A2,SEQUENCE(LEN(A2)),1),"")))
對于Excel 365-2019:
=TRIM(TEXTJOIN("",TRUE,IF(ISERROR(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")))
TRIM
功能刪除了前導(dǎo)/尾隨空間。
自定義VBA功能用于刪除數(shù)字(所有Excel版本):
與以前的VBA功能類似,這里有兩個(gè)版本可以刪除數(shù)字并保留文本:
VBA代碼1(字符字符):
功能去除量(str作為字符串) DIM SRES作為字符串 SRES =“” 對于i = 1到len(str) 如果不是的,則沒有(中間(str,i,1)),則SRES = SRES = SRES和MID(Str,i,1) 下一個(gè)我 removenumbers = SRES 結(jié)束功能
VBA代碼2(正則表達(dá)式):
功能刪除量(str作為字符串)為字符串 使用CreateObject(“ vbscript.regexp”) .global = true .pattern =“ [0-9]” removenumbers = .replace(str,“”) 以 結(jié)束功能
將它們與=TRIM(RemoveNumbers(A2))
一起使用。
將文本和數(shù)字分成單獨(dú)的列:
單個(gè)自定義VBA功能可以同時(shí)處理文本和數(shù)字提?。?/p>
VBA代碼1(字符字符):
函數(shù)slaptextnumbers(str作為字符串,is_remove_text為布爾值)為字符串 Dim Snum,Stext,Schar作為字符串 num = stext =“” 對于i = 1到len(str) schar = mid(str,i,1) 如果是iSnumeric(schar),則num = shum&schar else sext = sext&schar 下一個(gè)我 如果是is_remove_text 結(jié)束功能
VBA代碼2(正則表達(dá)式):
函數(shù)slaptextnumbers(str作為字符串,is_remove_text為布爾值)為字符串 使用CreateObject(“ vbscript.regexp”) .global = true 如果是is_remove_text,則.pattern =“ [^0-9]” else .pattern =“ [0-9]” splittextnumbers = .replace(str,“”) 以 結(jié)束功能
use =SplitTextNumbers(A2,TRUE)
保留數(shù)字, =TRIM(SplitTextNumbers(A2,FALSE))
保留文本。
使用專業(yè)工具:
如果您喜歡更視覺和用戶友好的方法,請考慮使用專用的Excel加載項(xiàng)來刪除角色。本教程提到了具有“刪除字符”功能的“終極套件”加載項(xiàng)。
該綜合指南提供了多種解決方案,可滿足不同的Excel版本和用戶喜好。請記住,根據(jù)需要調(diào)整細(xì)胞引用的特定數(shù)據(jù)。
以上是如何在Excel單元中刪除 /拆分文本和數(shù)字的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)