Come ottenere l'estensione del file in MS Excel?


10

Ho una colonna contenente percorsi di file. Voglio creare un'altra colonna che contenga solo le estensioni dei percorsi. Come posso farlo in Microsoft Excel?


1
Per chiunque stia cercando come farlo in Google Spreadsheet, è possibile utilizzareREGEXEXTRACT(A1, "\.([^.]*)$")
Joe

Risposte:


20
=REPLACE(RIGHT(A1,5),1,SEARCH(".",RIGHT(A1,5)),"")

Questa formula sarà utile se hai più di un punto nel nome del file


2
Nota che questo funziona solo con estensioni di file di quattro caratteri o più brevi.
Tim Robinson,

1
Puoi semplicemente cambiare il 5 in un 6 o altro, giusto?
Devil's Advocate,

No, ciò causa problemi.
Devil's Advocate,

4

Tratto da un'altra risposta (modificato per cercare punti e non spazi):

=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1,".","|",LEN(A1)-LEN(SUBSTITUTE(A1,".","")))))

funziona a meraviglia! Grazie per la rapida soluzione copia / incolla. Funziona con estensioni di file con estensioni di file da 2 a 7 caratteri con percorsi completi e notazione degli spazi dei nomi nel nome file.
Zephan Schroeder,

2

La risposta Cyril funziona solo se l'estensione è di 3 o 4 caratteri e la risposta user273281 non ha funzionato quando c'erano .(punti) nel nome del file.

Quindi ho scoperto un nuovo modo per raggiungere questo obiettivo,

=TRIM(RIGHT(SUBSTITUTE(TRIM(A1), ".", REPT(" ", LEN(TRIM(A1)))), LEN(TRIM(A1))))

Nota: la risposta di user273281 non ha funzionato nel caso in cui il nome del file fosse 1. Macro based file.zip. Ritorna. Macro based file.zip


0

Supponendo di avere estensioni ben formattate, puoi farlo rapidamente come =RIGHT(A1,3). Una soluzione più solida troverebbe l'indice .dell'estrema destra e quindi estrarrà i caratteri rimanenti.


Leggendo la tua domanda che è la risposta che avrei dato.
VerGuy,

Penso che la vera domanda qui sia: come trovare il più giusto "." in Excel.
petersohn,

L'estensione non è sempre in 3 caratteri. @pertersohn: Sì, hai ragione.
Nam G VU,

0

Mi sono imbattuto in questo, che è la soluzione più semplice che abbia mai visto ...

=SUBSTITUTE(RIGHT(SUBSTITUTE(A5,".",REPT(".",50)),50),".","")

Funziona perché separa tutti i caratteri dopo l'ultimo periodo da tutti gli altri caratteri di 50 punti o qualsiasi numero tu scelga. È quindi possibile selezionare i 50 caratteri più a destra sapendo che non si sta selezionando altro che i caratteri di estensione e un mucchio di punti. Sostituisci i periodi e sei pronto per partire.

fonte

Alternativa: analisi XML


Un trucco accurato che a volte utilizzo per l'analisi delle stringhe in generale è sfruttare la FilterXML()funzione (Excel 2013 e versioni successive). La strategia di base consiste nell'utilizzare Substitute()per formattare la stringa in modo che venga analizzata tra gli elementi in una stringa xml, quindi è possibile utilizzare la sintassi xpath per navigare comodamente tra gli elementi analizzati. Usando questa strategia, ottenere un'estensione sarebbe simile a questo ...

=FILTERXML("<A><p>" & SUBSTITUTE(A1,".","</p><p>.")&"</p></A>","//p[last()]")

Se non hai familiarità con XML, questo può sembrare intimidatorio, ma se riesci a capire cosa sta succedendo, trovo che sia più pulito, più flessibile e più facile da ricordare rispetto agli approcci alternativi che usano len (), substitute (), ecc. Uno dei motivi per cui è più bello è perché c'è solo un riferimento di cella.

Personaggi illegali

Esistono due caratteri consentiti nei percorsi ma non in xml: &e'

L'equazione sopra funzionerà se questi personaggi non sono presenti, altrimenti dovranno essere gestiti qualcosa del genere ...

=FILTERXML("<A><p>" & SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(J8,"'",""),"&",""),".","</p><p>.")&"</p></A>","//p[last()]")

Esempio

Supponiamo di avere un brutto percorso di file come questo:

C: \ Folder1 \ Folder2 \ (caratteri brutti! @ # $% ^ () _ + = {} ;;, `) \ two.dots.LongExt

1.) La Substitution()porzione lo convertirà in una stringa xml come questa ...

<A>
    <p>
        C:\Folder1\Folder2\(ugly characters !@#$%^()_+={};;,`)\two
    </p>
    <p>
        .dots
    </p>
    <p>
        .txt
    </p>
</A>

2.) Una volta formattato in questo modo, è banale scegliere l'ultimo pelemento usando la sintassi xpath //p[last()].

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.