excel表如何在一段字符串中提取特定字符串,长度不定,图中为目标值

2025-03-11 14:45:34
推荐回答(5个)
回答1:

数据的情况比较复杂,只能试试用快速填充的方法:

在CDE列中,把B的值分成三段,需要的610数据放在D列。然后下拉填充。之后选择快速填充,格子里的数字就会从610自动变为5117。

如果格子里有很多组数字,我不太确定excel能不能分对。可能还是要稍微检查一下。

回答2:

=MID(B2,FIND("610",B2,1),LEN(F10)-(LENB(B2)-LEN(B2)))
诺,你要的把后边多余的部分去掉的公式
还有EXCEL超过15位的数字会显示0, 给你个VBA,能显示全的。
Private Sub Worksheet_Change(ByVal Target As Range)
'以下三行绿字中提示的参数,你有可能需要根据实际情况调整。
x = Target.Row
y = Target.Column
If x >= 2 And x <= 30 And y = 2 Then '提示:x >= 2和x <= 30指第2至第30行、y = 2指第2列(即B列)
If Len(Cells(x, y)) = 19 Then '提示:19指字符数量,该区域有数据更新的单元格必须符合19位时自动进行以下操作
Cells(x, y) = Evaluate("MID(B" & x & ",1,4)&"" ""&MID(B" & x & ",5,4)&"" ""&MID(B" & x & ",9,4)&"" ""&MID(B" & x & ",13,4)&"" ""&MID(B" & x & ",17,3)") '提示:此行五个B是指列号
End If
End If
End Sub

回答3:

在C2单元格输入下面公式:
=IFERROR(-LOOKUP(1,-LEFT(RIGHT(B2,LEN(E17)-FIND("610",B2)+1),ROW($1:$99))),"不含有610")
回车再下拉公式即可。

回答4:

C2公式:=MAX(IFERROR(--MID(B2,FIND(610,B2),ROW($3:$30)),))&""
ctrl+shift+回车下拉,不含有时显示0

回答5:

试下这个
=IF(ISNUMBER(FIND(610,B2)),MID(B2,FIND(610,B2),20),"")