Ich arbeite derzeit mit einer großen Liste von IP-Adressen (Tausende von ihnen).
Wenn ich die Spalte mit den IP-Adressen sortiere, werden sie jedoch nicht auf intuitive oder leicht verständliche Weise sortiert.
Wenn ich zum Beispiel IP-Adressen wie folgt eingebe:
Und wenn ich dann in aufsteigender Reihenfolge sortiere, erhalte ich Folgendes:
Kann ich die Zellen so formatieren, dass beispielsweise eine IP-Adresse von 17.255.253.65 nach 1.128.96.254 und vor 103.236.162.56 in aufsteigender Reihenfolge angezeigt wird?
Wenn nicht, gibt es einen anderen Weg für mich, um dieses ultimative Ziel zu erreichen?
microsoft-excel
ip-address
sorting
Monomeeth
quelle
quelle
Antworten:
Wie Sie vielleicht bemerkt haben, werden Ihre IP-Adressen als Text und nicht als Zahlen behandelt. Sie werden als Text sortiert, dh Adressen, die mit "162" beginnen, stehen vor Adressen, die mit "20" beginnen. (weil das Zeichen "1" vor dem Zeichen "2" steht.
Sie können die in dieser Antwort angegebene Formel verwenden: https://stackoverflow.com/a/31615838/4424957 , um die IP-Adresse in ihre Teile aufzuteilen.
Wenn sich Ihre IP-Adressen in den Spalten A befinden, fügen Sie die Spalten BE wie unten gezeigt hinzu.
Geben Sie die Formel ein
in Zelle B2 und kopieren Sie es in die Spalten BE in allen Zeilen, um die vier Teile jeder IP-Adresse zu erhalten. Sortieren Sie nun den gesamten Bereich nach den Spalten B bis E (in dieser Reihenfolge), wie unten gezeigt:
Wenn Sie die Hilfsspalten (BE) nicht sehen möchten, können Sie sie ausblenden.
quelle
first*256^3+second*256^2+third*256+fourth
in einer Spalte zu "verketten" ?Die einfachste, 3 Schritte Lösung, die ich vorschlagen kann, sind ,,,
Wählen Sie die IP-Adressenspalte aus und wenden Sie den Befehl Text auf Spalte an .
In der nebenstehenden Spalte schreiben Sie diese Formel
= KONKATENAT (B3, ".", C3, ".", D3, ".", E3)
Zuletzt in aufsteigender Reihenfolge sortieren.
Überprüfen Sie den Screenshot.
NB:
Rot ist die ursprüngliche IP-Adresse (in Spalte A).
Grün nach dem Anwenden von Text auf Spalte (Spalte B bis E).
Schwarz ist nach dem Anwenden von Verketten und Sortieren (Spalte F).
Der Grund ist sehr einfach. Ursprünglich lautet die IP-Adresse "Textdaten" und Excel akzeptiert kein Zellenformat, um sie in "Zahl" umzuwandeln.
Hoffe das hilft dir.
quelle
Text To Column
Spalten dort. @MaxW, das Layout dient nur zur Demonstration. Wenn Sie möchten, dass die ursprüngliche IP sortiert wird, ignorieren Sie einfach Schritt 2. Diese massive "VALUE (TRIM (MID (SUBSTITUTE" -Formel in der akzeptierten Antwort sollte durch "Text To Columns" ersetzt werden, und der Rest der Antwort ist im Wesentlichen derselbe wie dieser.Hier ist eine VBA-Funktion, die ich vor einiger Zeit geschrieben habe, um das gleiche Problem zu lösen. Es wird eine gepolsterte Version einer IPv4-Adresse generiert, die korrekt sortiert ist.
Einfaches Beispiel:
Ergebnis
Formeln
Sie können nach der Spalte "Sortierbar" sortieren und diese ausblenden.
quelle
Hier ist eine Antwort, die nur eine Spalte Ihrer Tabelle benötigt und die IPv4-Adresse in eine 10er-Basis-Nummerierung umwandelt.
Da Sie Ihre Daten in Spalte "M" einfügen, beginnt dies in Zelle M2 (M1 ist die Bezeichnung). Die Verkapselung als Code führt zu einem schlimmen Durcheinander. Daher habe ich blockquote verwendet:
Nicht gerade die am leichtesten lesbare Formel, aber Sie können sie einfach kopieren und in Ihre Zelle einfügen (vorzugsweise N2 oder etwas anderes in derselben Zeile wie Ihre erste IP-Adresse). Die korrekte Formatierung der IP-Adresse wird vorausgesetzt, da eine Fehlerkorrektur in der Formel das Parsen durch den Menschen noch verschlimmern würde.
quelle
Wenn Sie keine Formeln oder VBA verwenden möchten, verwenden Sie Power Query. (Installieren Sie in Excel 2016, Get & Transform, in Excel 2010 oder 2013 das PowerQuery-Add-In, um mitzumachen.)
quelle
Dies ist ein ähnlicher Einzeiler, der die Oktette in dreistellige Felder umwandelt, die eine ordnungsgemäße Sortierung ermöglichen.
10.1.0.15
wird10001000015
.quelle
Hier ist meine Lösung, indem ich die guten Punkte aus der Antwort aller heraushole. Es wird nur 1 Hilfssäule benötigt. Wir versuchen, die IPv4-Adressen zu
012.198.043.009
formatieren und sie dann zu sortieren:12.198.43.9
zu12 198 43 9
, dann zu012.198.043.009
Formatieren Sie IPv4-Adressen in das
012.198.043.009
Format, indem Sie N2 eingeben , und geben Sie Folgendes ein:Nach Spalte N sortieren
Erklärung
Indem wir
SUBSTITUTE
den Punkt.
mit 6 Leerzeichen versehen , erhalten wir Folgendes, damit sie korrekt extrahiert werden können:Und dann extrahieren und formatieren Sie jeden Teil von
TEXT(..., "000")
.quelle
Wenn Sie eine neuere Excel-Version unter Windows verwenden, können Sie den 32-Bit-Dezimalwert der IP-Adresse mithilfe der folgenden Formel berechnen.
Sie können dann nach dem abgeleiteten Dezimalwert sortieren. Ersetzen Sie
[@ipbase]
durch den Zellenort einer gültigen IP4-Adresse.Die "FILTERXML" -Funktion funktioniert nur unter Windows, Sie haben also Pech, wenn Sie ein anderes Betriebssystem verwenden.
quelle
Ich habe auch einen Einzeiler, der Ihnen eine gepolsterte IP-Adresse (000.000.000.000) für die Alphasortierung gibt.
quelle