Excel como procurar por substring de finalização de comprimento de variável específica e cadeia de retorno sem essa substring final?

0

Não sei como intitular esta questão.

Eu tenho um desafio complicado que não sei como abordar no Excel.

Eu tenho uma coluna com longas cadeias de comprimento variável, exemplo

c68d7a51-5cef-4a5c-b417-b2751fe9754b  
c68d7a51-5cef-4a5c-b417-b2751fe9754b-0  
c68d7a51-5cef-4a5c-b417-b2751fe9754b-1
09573f-1780c84f-e5ff-85821a-6236e0399d
09573f-1780c84f-e5ff-85821a-6236e0399d-10
09573f-1780c84f-e5ff-85821a-6236e0399d-123

Onde para aqueles que terminam em um "- ***" eu preciso ter uma nova coluna que retorne a string sem que a subseqüência RIGHT final seja mais nula. A substring final é de 1 a 3 caracteres após o caractere "-" específico. Também preciso observar, com base nos comentários, que não posso trabalhar da esquerda porque as strings mudam de tamanho e de "-" posicionamento. A única constante é que algumas dessas strings têm valores de substring filho de 1 a 3 digitais após o último "-".

O que eu tenho até agora para um esboço se parece com isso

=IF(RIGHT(A1,4) contains "-", RIGHT(A1, LEN(A1) - number_of_chars_to_remove), else null. 

Se você não se importa, como eu vou fazer isso?

Agradeço sua ajuda, obrigado!

    
por Levy Image 18.09.2017 / 21:57

2 respostas

1

Use isto:

=IF(ISNUMBER(FIND("-",RIGHT(A1,4))),LEFT(A1,FIND("}}}",SUBSTITUTE(A1,"-","}}}",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))-1),"")

Primeiro, teste se há um - nos quatro últimos, se assim for, ele encontra o último - e o altera para }}} . Então descobre isso e faz disso o fim da equação ESQUERDA.

    
por 18.09.2017 / 22:11
0

Parece-me, com base nos seus dados de amostra, que você pode contar a string e, se tiver 5 traços, retornar os 38 primeiros caracteres; caso contrário, retornará NULL. Isso seria muito mais simples. 38 é significativo como o comprimento da corda até o quinto traço.

    
por 18.09.2017 / 22:03