Come condensare valori sequenziali su una singola riga

Renzo ha un elenco di codici postali in una colonna di un foglio di lavoro. Vorrebbe un modo per “comprimere” i codici in modo che gli intervalli di valori sequenziali si trovino su un’unica riga. Quindi, ad esempio, invece di 35013, 35014 e 35015 che occupano tre righe, dovrebbero apparire su una singola riga come 35013-35015.

Ci sono un paio di modi per farlo, con o senza macro. Sul lato “senza macro” della recinzione, ci sono una serie di approcci diversi e tutti implicano l’uso di colonne aggiuntive per contenere risultati intermedi.

Ad esempio, supponiamo che tu abbia i tuoi dati nella colonna A, a partire dalla cella A2, e che la cella A1 sia vuota (non contiene nemmeno il testo dell’intestazione). In questo caso puoi inserire la seguente formula nella cella B2:

=SE(NON(A2-A1=1);A2;SE(A3-A2=1;B1;A2))

 

Quindi, nella cella C2, inserisci la seguente lunga formula:

=SE(NON(A3-A2=1);SE(A2-A1=1;TESTO(B1;"00000") & " - " & TESTO(B2;"00000");TESTO(A2;"00000"));"")

 

Ora puoi copiare le formule delle celle B2:C2 nelle rispettive colonne. Quello che ottieni nella colonna C è la serie condensata di codici postali.

Se desideri utilizzare un approccio macro, non sono necessarie colonne intermedie. È possibile scrivere una macro che sostanzialmente comprime l’elenco dei codici postali sul posto. La seguente macro scorre l’intervallo di celle selezionato e le sostituisce con l’elenco condensato:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

LE SCHEDE TECNICHE DELLE FUNZIONI UTILIZZATE

Tags: , , , , , , , , , , ,

Ti è stato utile?