Tri des adresses IP (Microsoft Excel)
Chuck a une feuille de calcul qui, dans une colonne, contient une série d’adresses IP. Ceux-ci sont dans le format familier de 192.168.2.1. S’il trie les adresses, elles ne sont pas triées numériquement. Par exemple, Excel place 192.168.1.100 entre 192.168.1.1 et 192.168.1.2. Chuck se demande s’il existe un moyen de trier une colonne d’adresses IP afin qu’elles apparaissent dans le bon ordre.
Cela se produit car Excel affiche une adresse IP sous forme de texte et non sous forme de nombre ou de série de nombres. Il existe plusieurs façons de contourner le problème, dont je parlerai dans cette astuce. Vous devez choisir l’approche qui convient à vos besoins, tels que définis par vos données et la manière dont vous les utilisez.
Une approche consiste à vous assurer que chaque octet de vos adresses IP se compose de trois chiffres. (Un octet correspond à chaque partie de l’adresse IP, séparée par des points.) Par exemple, au lieu d’une adresse telle que 192.168.1.1, vous utiliseriez 192.168.001.001. Ce « front pad » chaque octet avec des zéros et, si toutes vos adresses IP sont dans ce format, elles seront triées correctement.
Si vous préférez utiliser une formule pour assurer le remplissage avant de chaque octet, vous pouvez utiliser ce qui suit:
=TEXT(LEFT(A1,FIND(".",A1,1)-1),"000") & "." & TEXT(MID(A1,FIND( ".",A1,1)+1,FIND(".",A1,FIND(".",A1,1)+1)-FIND(".",A1,1)-1),"000") & "." & TEXT(MID(A1,FIND(".",A1,FIND(".",A1,1)+1)+1,FIND(".",A1, FIND(".",A1,FIND(".",A1,1)+1)+1)-FIND(".",A1,FIND(".",A1,1)+1)-1), "000") & "." & TEXT(RIGHT(A1,LEN(A1)-FIND(".",A1,FIND(".",A1,FIND( ".",A1,1)+1)+1)),"000")
Cette formule est assez longue, mais c’est toujours une formule unique. Placez-le dans la colonne à côté de vos premières adresses IP (en supposant que l’adresse se trouve dans la cellule A1), puis copiez-la autant de lignes que nécessaire. Lorsque vous faites votre tri, triez par colonne B, et les adresses seront dans le bon ordre.
Si vous travaillez avec beaucoup d’adresses IP, vous souhaiterez peut-être créer une fonction définie par l’utilisateur qui remplira chaque octet de l’adresse IP par des zéros, puis retournera une adresse IP entièrement formatée. Les éléments suivants exécuteront la tâche:
Function FormatIP(IPAddr As String) As String Dim Dot1 As Integer Dim Dot2 As Integer Dim Dot3 As Integer Dim Octet1 As String Dim Octet2 As String Dim Octet3 As String Dim Octet4 As String Dot1 = InStr(1, IPAddr, ".", vbTextCompare) Dot2 = InStr(Dot1 + 1, IPAddr, ".", vbTextCompare) Dot3 = InStr(Dot2 + 1, IPAddr, ".", vbTextCompare) Octet1 = Left(IPAddr, Dot1-1) Octet2 = Mid(IPAddr, Dot1+1, Dot2-Dot1-1) Octet3 = Mid(IPAddr, Dot2+1, Dot3-Dot2-1) Octet4 = Mid(IPAddr, Dot3+1, Len(IPAddr)) FormatIP = Right("000" & Octet1, 3) & "." FormatIP = FormatIP & Right("000" & Octet2, 3) & "." FormatIP = FormatIP & Right("000" & Octet3, 3) & "." FormatIP = FormatIP & Right("000" & Octet4, 3) End Function
Dans Excel, vous pouvez utiliser l’UDF de cette manière, en supposant votre adresse IP d’origine dans la cellule A1:
=FormatIP(A1)
Une autre approche consiste simplement à diviser les adresses IP en colonnes séparées, en plaçant chaque octet dans sa propre colonne. C’est facile à faire si vous utilisez l’outil Texte en colonnes, de cette manière:
-
Assurez-vous qu’il y a trois colonnes vides à droite de vos adresses IP.
-
Sélectionnez la plage de cellules contenant les adresses IP.
-
Affichez l’onglet Données du ruban.
-
Cliquez sur l’outil Texte en colonnes, dans le groupe Outils de données. Excel démarre l’Assistant Conversion de texte en colonnes. (Voir la figure 1.)
-
Choisissez le bouton radio Délimité.
-
Cliquez sur Suivant.
-
Cochez la case en regard de Autre et, à droite de la case à cocher, saisissez une période.
-
Cliquez sur Terminer.
Une fois terminé, vous pouvez trier les quatre colonnes comme vous le feriez normalement pour les nombres. Ensuite, lorsque vous souhaitez reconstituer les adresses IP, vous pouvez utiliser une formule telle que celle-ci:
=A1 & "." & B1 & "." & C1 & "." & D1
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (13481) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.