2

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

该值将是 2 或 3 个字符长,并且总是在第 2 个句点之后出现。

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

4

1 回答 1

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. 这个应该很熟悉,得到了@in的位置R,也就是 6。

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

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

于 2013-09-19T20:15:05.080 回答