Excel, hapus awalan 0 dari alamat IP


8

Saya memiliki daftar alamat IP dalam bentuk berikut:

    010.125.015.013
    010.125.153.012
    010.125.012.135

Saya tidak dapat menjalankan ping dengan formulir itu karena windows berpikir itu adalah bentuk oktal bertitik. Saya perlu menghapus 0 di depan setelah setiap titik.

Ini tidak sesederhana beberapa dari mereka tidak memiliki 0 di belakang setelah titik sama sekali dan beberapa dari mereka hanya memilikinya pada oktet terakhir di mana beberapa memilikinya pada oktet ketiga atau keduanya.

Kecuali ada solusi untuk memaksa ping menginterpretasikannya sebagai alamat IP desimal bertitik.

Adakah yang bisa membantu?

Terima kasih


2
Haruskah kita berasumsi bahwa Anda ingin mempertahankan 0 dalam sesuatu seperti 123.234.000.276? (Ya, contoh palsu.)
CVn

tidak boleh ada 0 sehingga dalam contoh saya: '010.125.015.013' '010.125.153.012' '010.125.012.135' Mereka harus: '10 .125.15.13 ''10 .125.153.12' '10 .125.12.135 'Tetapi ketika itu untuk contoh: '010.155.105.013' Itu harus: '10 .155.105.13 '
Michal

Anda dapat melakukan ini dengan cukup mudah dengan kekuatan regex! Gunakan tautan ini untuk memulai. Regex ini sesederhana ^0(cocok dengan nol di awal string!)
Dudemanword

2
Menghapus nol depan mengubah IP, karena nol di depan menandakan angka oktal.
CodesInChaos

1
@ CodeInChaos Secara umum ya. Tapi inputnya terlihat seperti seseorang yang hanya nol di bawah nol untuk membuat setiap oktet tiga digit panjangnya. Tampaknya tidak mungkin seseorang juga akan mengubah notasi menjadi oktal saat melakukan operasi itu, selain itu tidak akan bekerja untuk oktet dalam kisaran 64 hingga 99. Saya menduga tugasnya adalah untuk mengubah IP dari notasi non-standar dengan desimal angka dengan nol di depan ke notasi standar dengan angka desimal tanpa nol di depan.
kasperd

Jawaban:


11

Inilah yang dapat Anda lakukan:

  1. Saya berasumsi setiap IP dalam satu sel tunggal sebagai teks. Sekarang mengkonversi sel tunggal ini untuk kolom (dengan menggunakan fitur Kolom Text-to-) menentukan .(dot) sebagai pembatas. Mereka sekarang akan didistribusikan sebagai angka dalam 4 sel berikutnya berturut-turut, nol memimpin sekarang harus hilang

  2. Gunakan fungsi Concatenate (lihat bantuan Excel untuk detail dan gabungkan 4 angka dengan memasukkan .setelah setiap string. Sekarang Anda harus memiliki sel dengan IP yang sama tidak termasuk semua nol terkemuka.


12

Bagaimana dengan

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

6

Yang ini menggunakan SUBSTITUTE:

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

masukkan deskripsi gambar di sini

Pertama, ini memangkas ruang kosong di sekitar IP (dalam C5), menambahkan awalan @., menggantikan .0dengan .dua kali dan kemudian menghapus awalan yang ditambahkan @..


Wah! Saya menemukan jawaban ini sangat "berpikir lateral" dibandingkan dengan yang lain sejauh ini :) +1 karena (bercanda) Anda menang di codegolf (lebih serius) penggunaan TRIMuntuk memastikan tidak meninggalkan ruang putih akhirnya (... dan masih memenangkan codegolf sejauh ini! ;-D)
danicotra

3

Dipukul tepat waktu (saya harus menerjemahkan rumus dari bahasa Italia ke bahasa Inggris ... juga saya hanya membuang LibreOffice ...) Bagaimanapun, seandainya alamat IP ada di kolom A, saya sarankan ini:

=CONCATENATE(VALUE(MID(A1,1,3)),".",VALUE(MID(A1,5,3)),".",VALUE(MID(A1,9,3)),".",VALUE(MID(A1,13,3)))

@Fheub: terima kasih banyak atas penghargaannya. Ms-Excel versi Italia memiliki hampir semua nama formula yang berbeda ; Meskipun demikian, kami menggunakan ;bukan ,sebagai pemisah parameter rumus sehingga diperlukan untuk mengubahnya - tetapi di Italia kami menggunakan koma (bukan titik) sebagai pemisah untuk bagian desimal untuk angka. Terakhir tetapi tidak kalah pentingnya, saya menggunakan Excel di tempat kerja tetapi di rumah saya hanya memiliki LibreOffice dan harus mengakui bahwa itu tidak terdokumentasi dengan baik seperti Excel (saya selalu berharap nama formula tetap sama di antara keduanya) dan pasti tidak memiliki beberapa fitur bagus dibandingkan dengan itu ...
danicotra

PS Saya lupa ... LibreOffice berbeda dari Excel bahkan dalam kenyataan bahwa referensi lembar / sel dibuat .di LibreOffice sedangkan di Excel Anda harus menggunakan !sebagai gantinya ( 'Sheet 1'.A1<=> 'Sheet 1'!A1).
danicotra
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.