本教程展示了使用內(nèi)置功能和自定義VBA函數(shù)在Excel單元格中分離文本和數(shù)字的幾種方法。您將學(xué)習(xí)如何在刪除文本時提取數(shù)字,在丟棄數(shù)字時隔離文本,最後將數(shù)據(jù)分為兩個不同的列。
假設(shè)您的數(shù)據(jù)有一個列,文本和數(shù)字被混合在一起。對於一致的數(shù)據(jù), LEFT
, RIGHT
和MID
的簡單功能可能就足夠了。但是,實際數(shù)據(jù)通常不一致,在文本之前,之後或文本中出現(xiàn)數(shù)字。下面的解決方案解決了這種複雜性。
刪除文字以保持?jǐn)?shù)字(Excel 365,2021,2019):
Microsoft Excel 2019推出了TEXTJOIN
功能,這簡化了此任務(wù)。低於以下的公式利用TEXTJOIN
, MID
, ROW
, INDIRECT
, SEQUENCE
和IFERROR
來實現(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中,簡單的輸入就足夠了。)
該公式通過每個字符迭代,乘以1來轉(zhuǎn)換數(shù)字。非數(shù)字字符成為錯誤,由IFERROR
處理,留下空字符串。然後, TEXTJOIN
將剩餘的數(shù)字串聯(lián)。
自定義VBA功能(所有Excel版本):
對於較舊的Excel版本或更簡單的方法,自定義VBA功能提供了簡化的解決方案。提供了兩個版本:
VBA代碼1(字符字符):
函數(shù)removeText(str作為字符串) DIM SRES作為字符串 SRES =“” 對於i = 1到len(str) 如果是命名的(中間??(str,i,1)),則SRES = SRES = SRES和MID(Str,i,1) 下一個我 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ù)字時提取文本。同樣,使用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功能類似,這裡有兩個版本可以刪除數(shù)字並保留文本:
VBA代碼1(字符字符):
功能去除量(str作為字符串) DIM SRES作為字符串 SRES =“” 對於i = 1到len(str) 如果不是的,則沒有(中間(str,i,1)),則SRES = SRES = SRES和MID(Str,i,1) 下一個我 removenumbers = SRES 結(jié)束功能
VBA代碼2(正則表達(dá)式):
功能刪除量(str作為字符串)為字符串 使用CreateObject(“ vbscript.regexp”) .global = true .pattern =“ [0-9]” removenumbers = .replace(str,“”) 以 結(jié)束功能
將它們與=TRIM(RemoveNumbers(A2))
一起使用。
將文本和數(shù)字分成單獨的列:
單個自定義VBA功能可以同時處理文本和數(shù)字提取:
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 下一個我 如果是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加載項來刪除角色。本教程提到了具有“刪除字符”功能的“終極套件”加載項。
該綜合指南提供了多種解決方案,可滿足不同的Excel版本和用戶喜好。請記住,根據(jù)需要調(diào)整細(xì)胞引用的特定數(shù)據(jù)。
以上是如何在Excel單元中刪除 /拆分文本和數(shù)字的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

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

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

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

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

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