是否可以在Excel中检查字符串的通用部分?

时间:2013-09-19 20:09:48

标签: string excel

给定字符串形式的IP(XX.XXX.YYY.XX)是否可以检查YYY的值并将它们复制到相邻的单元格中?

该值的长度为2或3个字符,并且总是在第2个字段之后。

杰瑞在下面回答。再次感谢杰瑞!

1 个答案:

答案 0 :(得分:1)

您可以使用以下公式将YYY提取到单元格中:

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

假设IP在A1中。

它适用于您拥有的任何IP长度。

编辑:一些细节:

这里有一些回收的配方。 SUBSTITUTE(A1,".","@",2)返回XX.XXX@YYY.XX(用@替换A1中点的第二次出现)我们将在大公式中使用它,暂时将其称为R

这将公式变为:

=MID(A1,FIND("@",R)+1,FIND(".",A1,FIND("@",R)+1)-FIND("@",R)-1)
        ^-----------^ ^--------------------------------------^
            Start     |           1            | |     2     |
                                      Length

好多了!

起始位置部分:

FIND("@",R)+1返回@之后的角色位置,以便MID以第一个Y开头。这里的位置变为7。

长度位置部分:

  1. FIND(".",A1,FIND("@",R)+1)我们已在此处使用了一个公式,FIND("@",R)+1为7,因此我们有:FIND(".",A1,7)。这将找到A1中点的位置,该点位于第7个字符之后或之后。这个值得到10。

  2. 这个应该是熟悉的,并且@的位置在R,即6。

  3. 10-6给出4,这比我们想要的长一个字符。 (因为我们正在处理排名位置;例如,字符串的第1和第3个字符之间的字符串长度为1,但3-1给出2)

    因此为什么会有最后的-1部分。