Split IP addresses and then group rows

An Excel table contains a column of standard IP v4 addresses:


A
1 10.12.20.30
2 10.205.20.30
3 10.178.20.30
4 10.23.20.30
5 10.167.20.30
6 10.90.20.30
7 10.134.20.30
8 10.177.20.30
9 10.200.20.30
10 10.115.20.30
11 10.48.20.30
12 10.181.20.30
13 10.224.20.30
14 10.57.20.30
15 10.180.20.30
16 10.113.20.30
17 10.246.20.30
18 10.179.20.30

Task: Divide IPs into 4 groups evenly according to its second section values – 0-63, 64-127, 128-191 and 192-256, and write the result to 4 columns, as the following shows:


C D E F
1 10.12.20.30 10.90.20.30 10.178.20.30 10.205.20.30
2 10.23.20.30 10.115.20.30 10.167.20.30 10.200.20.30
3 10.48.20.30 10.113.20.30 10.134.20.30 10.224.20.30
4 10.57.20.30 10.177.20.30 10.246.20.30
5

10.181.20.30
6

10.180.20.30
7

10.179.20.30

Type in the following formula in SPL XLL:

=spl("=E@p(E@1(?).group(int(~.split($[.])(2))\64))",A1:A18)

Picture1png

E@p performs row-to-column transposition on the table. E@1 converts the table to a one-dimensional one. group() function groups rows; ~ is the current member, and \ performs the division and gets the integer part.

Source:https://www.reddit.com/r/excel/comments/1cdidn1/sort_list_of_ip_addresses_into_one_of_4_columns/