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)
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/
SPL Official Website 👉 https://www.esproc.com
SPL Feedback and Help 👉 https://www.reddit.com/r/esProc_Desktop/
SPL Learning Material 👉 https://c.esproc.com
Discord 👉 https://discord.gg/sxd59A8F2W
Youtube 👉 https://www.youtube.com/@esProcDesktop
Linkedin Group 👉 https://www.linkedin.com/groups/14419406/