Excel-从单元格中提取编号

时间:2019-02-05 21:19:08

标签: regex excel extract

我有多个要从中提取数字的单元格,并且需要帮助来查找正则表达式替代项。

单元格的范围如下:

asdfs. Seat#29 asfddsa 
asdfsa. Seat#5d 
asdfasN/A . Seat#22 as789fsd 
Seat#111 words33

我最接近解决方案的是:

=IFERROR(TRIM(MID([@DisplayName],FIND("#",[@DisplayName])+1,3)),"")

如您所见,这将提取大多数数字,但对于某些数字,它会在末尾留下一个字符。

唯一的共同点是座位号前的#。我试图仅提取座位号,而不提取其他号码。

我不能使用VBA,这必须使用公式来完成。我之前已经弄清楚了这一点,但愚蠢地将公式粘贴为仅粘贴值。

这可以通过使用快速填充来完成,但我希望有一个更稳定的公式。

3 个答案:

答案 0 :(得分:0)

如果不需要座位号后面的字母,可以使用

.*#(\d+)

为清楚起见进行编辑:Excel没有内置正则表达式功能。您将不得不使用UDF(如果需要,我可以帮助您)或使用非正则表达式解决方案。

答案 1 :(得分:0)

这是没有VBA的解决方案,可提取字符串中的所有数字。 https://drive.google.com/open?id=1Fk6VFznD3i8s6scADy_vXCEj-1zQpBPW

第3张纸

答案 2 :(得分:0)

如果只需要数字,请使用:

=--MID(A1,FIND("#",A1)+1,AGGREGATE(15,6,ROW(1:5)/(ISERROR(--MID(REPLACE(A1,1,FIND("#",A1),""),ROW(1:5),1))),1)-1)

enter image description here

如果您也想要这封信,

=MID(A1,FIND("#",A1)+1,FIND(" ",REPLACE(A1,1,FIND("#",A1),""))-1)

enter image description here