MS Excel:删除字符串中特定字符后的字符数

时间:2014-06-16 08:02:00

标签: excel excel-formula excel-2010

我有一个像

这样的值的列
  

WI60P-14E64F5167E6-01138

  

WI60-34D03E185267-01051

等...

我需要找到-的第一次出现,直到第二次出现-并删除生成的字符。

我正在使用此功能=MID(A1,FIND("-",A1),13),它会从上面的字符串中返回-34D03E185267-14E64F5167E6

但我希望输出如 WI60P-01138 WI60-01051

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

假设两个连字符之间的文本长度不变,您可以使用现有函数和SUBSTITUTE来获取所需的字符串,如下所示:

=SUBSTITUTE(A1,MID(A1,FIND("-",A1),13),"")

或者,您可以使用FIND来获取连字符位置,然后再次使用SUBSTITUTE来获取替换后的字符串,如下所示:

=SUBSTITUTE(A1,MID(A1,FIND("-",A1),FIND("-",A1,FIND("-",A1)+1)-FIND("-",A1)),"")

请注意,其中一个FIND表达式需要3个参数 - 通过传递FIND("-",A1) + 1作为第三个参数,我们得到了第二个出现的' - '在细胞内。

答案 1 :(得分:0)

这适用于两个连字符的任何位置:

=CONCATENATE(MID(A1;FIND("-";A1)+1;FIND("-";A1;FIND("-";A1)+1)-FIND("-";A1)-1))

答案 2 :(得分:0)

使用多个单元格作为支持的解决方案(具有动态字符串长度):

将其放在单元格B1中以获取代码的第一部分:

=MID(A1,1,FIND("-",A1)-1)

将其放在单元格C1中以获取代码的最后部分:

=MID(A1,FIND("-",A1)+1,LEN(A1))

将其放在单元格D1中以连接两者并获得结果:

=concat(B1,C1)

单个单元格中的解决方案(具有动态字符串长度)

将其放在单元格B1中以获得与上面相同的结果:

=concat(MID(A1,1,FIND("-",A1)-1),MID(MID(A1,FIND("-",A1)+1,LEN(A1)),FIND("-",MID(A1,FIND("-",A1)+1,LEN(A1))),LEN(MID(A1,FIND("-",A1)+1,LEN(A1)))))