Je travaille actuellement avec une grande liste d'adresses IP (des milliers).
Cependant, lorsque je trie la colonne contenant les adresses IP, celle-ci n'est pas intuitive ni facile à suivre.
Par exemple, si je saisis les adresses IP comme suit:
Et puis si je trie par ordre croissant, j'obtiens ceci:
Est-il possible pour moi de formater les cellules afin que, par exemple, une adresse IP de 17.255.253.65 apparaisse après le 1.128.96.254 et avant le 103.236.162.56 lorsqu’elle est triée par ordre croissant?
Sinon, y a-t-il un autre moyen pour moi d'atteindre ce but ultime?
microsoft-excel
ip-address
sorting
Monomeeth
la source
la source
Réponses:
Comme vous l'avez peut-être compris, vos adresses IP sont traitées sous forme de texte et non de chiffres. Ils sont triés sous forme de texte, ce qui signifie que les adresses commençant par "162" viendront avant celles commençant par "20". (parce que le caractère "1" vient avant le caractère "2".
Vous pouvez utiliser la formule fournie dans cette réponse: https://stackoverflow.com/a/31615838/4424957 pour scinder l'adresse IP en ses parties.
Si vos adresses IP figurent dans les colonnes A, ajoutez les colonnes BE comme indiqué ci-dessous.
Entrez la formule
dans la cellule B2 et copiez-le dans les colonnes BE de toutes les lignes pour obtenir les quatre parties de chaque adresse IP. Maintenant, triez l’ensemble des colonnes B à E (dans cet ordre) comme indiqué ci-dessous:
Si vous ne voulez pas voir les colonnes d'assistance (BE), vous pouvez les masquer.
la source
first*256^3+second*256^2+third*256+fourth
dans une colonne?La solution la plus simple, en 3 étapes, je peux vous proposer,
Sélectionnez la colonne Adresse IP, appliquez la commande Texte à colonne .
Dans la colonne adjacente, écrivez cette formule
= CONCATENER (B3, ".", C3, ".", D3, ".", E3)
Enfin, triez par ordre croissant.
Vérifiez la capture d'écran.
NB:
Le rouge est l'adresse IP d'origine (dans la colonne A).
Vert après application du texte à la colonne (colonnes B à E).
Le noir est après concaténation et tri appliqués (colonne F).
La raison en est très simple. À l’origine, l’adresse IP est du type texte et Excel n’accepte aucun format de cellule pour le transformer en nombre.
J'espère que cela vous aidera.
la source
Text To Column
colonnes. @ MaxW, la mise en page est juste pour la démonstration. Si vous voulez que l'IP d'origine soit triée, ignorez simplement l'étape 2. Cette formule massive "VALUE (TRIM (MID (SUBSTITUTE)") "dans la réponse acceptée doit être remplacée par" Text To Columns "et le reste de la réponse est essentiellement identique à celui-ci.Voici une fonction VBA que j'ai écrite il y a quelque temps pour résoudre le même problème. Il génère une version complétée d'une adresse IPv4 qui trie correctement.
Exemple simple:
Résultat
Formules
Vous pouvez trier par la colonne 'Triable' et la cacher.
la source
Voici une réponse qui ne prend qu'une colonne de votre tableau et convertit l'adresse IPv4 en numérotation de base 10.
Puisque vous mettez vos données dans la colonne "M", cela commence dans la cellule M2 (M1 étant l'étiquette). En l'encapsulant sous forme de code, on a un désordre terrible, alors j'ai utilisé blockquote:
Ce n'est pas exactement la formule la plus lisible, mais vous pouvez simplement copier et coller dans votre cellule (de préférence N2 ou quelque chose d'autre dans la même ligne que votre première adresse IP). Cela suppose un formatage correct de l'adresse IP, car une correction d'erreur dans la formule aggraverait encore les choses pour l'analyse syntaxique.
la source
Si vous ne souhaitez pas utiliser de formules ou VBA, utilisez Power Query. (Dans Excel 2016, Get & Transform, dans Excel 2010 ou 2013, installez le complément PowerQuery à suivre).
la source
Le est une doublure similaire qui transforme les octets en champs de 3 chiffres qui permet un tri correct.
10.1.0.15
devient10001000015
.la source
En obtenant les bons points de la réponse de chacun, voici ma solution. Une seule colonne d'assistance est nécessaire. Nous essayons de formater les adresses IPv4 en
012.198.043.009
format , puis de les trier:12.198.43.9
à12 198 43 9
, puis à012.198.043.009
Formatez les adresses IPv4 au
012.198.043.009
format en les saisissant dans N2 et remplissez-les vers le bas:Trier par colonne N
Explication
En
SUBSTITUTE
insérant le point.
avec 6 espaces , nous obtenons ce qui suit, afin qu’ils puissent être extraits correctement:Et puis, extrayez et formatez chaque partie par
TEXT(..., "000")
.la source
Si vous utilisez une version récente d'Excel sous Windows, vous pouvez utiliser la formule suivante pour calculer la valeur décimale 32 bits de l'adresse IP.
Vous pouvez ensuite trier en utilisant la valeur décimale dérivée. Remplacez
[@ipbase]
par l'emplacement de la cellule d'une adresse IP4 valide.La fonction "FILTERXML" ne fonctionne que sous Windows, vous êtes donc malchanceux si vous utilisez un autre système d'exploitation.
la source
J'ai aussi un one-liner qui vous donnera un format IP rembourré (000.000.000.000) pour le tri alpha.
la source