EXCEL 2010 Verifique se o valor da string sub na célula corresponde a outra string do intervalo de células

3

Estou presa a essa daqui a algumas horas.

Eu tenho intervalo com células com valores de string:

A1 text1

A2 text2

An text3

E outra coluna com outros valores de string como:

B1 text1sampletext

B2 text2sampletext

B3 text3sampletext

B4 text1sampletext

B5 text1sampletext

Eu tenho que verificar se o texto na coluna A é sub-string de texto na coluna B. Se for, para definir na coluna C o texto da coluna A.

Assim:

B1 text1sampletext - C1 text1

B2 text2sampletext - C1 text2

B3 text3sampletext - C1 text3

B4 text1sampletext - C1 text1

B5 text1sampletext - C1 text1

    
por gotqn 01.03.2012 / 10:40

3 respostas

6

Isso deve funcionar no Excel 2010 e não requer "entrada de matriz"

=IFERROR(LOOKUP(2^15,FIND(A$1:A$3,B1),A$1:A$3),"not found")

FIND faz distinção entre maiúsculas e minúsculas, se você não quiser que a fórmula substitua com distinção entre maiúsculas e minúsculas FIND wiith SEARCH

Assume que A1: A3 não contém espaços em branco

    
por 01.03.2012 / 14:35
1

Eu não consegui por enquanto fazer a solução de Dave (brettdj) funcionando.

Aqui está um UDF que funcionaria:

Function copyText(rSubstr As Range, rText As Range)
'Check if any of the cell value from rSubstr exists in rText
Dim c As Range

If rText.Count > 1 Then Exit Function

For Each c In rSubstr
    If InStr(1, rText.Value, c.Value) > 0 Then
        copyText = c.Value
        Exit Function
    End If
Next c
End Function

Basta usar essa função em sua planilha:

=copyText($A$1:$A$3;B1)
    
por 01.03.2012 / 14:31
1

Sem dúvida Barry vai me envergonhar

Mas algo assim em C1 e copiado funcionará para xl07 e xl10

Pressione ctrl shift digite juntos para inserir isso como uma fórmula de matriz

=IFERROR(INDEX(A$1:A$3,MATCH(TRUE,NOT(ISERROR(FIND(A$1:A$3,B1))),0)),"not found")

para todas as versões xl novamente com Imprensa ctrl shift digite =IF(NOT(ISNA(MATCH(TRUE,NOT(ISERROR(FIND(A$1:A$3,B1))),0))),INDEX(A$1:A$3,MATCH(TRUE,NOT(ISERROR(FIND(A$1:A$3,B1))),0)),"not found")

    
por 01.03.2012 / 10:48