Excel, elimine los ceros a la izquierda de la dirección IP

8

Tengo una lista de direcciones IP en el siguiente formulario:

    010.125.015.013
    010.125.153.012
    010.125.012.135

No puedo ejecutar ping con ese formulario ya que Windows piensa que es un formulario octal punteado. Necesito eliminar los primeros 0 después de cada punto.

No es tan simple ya que algunos de ellos no tienen ceros a la izquierda después de los puntos en absoluto y algunos de ellos lo tienen solo en el último octeto donde algunos lo tienen en el tercer octeto o ambos.

A menos que haya una solución para obligar a ping a interpretar es como una dirección IP decimal con puntos.

¿Alguien puede ayudar?

Gracias

Michal
fuente
2
¿Suponemos que desea preservar un 0 en algo así 123.234.000.276? (Sí, ejemplo falso.)
un CVn
no tiene que haber 0 así que en mi ejemplo: '010.125.015.013' '010.125.153.012' '010.125.012.135' Deben ser: '10 .125.15.13 ''10 .125.153.12' '10 .125.12.135 'Pero cuando es para ejemplo: '010.155.105.013' Tiene que ser: '10 .155.105.13 '
Michal
¡Puedes hacerlo fácilmente con el poder de la expresión regular! Use este enlace para comenzar. La expresión regular es tan simple como ^0(¡coincide con un cero al comienzo de la cadena!)
Dudemanword
2
Eliminar los ceros a la izquierda cambia la IP, ya que el cero a la izquierda significa números octales.
CodesInChaos
1
@CodesInChaos En general, sí. Pero la entrada parece que alguien simplemente antepuso ceros para hacer que cada octeto tenga tres dígitos. Parece poco probable que alguien también cambie la notación para que sea octal mientras realiza esa operación, además de que no funcionaría para octetos en el rango de 64 a 99. Supongo que la tarea es convertir IP de una notación no estándar con decimal números con ceros iniciales a una notación estándar con números decimales sin ceros iniciales.
kasperd

Respuestas:

11

Esto es lo que puedes hacer:

  1. Supongo que cada IP está en una sola celda como texto. Ahora convierta esta celda individual en columnas (mediante la función Texto a columnas) especificando .(punto) como delimitador. Ahora se distribuirán como números en las siguientes 4 celdas consecutivas, el cero inicial ahora debería desaparecer

  2. Use la función Concatenar (consulte la ayuda de Excel para obtener detalles y unir los 4 números incluyendo .después de cada cadena. Ahora debe tener una celda con la misma IP excluyendo todos los ceros a la izquierda).

Patkim
fuente
12

Qué pasa

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

Este usa SUBSTITUTE:

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

ingrese la descripción de la imagen aquí

En primer lugar, se recorta el espacio en blanco alrededor de la IP (en C5), añade un prefijo @., sustitutos .0con .dos veces y luego elimina el prefijo añadido @..

g.kov
fuente
¡Uf! Encuentro esta respuesta tan "pensamiento lateral" en comparación con las otras hasta ahora :) +1 porque (bromeando) ganas en codegolf (más en serio) el uso TRIMpara asegurarte de no dejar ningún espacio en blanco eventual (... y aún codegolf ganador hasta ahora! ;-D)
danicotra
3

Batido a tiempo (debo traducir fórmulas del italiano al inglés ... también dispongo de LibreOffice ...) De todos modos, suponiendo que las direcciones IP estén en la columna A, sugeriría esto:

=CONCATENATE(VALUE(MID(A1,1,3)),".",VALUE(MID(A1,5,3)),".",VALUE(MID(A1,9,3)),".",VALUE(MID(A1,13,3)))
danicotra
fuente
@fheub: muchas gracias por el agradecimiento. La versión italiana de Ms-Excel tiene casi todos los nombres de fórmulas diferentes ; sin embargo, usamos ;no ,como parámetros de fórmulas separador de manera que se necesita para cambiarlos - por cierto en Italia utilizamos coma (no DOT) como separador de la parte decimal para los números. Por último, pero no menos importante, uso Excel en el trabajo, pero en casa solo tengo LibreOffice y debo admitir que no está tan bien documentado como Excel (siempre espero que los nombres de fórmula sigan siendo los mismos entre los dos) y definitivamente carece de algunas características agradables en comparación con él ...
danicotra
PD: Me estaba olvidando ... LibreOffice difiere de Excel incluso en el hecho de que las referencias de hojas / celdas se realizan .en LibreOffice, mientras que en Excel debe usar !en su lugar ( 'Sheet 1'.A1<=> 'Sheet 1'!A1).
danicotra