本教程展示了使用內(nèi)置功能和自定義VBA函數(shù)在Excel單元格中分離文本和數(shù)字的幾種方法。您將學(xué)習(xí)如何在刪除文本時(shí)提取數(shù)字,在丟棄數(shù)字時(shí)隔離文本,最後將數(shù)據(jù)分為兩個(gè)不同的列。
假設(shè)您的數(shù)據(jù)有一個(gè)列,文本和數(shù)字被混合在一起。對(duì)於一致的數(shù)據(jù), LEFT
, RIGHT
和MID
的簡(jiǎn)單功能可能就足夠了。但是,實(shí)際數(shù)據(jù)通常不一致,在文本之前,之後或文本中出現(xiàn)數(shù)字。下面的解決方案解決了這種複雜性。
刪除文字以保持?jǐn)?shù)字(Excel 365,2021,2019):
Microsoft Excel 2019推出了TEXTJOIN
功能,這簡(jiǎn)化了此任務(wù)。低於以下的公式利用TEXTJOIN
, MID
, ROW
, INDIRECT
, SEQUENCE
和IFERROR
來(lái)實(shí)現(xiàn)這一目標(biāo)。
對(duì)於Excel 365和2021:
=TEXTJOIN("",TRUE,IFERROR(MID(A2,SEQUENCE(LEN(A2)),1)*1,""))
對(duì)於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中,簡(jiǎn)單的輸入就足夠了。)
該公式通過(guò)每個(gè)字符迭代,乘以1來(lái)轉(zhuǎn)換數(shù)字。非數(shù)字字符成為錯(cuò)誤,由IFERROR
處理,留下空字符串。然後, TEXTJOIN
將剩餘的數(shù)字串聯(lián)。
自定義VBA功能(所有Excel版本):
對(duì)於較舊的Excel版本或更簡(jiǎn)單的方法,自定義VBA功能提供了簡(jiǎn)化的解決方案。提供了兩個(gè)版本:
VBA代碼1(字符字符):
函數(shù)removeText(str作為字符串) DIM SRES作為字符串 SRES =“” 對(duì)於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):
類(lèi)似的公式可以在刪除數(shù)字時(shí)提取文本。同樣,使用TEXTJOIN
, MID
, ROW
, INDIRECT
, SEQUENCE
, IFERROR
和ISERROR
:
對(duì)於Excel 365和2021:
=TRIM(TEXTJOIN("",TRUE,IF(ISERROR(MID(A2,SEQUENCE(LEN(A2)),1)*1),MID(A2,SEQUENCE(LEN(A2)),1),"")))
對(duì)於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功能類(lèi)似,這裡有兩個(gè)版本可以刪除數(shù)字並保留文本:
VBA代碼1(字符字符):
功能去除量(str作為字符串) DIM SRES作為字符串 SRES =“” 對(duì)於i = 1到len(str) 如果不是的,則沒(méi)有(中間(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 =“” 對(duì)於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))
保留文本。
使用專(zhuān)業(yè)工具:
如果您喜歡更視覺(jué)和用戶友好的方法,請(qǐng)考慮使用專(zhuān)用的Excel加載項(xiàng)來(lái)刪除角色。本教程提到了具有“刪除字符”功能的“終極套件”加載項(xiàng)。
該綜合指南提供了多種解決方案,可滿足不同的Excel版本和用戶喜好。請(qǐng)記住,根據(jù)需要調(diào)整細(xì)胞引用的特定數(shù)據(jù)。
以上是如何在Excel單元中刪除 /拆分文本和數(shù)字的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(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脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門(mén)文章

熱工具

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

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

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)
