如何使用公式删除电话号码并保留地址?

如何使用公式删除电话号码并保留地址?

我怎样才能从 D 列中删除电话号码,同时保留地址的其余部分?

  • 有些栏目没有电话号码。
  • 有些列的电话号码之间有空格。
  • 有些电话号码有 10 位数字,有些则有 12 位。
  • 有些电话号码有空格,例如:020 8133 7730、0207 790 7070

Excel 工作表

我努力了

=LEFT(D2,MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},D2),""))-1)

也尝试过

=TEXTJOIN("",TRUE,IF(ISERR(MID(D2,ROW(INDIRECT("1:100")),1)+0),MID(D2,ROW(INDIRECT("1:100")),1),""))

答案1

我想使用新LET功能:

=LET(x,TRIM(RIGHT(SUBSTITUTE(D2,",",REPT(" ",99)),99)),y,SUBSTITUTE(x," ",""),IF(AND(ISNUMBER(-y),OR(LEN(y)=10,LEN(y)=12)),SUBSTITUTE(D2,", " & x,""),D2))

算法

  • x返回最后一个以逗号分隔的子字符串
  • y返回x时删除了空格。
  • 检查是否y为数字,并且长度为1012
  • 如果通过检查,则在主字符串中替换x前面的,
  • 如果不是,则仅返回原始字符串。

在此处输入图片描述

*如果您没有该LET功能,您可以尝试:

=IF(AND(ISNUMBER(-SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(D2,",",REPT(" ",99)),99))," ","")),OR(LEN(SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(D2,",",REPT(" ",99)),99))," ",""))=10,LEN(SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(D2,",",REPT(" ",99)),99))," ",""))=12)),SUBSTITUTE(D2,", " & TRIM(RIGHT(SUBSTITUTE(D2,",",REPT(" ",99)),99)),""),D2)

笔记 根据评论改变电话号码的定义

如果不是电话号码10或者12数字,它们是10-12数字,那么您需要做的就是更改公式中的长度检查。

换句话说,

...OR(LEN(y)=10,LEN(y)=12)...

你用:

OR(LEN(y)>=10,LEN(y)<=12)

因此,这会将公式更改为:

=LET(x,TRIM(RIGHT(SUBSTITUTE(D3,",",REPT(" ",99)),99)),y,SUBSTITUTE(x," ",""),IF(AND(ISNUMBER(-y),OR(LEN(y)>=10,LEN(y)<=12)),SUBSTITUTE(D3,", " & x,""),D3))

如果您正在使用更长的公式,则可以在更长的公式中进行类似的更改。

答案2

或许,

公式E2抄下来如下:

=IFERROR(LEFT(D2,MIN(FIND(", "&{0,2,3,4,5,6,7,8,9},D2&", 0, 1, 2, 3, 4, 5, 6, 7, 8 , 9"))-1),"")

在此处输入图片描述

相关内容