给定一个字符串形式的 IP (XX.XXX.YYY.XX) 是否可以检查 YYY 的值并将它们复制到相邻的单元格中?
该值将是 2 或 3 个字符长,并且总是在第 2 个句点之后出现。
杰瑞在下面回答。再次感谢杰瑞!
您可以使用以下公式提取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。
长度位置部分:
FIND(".",A1,FIND("@",R)+1)
我们已经在这里使用了一个公式,FIND("@",R)+1
即 7,因此我们有:FIND(".",A1,7)
。这会找到 A1 中第 7 个字符之后或处的点的位置。这个值是 10。
这个应该很熟悉,得到了@
in的位置R
,也就是 6。
10-6
给出 4,比我们要找的长一个字符。(因为我们正在处理排名位置;例如,字符串的第 1 和第 3 个字符之间的字符串长度为 1,但 3-1 给出 2)
因此,为什么会有最后的 -1 部分。