Dividir caminhos de pastas no Excel para retornar a pasta final

2

Eu tenho uma única coluna no Excel que tem um caminho de arquivo e pasta. por exemplo. C: \ 1_Folder \ 2_Folder \ 3_Folder \ my_file.txt

Gostaria de extrair o nome da pasta final e colocar isso em uma nova coluna. Neste exemplo, 3_Folder.

Isso pode ser alcançado usando uma fórmula em vez de VBA?

Editar: o número de pastas aninhadas pode variar.

    
por BobJim 08.09.2015 / 12:36

3 respostas

1

Você pode usar as funções de texto FIND e MID. Isso funcionará para um número variável de pastas

Texto do caminho C:_Folder_Folder_Folder\my_file.txt

Localizar posição próxima à última barra (B1): FIND("|",SUBSTITUTE(A1,"\","|",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))-1))

Encontre a posição da última barra (C1): FIND("\",A1,B1+1)

Coloca os caracteres entre a penúltima e a última barra: MID(A1,B1+1,(C1-B1)-1)

    
por 08.09.2015 / 13:03
2

Eu uso regex addin para tarefas como esta, com expressão regular:

=RegExReplace(A1,".*\([^\]*)\[^\]*","$1") - isso extrai a substring antes do último \ (praticamente a última pasta que você precisa)

    
por 08.09.2015 / 15:52
0

Esta resposta é baseada na resposta aceita a uma pergunta muito semelhante .

Se você quiser em uma fórmula, você pode usar:

=RIGHT(A6,LEN(A6)+1-FIND("@",SUBSTITUTE("\"&A6,"\","@",(LEN(A6)-LEN(SUBSTITUTE("\"&A6,"\",""))+1))))

... que basicamente calcula o número de barras invertidas, removendo-as todas e comparando comprimentos. Ele usa esse número para substituir a última ocorrência por um "@" e, em seguida, volta e encontra a posição do "@" que é alimentada na fórmula RIGHT para capturar a subseqüência arrastando a última barra invertida. Uma barra invertida extra e um "+1" são adicionados para lidar com o caso de barras invertidas zero na origem. Se não houver barras invertidas, a string original será retornada.

Se seus dados já contiverem "@", você precisará escolher um caractere de substituição diferente.

    
por 08.09.2015 / 15:36