按包含IP地址的列对电子表格进行sorting(每个单元一个IP地址)

使用默认sorting引擎,以下列表被视为sorting:

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 

有几种方法可以做到这一点,不知道这是为了更长久的使用还是只有一次。

  1. 文本到列

    您可以将IP地址拆分成列,并使用高级sorting将数据sorting为表格。

  2. 分类

    使用内置分拣机,您可以创build自定义sorting顺序。 如果你只是在同一个八位字节(例如10.0.0.x)做地址,那么你可以添加10.0.0。 作为你的订单,它会做左边的数字sorting。 这可能不是预期的,但是再次运作。

  3. 隐藏的列

    Google会build议一些涉及附加列的答案,在这个列中,您将IP地址作为数字值进行分类,然后对该列进行sorting。

  4. VBA

    可以在VBA中完成这一切,并将所有数据存入内存并重写列表。 这里的优势将是重用和扩展的能力。

我意识到这是一个旧的post,但为了提供一个工作解决scheme,我提出以下几点。

只要把这个公式放在一个相邻的单元格中,并更新引用来指向包含你的IP地址的单元格(在这个例子中是A1)。 这将产生类似于010.121.008.030的结果,然后可以按字母顺序sorting(正确)。 然后设置列宽为零,瞧。 时间享受一杯咖啡。

 =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") 

有一个Excel函数可以将IP转换为十进制数,以便轻松sorting。 你可以看到这里如何。