Eu tenho uma coluna contendo caminhos de arquivo. Quero criar outra coluna que contenha apenas as extensões dos caminhos. Como posso fazer isso no Microsoft Excel?
microsoft-excel
Nam G VU
fonte
fonte
REGEXEXTRACT(A1, "\.([^.]*)$")
Respostas:
Essa fórmula será útil se você tiver mais de um ponto no nome do arquivo
fonte
Retirado de outra resposta (alterado para procurar pontos e não espaços):
fonte
A resposta Cyril funciona apenas se a extensão tiver 3 ou 4 caracteres e a resposta user273281 não funcionou quando havia
.
(pontos) no nome do arquivo.Por isso, descobri uma nova maneira de conseguir isso,
Nota: o respondedor de user273281 não funcionou para o caso em que o nome do arquivo estava
1. Macro based file.zip
. Retorna. Macro based file.zip
fonte
Supondo que você tenha extensões bem formatadas, você pode fazer isso rapidamente como
=RIGHT(A1,3)
. Uma solução mais robusta encontraria o índice da direita.
e extrairia os caracteres restantes.fonte
Me deparei com isso, que é a solução mais simples que eu já vi ...
=SUBSTITUTE(RIGHT(SUBSTITUTE(A5,".",REPT(".",50)),50),".","")
Funciona porque separa todos os caracteres após o último período de todos os outros caracteres por 50 períodos, ou qualquer número que você escolher. Você pode selecionar os 50 caracteres mais à direita, sabendo que não está selecionando nada além de seus caracteres de extensão e vários períodos. Substitua os períodos e você está pronto para ir.
Fonte
Alternativa: Análise XML
Um truque interessante que às vezes uso para análise de string em geral é alavancar a
FilterXML()
função (Excel 2013 e posterior). A estratégia básica é usarSubstitute()
para formatar sua cadeia de caracteres de forma que ela seja analisada entre elementos em uma cadeia de caracteres xml e, em seguida, você pode usar a sintaxe xpath para navegar convenientemente por seus elementos analisados. Usando essa estratégia, obter uma extensão ficaria assim ...Se você não conhece o xml, isso pode parecer intimidador, mas se você consegue entender o que está acontecendo, acho que é mais limpo, mais flexível e mais fácil de lembrar do que as abordagens alternativas que usam len (), substitute (), etc. Uma razão pela qual é melhor é porque há apenas uma referência de célula.
Personagens Ilegais
Existem dois caracteres permitidos nos caminhos, mas não no xml:
&
e'
A equação acima funcionará se esses caracteres não estiverem presentes; caso contrário, eles precisarão ser manipulados com algo assim ...
=FILTERXML("<A><p>" & SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(J8,"'",""),"&",""),".","</p><p>.")&"</p></A>","//p[last()]")
Exemplo
Suponha que tenhamos um caminho de arquivo desagradável como este:
C: \ Pasta1 \ Pasta2 \ (caracteres feios! @ # $% ^ () _ + = {} ;;, `) \ two.dots.LongExt
1.) A
Substitution()
parte irá convertê-lo em uma string xml como esta ...2.) Depois de formatado assim, é trivial escolher o último
p
elemento usando a sintaxe xpath//p[last()]
.fonte