Excel, TRIM Caminho para o último ultimo “/”

1

Tenho os seguintes caminhos:

Stack / Over / Flow

Super / Usuário

Fórmula eu tenho:

=RIGHT(A2,LEN(A2)-FIND("|",SUBSTITUTE(A2,"/","|",B2))+1)

Atualmente, meu caminho segue o caminho A2, e o que # indicar em B2, reduz o caminho com base no #. Então, se eu tiver 2 em B2, isso me dará fluxo, e se eu colocar 1, ele me dará Over / Flow. O problema é que os caminhos que eu tenho não são uniformes em comprimento e também não ajustam o nó final. Minha fórmula está em C2. Número para analisar em B2. caminhos em A2.

O truque aqui é conseguir extrair o segundo último nó.

Saída desejada :

Mais de

Super

    
por Jonnyboi 29.03.2017 / 18:36

2 respostas

2

Essa abordagem permitirá a extração de qualquer segmento / separado com base no valor em B2.

Primeiro defina um nome seq_99

seq_99 refers to: =IF(ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))=1,1,(ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))-1)*99)

Isso cria uma matriz de valores {1;99;198;297;...}

OBSERVAÇÃO Se algum dos seus segmentos for mais longo, aumente o 99; por exemplo para 999)

Em seguida, tente esta fórmula:

=INDEX(TRIM(MID(SUBSTITUTE(A2,"/",REPT(" ",99)),seq_99,99)),B2)

Onde B2 contém a posição do segmento que você deseja extrair.

Se você quiser contar em sentido inverso, tal que

1 = last segment

2 = next to last segment

Em seguida, substitua B2 por:

(LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))+2-B2

para que a fórmula se parecesse com:

=INDEX(TRIM(MID(SUBSTITUTE(A2,"/",REPT(" ",99)),seq_99,99)),(LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))+2-B2)

Aqui está um exemplo da fórmula que está sendo usada. Observe que com um 2 na Coluna B, o segundo do último segmento está sendo retornado pela fórmula:

    
por 02.04.2017 / 15:18
1

Use isto:

=TRIM(MID(SUBSTITUTE(A2,"/",REPT(" ",99)),(LEN(A2)-LEN(SUBSTITUTE(A2,"/",""))-1)*99+1,99))

Ele retornará o segundo para o final:

    
por 29.03.2017 / 18:39