我们已在数据集中放置了一些产品名称及其ID。我们想要从产品 ID 中删除这些数字。
方法 1 – 使用通配符查找和替换来删除 Excel 单元格中的数字“产品名称”列中的括号中包含一些数字。我们将删除这些号码。
步骤:
选择数据范围B5:B11。按Ctrl + H 打开查找和替换命令。在查找内容框中输入(*),并将替换为框保留为空。按全部替换。
关闭对话框以查看结果。
方法 2 – 应用查找和选择工具从单元格中删除数字产品 ID 列中有两个单元格仅包含数字。我们将从ID单元格中删除数字。
步骤:
选择数据范围C5:C11。转到主页选项卡,选择查找并选择,然后选择转到特殊内容将打开一个对话框。
仅标记常量选项中的数字。按确定。
仅突出显示数字。
按键盘上的删除按钮。
方法3 – 使用快速填充从 Excel 单元格中删除数字步骤:
仅将第一个单元格的文本(而不是数字)键入到与其相邻的新列中。点击输入按钮。
选择单元格 D5。转到数据,然后转到数据工具,然后选择快速填充。
数字被删除。
方法4 – 在Excel中插入SUBSTITUTE函数从单元格中删除数字步骤:
使用单元格 D5 中给出的公式:=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C5,1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,""),9,""),0,"")按 Enter 键。
双击填充手柄图标,公式将自动复制下来。
数字从单元格中删除。
方法五——结合TEXTJOIN、MID、ROW、LEN和INDIRECT函数删除数字步骤:
在单元格 D5 中使用以下公式:=TEXTJOIN("",TRUE,IF(ISERR(MID(C5,ROW(INDIRECT("1:"&LEN(C5))),1)+0),MID(C5,ROW(INDIRECT("1:"&LEN(C5))),1),""))点击输入按钮。
向下拖动填充手柄图标以复制公式。
公式细分:
➥ ROW(INDIRECT(“1:”&LEN(C5)))
它将从 ROW 和 INDIRECT 函数中找到结果数组列表,返回如下:
{1;2;3;4}
➥ MID(B3,ROW(INDIRECT(“1:”&LEN(B3))),1)
MID 函数用于根据 start_num 和 num_chars 参数提取字母数字字符串。对于 num-chars 参数,我们将输入 1。将参数放入 MID 函数后,它将返回一个数组,如下所示:
{“B”;“H”;“2”;“3”}
➥ ISERR(MID(B3,ROW(INDIRECT(“1:”&LEN(B3))),1)+0)
加0后,输出数组被放入ISERR函数中。它将创建一个 TRUE 和 FALSE 数组,TRUE 表示非数字字符,FALSE 表示数字。输出将返回为-
{TRUE;TRUE;FALSE;FALSE}
➥ IF(ISERR(MID(B3,ROW(INDIRECT(“1:”&LEN(B3))),1)+0),MID(B3, ROW(间接(“1:”&LEN(B3))),1),””)
IF 函数将检查ISERR 函数的输出。如果它的值返回TRUE,它将返回一个字母数字字符串的所有字符的数组。所以我们又添加了一个MID功能。如果IF函数的值为FALSE,则返回空白(“ ”)。 所以最终我们将得到一个仅包含字符串的非数字字符的数组。那是-
{“B”;“H”;“”;””}
➥ TEXTJOIN(“”,TRUE,IF(ISERR(MID(B3,ROW(INDIRECT(“1:”&LEN(B3))),1)+ 0),MID(B3,ROW(间接(“1:”&LEN(B3))),1),””))
TEXTJOIN 函数将连接上述数组的所有字符并避免空字符串。该函数的分隔符设置为空字符串(“ ”) ,并且忽略的空参数的值输入TRUE。这将给出我们预期的结果 -
{BH}
方法 6 – 应用 TEXTJOIN、IF、ISERROR、SEQUENCE、LEN 和 MID 函数删除数字步骤:
在单元格 D5 中,插入以下公式:=TEXTJOIN("", TRUE, IF(ISERROR(MID(C5, SEQUENCE(LEN(C5)), 1) *1), MID(C5, SEQUENCE(LEN(C5)), 1), ""))按Enter按钮即可获取结果。
应用自动填充选项来复制公式。
公式细分:
➥ LEN(C5)
LEN 函数将查找Cell C5的字符串长度,返回结果为:
{4}
➥ 序列(LEN(C5))
然后SEQUENCE函数将根据返回的长度给出顺序号-
{1;2;3;4}
➥ MID(C5, SEQUENCE(LEN(C5)), 1)
MID 函数将返回先前位置编号的值,结果是:
{“B”;“H”;“2”;“3”}
➥ ISERROR(MID(C5, SEQUENCE(LEN(C5)), 1) *1)
现在,如果发现错误,ISERROR函数将显示 TRUE,否则将显示 FALSE。结果是——
{TRUE;TRUE;FALSE;FALSE}
➥ IF(ISERROR(MID(C5, SEQUENCE(LEN(C5)), 1) *1), MID(C5, SEQUENCE(LEN(C5)) , 1), “”)
然后IF函数看到TRUE,它在另一个MID函数的帮助下将相应的文本字符插入到处理后的数组中。看到FALSE,它用空字符串替换它:
{“B”;“H”;“”;””}
➥ TEXTJOIN(“”, TRUE, IF(ISERROR(MID(C5, SEQUENCE(LEN(C5)), 1) *1), MID(C5,序列(LEN(C5)), 1), “”))
最终的数组将传递给 TEXTJOIN 函数,因此它连接文本字符并将结果输出为 -
{BH}
方法 7 – 使用 Excel VBA 中的用户定义函数从单元格中删除数字情况 1 – 从单元格中删除数字步骤:
右键单击工作表标题。从上下文菜单中选择查看代码。将出现一个VBA窗口。
在窗口中插入以下代码:Option Explicit
Function RemNumb(Text As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "[0-9]"
RemNumb = .Replace(Text, "")
End With
End Function按播放图标运行宏。
在单元格 D5 中插入:=RemNumb(C5)点击Enter按钮即可获取结果。
拖动填充手柄图标以复制公式。
情况 2 – 将数字和文本拆分为单独的列步骤:
打开VBA窗口并插入以下代码:Option Explicit
Function SplitTextOrNumb(str As String, is_remove_text As Boolean) As String
With CreateObject("VBScript.RegExp")
.Global = True
If True = is_remove_text Then
.Pattern = "[^0-9]"
Else
.Pattern = "[0-9]"
End If
SplitTextOrNumb = .Replace(str, "")
End With
End Function单击运行,将打开一个宏。
选择宏并按运行。
在单元格 D5 中插入以下公式:=SplitTextOrNumb(C5,1)
删除数字字符:=SplitTextOrNumb(C5,0)
按Enter按钮并使用填充手柄工具复制公式。