Excel, supprimez les premiers 0 de l'adresse IP

8

J'ai une liste d'adresses IP sous la forme suivante:

    010.125.015.013
    010.125.153.012
    010.125.012.135

Je ne peux pas exécuter de ping avec ce formulaire car Windows pense que c'est une forme octale en pointillés. Je dois supprimer les 0 en tête après chaque point.

Ce n'est pas si simple car certains d'entre eux n'ont pas de 0 après les points du tout et certains ne l'ont que sur le dernier octet alors que certains l'ont sur le troisième octet ou les deux.

À moins qu'il n'y ait une solution pour forcer le ping à interpréter, c'est comme une adresse IP décimale en pointillés.

Quelqu'un peut-il aider?

Merci

Michal
la source
2
Devons-nous supposer que vous voulez conserver un 0 dans quelque chose comme 123.234.000.276? (Oui, faux exemple.)
un CVn
il doit y avoir aucun 0 donc dans mon exemple: '010.125.015.013' '010.125.153.012' '010.125.012.135' Ils doivent être: '10 .125.15.13 ''10 .125.153.12' '10 .125.12.135 'Mais quand c'est pour exemple: '010.155.105.013' Cela doit être: '10 .155.105.13 '
Michal
Vous pouvez le faire assez facilement avec la puissance des regex! Utilisez ce lien pour commencer. Le regex est aussi simple que ^0(correspondre à un zéro au début de la chaîne!)
Dudemanword
2
La suppression des zéros en tête change l'IP, car le zéro en tête signifie des nombres octaux.
CodesInChaos
1
@CodesInChaos En général oui. Mais l'entrée semble que quelqu'un a simplement ajouté des zéros pour faire de chaque octet trois chiffres. Il semble peu probable que quelqu'un change également la notation en octal lors de l'exécution de cette opération, en plus cela ne fonctionnerait pas pour les octets compris entre 64 et 99. Je suppose que la tâche consiste à convertir les adresses IP à partir d'une notation non standard avec décimale les nombres avec des zéros de tête à une notation standard avec des nombres décimaux sans zéros de tête.
kasperd

Réponses:

11

Voici ce que vous pouvez faire:

  1. Je suppose que chaque IP est dans une seule cellule en tant que texte. Convertissez maintenant cette cellule unique en colonnes (en utilisant la fonction Text-to-Columns) en spécifiant .(point) comme délimiteur. Ils doivent maintenant être distribués sous forme de nombres dans les 4 prochaines cellules consécutives, le zéro devant devrait maintenant disparaître

  2. Utilisez la fonction Concaténer (voir l'aide d'Excel pour plus de détails et joindre les 4 nombres en les incluant .après chaque chaîne. Maintenant, vous devriez avoir une cellule avec la même IP excluant tous les zéros de tête.

patkim
la source
12

Qu'en est-il de

=INT(MID(A1,1,3)) & "." & 
 INT(MID(A1,5,3)) & "." & 
 INT(MID(A1,9,3)) & "." & 
 INT(MID(A1,13,3))
sgmoore
la source
6

Celui-ci utilise SUBSTITUTE:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("@."&TRIM(C5),".0","."),".0","."),"@.","")

entrez la description de l'image ici

Tout d'abord, il coupe l'espace vide autour de l'IP (in C5), ajoute un préfixe @., le remplace .0par .deux fois, puis supprime le préfixe ajouté @..

g.kov
la source
Ouf! Je trouve cette réponse si "pensée latérale" par rapport aux autres jusqu'ici :) +1 parce que (blague) vous gagnez chez codegolf (plus sérieusement) en utilisant TRIMpour vous assurer de ne laisser aucun espace blanc éventuel (... et toujours gagnant de codegolf jusqu'à présent! ;-D)
danicotra
3

Battu à temps (je dois traduire des formules de l'italien vers l'anglais ... aussi je ne dispose que de LibreOffice ...) Quoi qu'il en soit, en supposant que les adresses IP sont sur la colonne A, je suggère ceci:

=CONCATENATE(VALUE(MID(A1,1,3)),".",VALUE(MID(A1,5,3)),".",VALUE(MID(A1,9,3)),".",VALUE(MID(A1,13,3)))
danicotra
la source
@fheub: merci beaucoup pour l'appréciation. La version italienne de Ms-Excel a presque tous les noms de formules différentes ; néanmoins, nous n'utilisons ;pas ,comme séparateur des paramètres des formules, il faut donc les changer - en Italie, nous utilisons la virgule (pas le point) comme séparateur pour la partie décimale des nombres. Enfin et surtout, j'utilise Excel au travail mais à la maison, je n'ai que LibreOffice et je dois admettre qu'il n'est pas aussi bien documenté qu'Excel (j'espère toujours que les noms des formules restent les mêmes entre les deux) et qu'il manque définitivement de belles fonctionnalités par rapport à lui ...
danicotra
PS J'oubliais ... LibreOffice diffère d'Excel même dans le fait que les références de feuilles / cellules sont faites avec .dans LibreOffice alors que dans Excel vous devez utiliser à la !place ( 'Sheet 1'.A1<=> 'Sheet 1'!A1).
danicotra