Excel中对ip地址进行排序
例如:有下图这样一组ip地址,要对ip地址的进行排序。(实际上就是按最后一位进行排序)

思路:因为要对ip地址的最后一位进行排序,所以我们可以在辅助列中、通过函数把最后一位取出来,然后排完序后把辅助列删除。
方法:
1.通过Excel公式获取ip地址最后一位。
先了解一下需要用到的3个excel里的函数:MID函数,FIND函数,SUBSTITUTE函数。
Excel MID函数:截取字符串
语法:MID(text, start_num, num_chars)
text 必需。包含要提取字符的文本字符串。
start_num 必需。文本中要提取的第一个字符的位置。 text中第一个字符为1。
num_chars 必需。指定希望MID从文本中返回字符的个数。
例:=MID(A2,2,5) 表示从单元格A2这个字符串中第2个字符开始,返回5个字符。
Excel FIND函数:查找字符串的位置
语法:FIND(find_text, within_text, [start_num])
find_text 必需。要查找的文本。
within_text 必需。包含要查找文本的文本。
start_num 可选。指定开始进行查找的字符。within_text 中的首字符是编号为1的字符。 如果省略 start_num,则其值为1。
例:=FIND("M",A2) 表示查找单元格A2中第一个“M”的位置。
Excel SUBSTITUTE函数:在文本字符串中用新的字符串替换旧的字符串
语法:SUBSTITUTE(text, old_text, new_text, [instance_num])
text 必需。需要替换其中字符的文本,或对含有文本(需要替换其中字符)的单元格的引用。
old_text 必需。需要替换的文本。
new_text 必需。用于替换old_text的文本。
instance_num 可选。指定要用new_text替换old_text的事件。 如果指定了instance_num,则只有满足要求的old_text被替换。否则,文本中出现的所有old_text都会更改为new_text。
例1:=SUBSTITUTE(A2, "销售", "成本") 表示在A2中,用字符串成本替换销售,结果为:成本数据;
例2:=SUBSTITUTE(A4, "1", "3", 2) 表示用3替换第2个 1(2011年第一季度),结果为:2013年第一季度

这里的公式:=MID(B2,FIND("*",SUBSTITUTE(B2,".","*",3))+1,3) 的意思是
1).先用SUBSTITUTE函数把ip地址里的最后一个点(.)替换成*号。(这里随便你想换成什么符号,我这里用了*号)
=SUBSTITUTE(B2,".","*",3)表示把B2单元格中的字符串中的第3个点(.)替换成了*号。结果是:10.95.22*80
2).再用FIND函数找到*号的位置。(那我们要获取的最后一位的位置就是从*号位置+1开始的。)
=FIND("*",SUBSTITUTE(B2,".","*",3)) 就相当于 =FIND("*","10.95.22*80") ,表示找到*的位置,结果是:9
3).最后用MID函数把ip地址的最后一位获取出来。(因为ip地址每一位最多只有3位数,所以取3个字符就行了。)
=MID(B2,FIND("*",SUBSTITUTE(B2,".","*",3))+1,3) 就相当于 =MID(B2,9+1,3),表示截取B2中字符串从第10(9+1)个开始,取3位,结果是:90
2.按ip地址的最后一位进行排序。
因为公式获取到的ip地址最后一位是字符串形式,所以要排序就先复制一列出来,转为数字。
(排序用自定义排序这么简单就不说了。) 3.删除辅助列