Chuck ha un foglio di lavoro che, in una colonna, contiene una serie di indirizzi IP. Questi sono nel formato familiare di 192.168.2.1. Se ordina gli indirizzi, non vengono ordinati numericamente. Ad esempio, Excel inserisce 192.168.1.100 tra 192.168.1.1 e 192.168.1.2. Chuck si chiede se esiste un modo per ordinare una colonna di indirizzi IP in modo che appaiano nella sequenza corretta.

Ciò accade perché Excel visualizza un indirizzo IP come testo, non come un numero o una serie di numeri. Ci sono alcuni modi in cui puoi aggirare il problema, alcuni dei quali discuterò in questo suggerimento. Dovresti scegliere l’approccio più adatto alle tue esigenze, come definito dai tuoi dati e come li utilizzi.

Un approccio consiste nell’assicurarsi che ogni ottetto dei tuoi indirizzi IP sia composto da tre cifre. (Un ottetto è ciascuna parte dell’indirizzo IP, separata da punti). Ad esempio, invece di un indirizzo come 192.168.1.1, dovresti utilizzare 192.168.001.001. Questo “frontalino” ogni ottetto con zeri e, se tutti i tuoi indirizzi IP sono in questo formato, verranno ordinati correttamente.

Se preferisci usare una formula per garantire la spaziatura frontale di ogni ottetto, potresti usare quanto segue:

=TEXT(LEFT(A1,FIND(".",A1,1)-1),"000") & "." & TEXT(MID(A1,FIND( ".",A1,1)+1,FIND(".",A1,FIND(".",A1,1)+1)-FIND(".",A1,1)-1),"000")

& "." & TEXT(MID(A1,FIND(".",A1,FIND(".",A1,1)+1)+1,FIND(".",A1, FIND(".",A1,FIND(".",A1,1)+1)+1)-FIND(".",A1,FIND(".",A1,1)+1)-1), "000") & "." & TEXT(RIGHT(A1,LEN(A1)-FIND(".",A1,FIND(".",A1,FIND( ".",A1,1)+1)+1)),"000")

Questa formula è piuttosto lunga, ma è comunque un’unica formula. Inseriscilo nella colonna accanto ai tuoi primi indirizzi IP (supponendo che l’indirizzo si trovi nella cella A1) e quindi copiali tutte le righe necessarie. Quando esegui l’ordinamento, ordina per colonna B e gli indirizzi saranno nella sequenza corretta.

Se lavori con molti indirizzi IP, potresti voler creare una funzione definita dall’utente che metterà in primo piano ogni ottetto dell’indirizzo IP con zeri e quindi restituirà un IP completamente formattato. Il seguente eseguirà l’attività:

Function FormatIP(IPAddr As String) As String     Dim Dot1 As Integer     Dim Dot2 As Integer     Dim Dot3 As Integer     Dim Octet1 As String     Dim Octet2 As String     Dim Octet3 As String     Dim Octet4 As String

Dot1 = InStr(1, IPAddr, ".", vbTextCompare)

Dot2 = InStr(Dot1 + 1, IPAddr, ".", vbTextCompare)

Dot3 = InStr(Dot2 + 1, IPAddr, ".", vbTextCompare)



Octet1 = Left(IPAddr, Dot1-1)

Octet2 = Mid(IPAddr, Dot1+1, Dot2-Dot1-1)

Octet3 = Mid(IPAddr, Dot2+1, Dot3-Dot2-1)

Octet4 = Mid(IPAddr, Dot3+1, Len(IPAddr))



FormatIP = Right("000" & Octet1, 3) & "."

FormatIP = FormatIP & Right("000" & Octet2, 3) & "."

FormatIP = FormatIP & Right("000" & Octet3, 3) & "."

FormatIP = FormatIP & Right("000" & Octet4, 3)

End Function

In Excel, quindi, potresti usare l’UDF in questo modo, assumendo il tuo indirizzo IP originale nella cella A1:

=FormatIP(A1)

Un altro approccio consiste nel dividere semplicemente gli indirizzi IP in colonne separate, inserendo ogni ottetto nella propria colonna. Questo è facile se usi lo strumento Testo in colonne, in questo modo:

  1. Assicurati che ci siano tre colonne vuote a destra dei tuoi indirizzi IP.

  2. Seleziona l’intervallo di celle contenente gli indirizzi IP.

  3. Visualizza la scheda Dati della barra multifunzione.

  4. Fare clic sullo strumento Testo in colonne, nel gruppo Strumenti dati. Excel avvia la Conversione guidata testo in colonne. (Vedi figura 1.)

  5. Scegli il pulsante di opzione Delimitato.

  6. Fare clic su Avanti.

  7. Seleziona la casella di controllo accanto ad Altro e, a destra della casella di controllo, inserisci un punto.

  8. Fare clic su Fine.

Una volta terminato, puoi ordinare le quattro colonne come faresti normalmente per ordinare i numeri. Quindi, quando vuoi rimettere insieme gli indirizzi IP, potresti usare una formula come questa:

=A1 & "." & B1 & "." & C1 & "." & D1

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (13481) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.