Excel, entfernen Sie führende Nullen von der IP-Adresse

8

Ich habe eine Liste von IP-Adressen in der folgenden Form:

    010.125.015.013
    010.125.153.012
    010.125.012.135

Ich kann mit diesem Formular keinen Ping ausführen, da Windows denkt, dass es sich um eine gepunktete Oktalform handelt. Ich muss führende Nullen nach jedem Punkt entfernen.

Es ist nicht so einfach, da einige von ihnen überhaupt keine führenden Nullen nach Punkten haben und einige von ihnen es nur im letzten Oktett haben, während einige es im dritten Oktett oder in beiden haben.

Es sei denn, es gibt eine Lösung, um die Interpretation von Ping als gepunktete Dezimal-IP-Adresse zu erzwingen.

Kann jemand helfen?

Vielen Dank

Michal
quelle
2
Sollen wir davon ausgehen, dass Sie eine 0 in so etwas wie beibehalten möchten 123.234.000.276? (Ja, falsches Beispiel.)
ein CVn
In meinem Beispiel darf es keine Nullen geben: '010.125.015.013' '010.125.153.012' '010.125.012.135' Sie müssen sein: '10 .125.15.13 ''10 .125.153.12' '10 .125.12.135 'Aber wenn es für ist Beispiel: '010.155.105.013' Es muss sein: '10 .155.105.13 '
Michal
Sie können dies ganz einfach mit der Kraft von Regex tun! Verwenden Sie diesen Link, um loszulegen. Die Regex ist so einfach wie ^0(eine Null am Anfang der Zeichenfolge!)
Dudemanword
2
Durch Entfernen führender Nullen wird die IP geändert, da die führende Null Oktalzahlen bedeutet.
CodesInChaos
1
@CodesInChaos Im Allgemeinen ja. Aber die Eingabe sieht so aus, als hätte jemand einfach Nullen vorangestellt, um jedes Oktett drei Stellen lang zu machen. Es ist unwahrscheinlich, dass jemand während dieser Operation auch die Notation in Oktal ändert, außerdem würde dies für Oktette im Bereich von 64 bis 99 nicht funktionieren. Ich vermute, die Aufgabe besteht darin, IPs von einer nicht standardmäßigen Notation mit Dezimalzahl zu konvertieren Zahlen mit führenden Nullen zu einer Standardnotation mit Dezimalzahlen ohne führende Nullen.
Kasperd

Antworten:

11

Folgendes können Sie tun:

  1. Ich gehe davon aus, dass sich jede IP in einer einzelnen Zelle als Text befindet. Konvertieren Sie nun diese einzelne Zelle in Spalten (mithilfe der Funktion "Text in Spalten") und geben Sie .(Punkt) als Trennzeichen an. Sie werden nun als Zahlen in den nächsten 4 aufeinanderfolgenden Zellen verteilt, wobei die führende Null jetzt weg sein sollte

  2. Verwenden Sie die Funktion Verketten (Einzelheiten finden Sie in der Excel-Hilfe, und fügen Sie die 4 Zahlen hinzu, indem Sie .nach jeder Zeichenfolge einfügen. Jetzt sollten Sie eine Zelle mit derselben IP-Adresse ohne alle führenden Nullen haben.

Patkim
quelle
12

Wie wäre es mit

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

Dieser verwendet SUBSTITUTE:

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

Geben Sie hier die Bildbeschreibung ein

Erstens ist es trimmt den leeren Raum um die IP (in C5), fügt einen Präfix @., Ersatz .0mit .zweimal und entfernt dann hinzugefügt Präfix @..

g.kov
quelle
Wütend! Ich finde diese Antwort so "Querdenken" im Vergleich zu den anderen bisher :) +1, weil (Scherz) Sie bei Codegolf (ernsthafter) die Verwendung von gewinnen TRIM, um sicherzustellen, dass kein Leerzeichen übrig bleibt (... und immer noch) bisher Codegolf gewinnen !;-D)
Danicotra
3

Pünktlich geschlagen (ich muss Formeln vom Italienischen ins Englische übersetzen ... außerdem verfüge ich nur über LibreOffice ...) Angenommen, IP-Adressen befinden sich in Spalte A, würde ich Folgendes vorschlagen:

=CONCATENATE(VALUE(MID(A1,1,3)),".",VALUE(MID(A1,5,3)),".",VALUE(MID(A1,9,3)),".",VALUE(MID(A1,13,3)))
Danicotra
quelle
@fheub: Vielen Dank für die Anerkennung. Die italienische Version von Ms-Excel hat fast alle unterschiedlichen Formelnamen . Trotzdem verwenden wir ;nicht ,als Parameter-Trennzeichen für Formeln, daher müssen diese geändert werden. Übrigens verwenden wir in Italien Komma (nicht Punkt) als Trennzeichen für den Dezimalteil für Zahlen. Last but not least verwende ich Excel bei der Arbeit, aber zu Hause habe ich nur LibreOffice und muss zugeben, dass es nicht so gut dokumentiert ist wie Excel (ich hoffe immer, dass die Formelnamen zwischen den beiden gleich bleiben) und definitiv einige nette Funktionen im Vergleich dazu fehlen ...
Danicotra
PS Ich habe vergessen ... LibreOffice unterscheidet sich von Excel sogar dadurch, dass .in LibreOffice auf Blätter / Zellen verwiesen wird, während Sie in Excel !stattdessen ( 'Sheet 1'.A1<=> 'Sheet 1'!A1) verwenden müssen.
Danicotra