Respostas:
Tente usar isto:
=ISNUMBER(SEARCH("Some Text", A3))
Isso retornará TRUE
se a célula A3
contiver Some Text
.
CONTAINS("Text", cell)
função.
FIND()
no lugar deSEARCH()
,
invés de ;
. Depois de alterar a fórmula fornecida =ISNUMBER(SEARCH("Some Text"; A3))
, funcionou. Obrigado!
A fórmula a seguir determina se o texto "CHECK" aparece na célula C10. Caso contrário, o resultado está em branco. Se isso acontecer, o resultado é o trabalho "CHECK".
=IF(ISERROR(FIND("CHECK",C10,1)),"","CHECK")
Essa fórmula me parece mais intuitiva:
=SUBSTITUTE(A1,"SomeText","") <> A1
isso retornará TRUE se "SomeText" estiver contido em A1.
As fórmulas IsNumber / Search e IsError / Find mencionadas nas outras respostas certamente funcionam, mas sempre me pego precisando procurar a ajuda ou fazer experiências no Excel com muita frequência com essas.
Para aqueles que gostariam de fazer isso usando uma única função dentro da instrução IF, eu uso
=IF(COUNTIF(A1,"*TEXT*"),TrueValue,FalseValue)
para ver se o substring TEXT está na célula A1
[NOTA: O TEXTO precisa ter asteriscos em torno dele]
Confira a FIND()
função no Excel.
Sintaxe:
FIND( substring, string, [start_position])
Retorna #VALUE!
se não encontrar a substring.
ISNUMBER
também funciona, apenas para correspondências que diferenciam maiúsculas de minúsculas.
Eu gosto da resposta Rink.Attendant.6. Na verdade, eu quero verificar várias seqüências de caracteres e fiz desta maneira:
Primeiro a situação: nomes que podem ser construtores de casas ou nomes de comunidades e eu preciso agrupar os construtores como um grupo. Para fazer isso, estou procurando a palavra "construtor" ou "construção" etc. etc.
=IF(OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*builder*")),"Builder","Community")
=OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*construction*"))
?
COUNTIFS
:COUNTIFS(A1,"*builder*",A1,"*construction*")
É uma pergunta antiga, mas acho que ainda é válida.
Como não há função CONTAINS, por que não declará-la no VBA? O código abaixo usa a função Instr VBA, que procura uma substring em uma string. Retorna 0 quando a sequência não é encontrada.
Public Function CONTAINS(TextString As String, SubString As String) As Integer
CONTAINS = InStr(1, TextString, SubString)
End Function
Esta é uma pergunta antiga, mas uma solução para aqueles que usam o Excel 2016 ou mais recente é que você pode remover a necessidade de estruturas aninhadas se usando a nova IFS( condition1, return1 [,condition2, return2] ...)
condicional.
Eu o formatei para tornar visualmente mais claro como usá-lo para o caso desta pergunta:
=IFS(
ISERROR(SEARCH("String1",A1))=FALSE,"Something1",
ISERROR(SEARCH("String2",A1))=FALSE,"Something2",
ISERROR(SEARCH("String3",A1))=FALSE,"Something3"
)
Como SEARCH
retorna um erro se uma string não for encontrada, envolvi-a com um ISERROR(...)=FALSE
para verificar a verdade e, em seguida, retorne o valor desejado. Seria ótimo se SEARCH
retornado 0 em vez de um erro de legibilidade, mas é assim que infelizmente funciona.
Outra nota de importância é que IFS
retornará a correspondência que encontrar primeiro e, portanto, a ordem é importante. Por exemplo, se minhas seqüências de caracteres fossem Surf, Surfing, Surfs
as String1,String2,String3
mencionadas acima e a sequência de células, Surfing
ela corresponderia no primeiro termo, em vez do segundo por causa da substring Surf
. Assim, os denominadores comuns precisam ser os últimos da lista. Meu IFS
precisaria ser ordenado Surfing, Surfs, Surf
para funcionar corretamente (trocar Surfing
e Surfs
também funcionaria neste exemplo simples), mas Surf
precisaria ser o último.
Aqui está a fórmula que estou usando
=IF( ISNUMBER(FIND(".",A1)), LEN(A1) - FIND(".",A1), 0 )
IFERROR(LEN(A1) - FIND(".", A1), 0)