Saat ini saya sedang bekerja dengan daftar besar alamat IP (ribuan dari mereka).
Namun, ketika saya mengurutkan kolom yang berisi alamat IP, mereka tidak mengurutkan dengan cara yang intuitif atau mudah diikuti.
Misalnya, jika saya memasukkan Alamat IP sebagai berikut:
Dan kemudian jika saya mengurutkan dalam urutan naik saya mendapatkan ini:
Apakah ada cara bagi saya untuk memformat sel sehingga, misalnya, alamat IP 17.255.253.65 muncul setelah 1.128.96.254 dan sebelum 103.236.162.56 ketika diurutkan dalam urutan menaik?
Jika tidak, adakah cara lain bagi saya untuk mencapai tujuan akhir ini?
microsoft-excel
ip-address
sorting
Monomeeth
sumber
sumber
Jawaban:
Seperti yang mungkin telah Anda sadari, alamat IP Anda diperlakukan sebagai teks dan bukan angka. Mereka sedang disortir sebagai teks, yang berarti bahwa alamat yang dimulai dengan "162" akan datang sebelum alamat yang dimulai dengan "20." (karena karakter "1" muncul sebelum karakter "2".
Anda dapat menggunakan rumus yang disediakan dalam jawaban ini: https://stackoverflow.com/a/31615838/4424957 untuk membagi alamat IP menjadi bagian-bagiannya.
Jika alamat IP Anda ada di kolom A, tambahkan kolom BE seperti yang ditunjukkan di bawah ini.
Masukkan formula
di sel B2 dan salin ke kolom BE di semua baris untuk mendapatkan empat bagian dari setiap alamat IP. Sekarang urutkan seluruh rentang dengan kolom B hingga E (dalam urutan itu) seperti yang ditunjukkan di bawah ini:
Jika Anda tidak ingin melihat kolom pembantu (BE), Anda dapat menyembunyikannya.
sumber
first*256^3+second*256^2+third*256+fourth
dalam satu kolom?Yang paling mudah, 3 langkah Solusi Saya bisa menyarankan Anda adalah ,,,
Pilih Kolom Alamat IP, terapkan perintah Teks ke Kolom .
Di kolom sebelah, tulis Formula ini
= CONCATENATE (B3, ".", C3, ".", D3, ".", E3)
Akhirnya Sortir dalam urutan Naik.
Periksa Tangkapan Layar.
NB:
Merah adalah Alamat IP Asli (dalam Kolom A).
Hijau setelah menerapkan Teks ke Kolom (Kolom B ke E).
Hitam Setelah Diaplikasikan Concatenate & Sorting (Kolom F).
Alasannya sangat sederhana, awalnya alamat IP adalah Data Teks dan Excel tidak menerima Format Sel apa pun untuk mengubahnya menjadi Angka.
Semoga ini bisa membantu Anda.
sumber
Text To Column
kolom di sana. @ MaxW, tata letak hanya untuk demonstrasi. Jika Anda ingin IP asli disortir, abaikan saja langkah 2. Rumus "VALUE (TRIM (MID (SUBSTITUTE") yang masif dalam jawaban yang diterima harus diganti dengan 'Text To Columns' dan sisa jawabannya pada dasarnya sama dengan ini).Inilah fungsi VBA yang saya tulis beberapa waktu lalu untuk menyelesaikan masalah yang sama. Ini menghasilkan versi empuk dari alamat IPv4 yang mengurutkan dengan benar.
Contoh sederhana:
Hasil
Formula
Anda dapat mengurutkan berdasarkan kolom 'Diurutkan' dan menyembunyikannya.
sumber
Berikut ini adalah jawaban yang hanya akan mengambil 1 kolom dari tabel Anda dan mengonversi alamat IPv4 menjadi penomoran 10 basis.
Karena Anda meletakkan data Anda di kolom "M", ini dimulai pada sel M2 (M1 menjadi label). Enkapsulasi sebagai kode memberikan satu kekacauan yang mengerikan, jadi saya telah menggunakan blockquote:
Bukan formula yang paling mudah dibaca, tetapi Anda bisa menyalin dan menempel ke sel Anda (lebih disukai N2 atau yang lain di baris yang sama dengan alamat IP pertama Anda). Itu menganggap pemformatan yang benar dari alamat IP sebagai koreksi kesalahan dalam formula akan membuatnya lebih buruk untuk penguraian manusia.
sumber
Jika Anda tidak ingin menggunakan rumus atau VBA, gunakan Power Query. (Di Excel 2016, Get & Transform, di Excel 2010 atau 2013 instal add-in PowerQuery untuk mengikuti).
sumber
Ini adalah liner serupa yang mengubah oktet menjadi bidang 3 digit yang memungkinkan penyortiran yang tepat.
10.1.0.15
menjadi10001000015
.sumber
Dengan mendapatkan poin bagus dari jawaban semua orang, inilah solusi saya. Hanya 1 kolom pembantu yang diperlukan. Kami mencoba memformat alamat IPv4 ke dalam
012.198.043.009
format dan kemudian mengurutkannya:12.198.43.9
untuk12 198 43 9
, lalu ke012.198.043.009
Format alamat IPv4 ke dalam
012.198.043.009
format dengan memasukkan N2 , dan isi ke bawah:Sortir menurut kolom N
Penjelasan
Dengan
SUBSTITUTE
memasukkan titik.
dengan 6 spasi , kita mendapatkan yang berikut, sehingga mereka dapat diekstraksi dengan benar:Dan kemudian, ekstrak dan format masing-masing bagian
TEXT(..., "000")
.sumber
Jika Anda menggunakan versi Excel terbaru di Windows Anda dapat menggunakan rumus berikut untuk menghitung nilai desimal 32 bit dari alamat IP.
Anda kemudian bisa mengurutkan menggunakan nilai desimal yang diturunkan. Ganti
[@ipbase]
dengan lokasi sel dari alamat IP4 yang valid.Fungsi "FILTERXML" hanya berfungsi di Windows, jadi Anda kurang beruntung jika menggunakan sistem operasi lain.
sumber
Saya juga punya satu-liner yang akan memberi Anda format IP empuk (000.000.000.000) untuk penyortiran alfa.
sumber