Beatrice ha un foglio di lavoro in cui una colonna contiene molti percorsi di file. Vorrebbe un modo per estrarre solo il nome del file (la parte a destra della barra rovesciata finale) da ciascun percorso. Si chiede se esiste un modo rapido per farlo senza utilizzare la funzione Testo in colonne.
Esistono diversi modi, a seconda che si desideri utilizzare una macro oppure no.
Se i nomi dei file hanno tutti la stessa lunghezza, puoi semplicemente utilizzare la funzione DESTRA per estrarre gli ultimi caratteri (questa formula presuppone che il percorso completo e il nome del file siano nella cella A1).
=DESTRA(A1;11)
Ciò presuppone che il nome del file sia sempre lungo 11 caratteri, ad esempio “testo01.txt”. Se il nome file ha una lunghezza diversa in ogni istanza, questo approccio non funzionerà. Invece, puoi provare questa formula:
=STRINGA.ESTRAI(A1;TROVA(CODICE.CARATT(1);SOSTITUISCI(A1;"\";CODICE.CARATT(1);LUNGHEZZA(A1)-LUNGHEZZA(SOSTITUISCI(A1;"\";""))))+1;LUNGHEZZA(A1))
Tieni presente che la formula utilizza la funzione SOSTITUISCI due volte. In tutti i casi sostituisce le barre rovesciate (\) con qualcos’altro. La prima volta le sostituisce tutte con un valore ASCII pari a 1 e la seconda volta le sostituisce con niente (una stringa vuota) in modo da poter determinare quante barre rovesciate erano nel percorso originale. La funzione STRINGA.ESTRAI viene utilizzata per individuare (con l’aiuto delle funzioni TROVA e SOSTITUISCI) la posizione dell’ultima barra rovesciata nel percorso e restituisce tutto dopo quel punto.
È possibile utilizzare una formula più breve se si è sicuri che il nome del file non sarà mai più lungo di 99 caratteri:
=ANNULLA.SPAZI(DESTRA(SOSTITUISCI(A1;"\";RIPETI(" ";100));99))
Questa formula sostituisce tutte le barre rovesciate con 100 spazi, prende i 99 caratteri più a destra dalla stringa risultante (che sarebbe il nome del file con una serie di spazi davanti) e quindi elimina tutti gli spazi.
Se vuoi utilizzare una macro puoi creare una funzione molto breve che separerà una stringa (il percorso completo, in questo caso) in base ai delimitatori:
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.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Te l’avevo detto che era breve! La funzione che svolge il lavoro pesante è la funzione Split che separa una stringa in base a un delimitatore specificato e inserisce le parti in un array. In questo esempio la funzione Split utilizza come delimitatore il separatore di percorso appropriato per il sistema su cui è in esecuzione Excel.
L’ultimo elemento dell’array risultante (determinato con la funzione UBound) contiene la parte del percorso originale che si trova a destra dell’ultimo separatore di percorso: il nome del file.
Puoi sviluppare una funzione ancora più breve per svolgere il lavoro:
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.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Per utilizzare entrambe le funzioni, inserisci una formula come questa in una cella:
=NomeFile(A1)