【Excel】將IP按照IP地址(v4)增長序列排序


Background:

Excel列中,有多個net-block, 將這些net-block按照IP地址(v4)自己的大小從小到大排序。

 

Idea:

IPv4地址的格式是點分十進制的,也就是說每一個點前的數字都有自己相應的power權值,只要找到這個權值,再將IP地址以“."分開,分別乘以其權值,就可以得到某個IP唯一對應的一個反應其真實大小的十進制值。

 

Solution:

以下面這幾個IP block為例,D2 到 G2是為了去find一個IP網段這種格式中的“.”和“/”,具體的語句,以D2為例就是 = FIND(".",$A2,1),這樣就找到了第一個“.”在A2中的位置,G2是“/”在A2中的位置。有了這幾個位置信息之后,就可以拿來分割IP地址了。

 

 

 

H2到K2 都是為了顯示分割后的IP地址。用到的是MID這個函數,用於返回一個字符串中,特定的位置到特定位置之間的部分。

 

L1到O1分別是點分十進制分別的每一段的權值。以10.15.101.0為例,最后一段0就是自然是0,所以權值為1,倒數第二段101,權值應該是2的8次方256,以此類推,倒數第三段15的權值是2的16次方65536,倒數第四段10的權值就是2的24次方。

 

然后把H2到K2中每一段的值,分別乘以其權值,然后相加,就可以得到這個IP唯一對應的一個十進制數值。我把這個唯一值放進了P列,也放到了C列,主要是為了一會兒把它復制出去的時候方便。把它不帶格式的復制之后,按照從小到大排序就可以了。

 

我這個圖表里不止有這6個數據,整體的效果如下

 

上邊的這個 In Use和Not In Use 是我為了統計是否IP在用加上去的,大家可以忽略。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM