使用默认排序引擎,以下列表被视为已排序:
10.0.0.219
10.0.0.22
10.0.0.223
这是不正确的。排序应该是:
10.0.0.22
10.0.0.219
10.0.0.223
假设前三个八位位组是静态的是不安全的。例如,其他 IP 地址包括:
10.35.10.11
10.28.66.30
使用默认排序引擎,以下列表被视为已排序:
10.0.0.219
10.0.0.22
10.0.0.223
这是不正确的。排序应该是:
10.0.0.22
10.0.0.219
10.0.0.223
假设前三个八位位组是静态的是不安全的。例如,其他 IP 地址包括:
10.35.10.11
10.28.66.30
我意识到这是一篇旧帖子,但为了提供一个可行的解决方案,我提出以下内容。
只需将此公式放在相邻的单元格中并更新引用以指向包含您的 IP 地址的单元格(本例中为 A1)。这将产生类似于 010.121.008.030 的结果,然后可以按字母顺序(正确)排序。然后将列宽设置为零,瞧。是时候享用一杯咖啡了。
=TEXT(MID(A1,1,FIND(".",A1)),"000")&"."&TEXT(MID(A1,FIND(".",A1)+1,FIND(".",A1,FIND(".",A1)+1)-1-FIND(".",A1)),"000")&"."&TEXT(MID(A1,FIND(".",A1,FIND(".",A1)+1)+1,FIND(".",A1,FIND(".",A1,FIND(".",A1)+1)+1)-1-FIND(".",A1,FIND(".",A1)+1)),"000")&"."&TEXT(MID(A1,FIND(".",A1,FIND(".",A1,FIND(".",A1)+1)+1)+1,LEN(A1)),"000")
有几种方法可以做到这一点,不确定这是用于更永久的使用还是只是一次性使用。
文本到列
您可以将 IP 地址拆分为列,并使用高级排序将数据排序为表格。
种类
使用内置排序器,您可以创建自定义排序顺序。如果您只是在同一个八位字节(例如 10.0.0.x)中处理地址,那么您可以添加 10.0.0。作为您的订单,它将对剩余部分进行数字排序。这可能不是预期的那样,但它再次起作用。
隐藏列
谷歌建议了几个答案,其中涉及一个额外的列,您将 IP 地址分解为一个数值,然后对该列进行排序。
VBA
可以在 VBA 中完成这一切并将所有数据吞入内存并重写列表。这里的优势将是重用和扩展的能力。