Fórmula do Planilhas Google para "se contiver"

40

Estou tentando descobrir como identificar IFuma lista de itens em uma célula que contém um valor ou string.

EXEMPLO

A célula A1 contém sites, sheets, docs, slides.

Quero que a célula B1 exiba 1 'se' a célula A1 contiver a string sites.

FÓRMULA

=if(A1 ?????? "sites", 1,0)

Não sei ao certo o que substituir ??????dentro da fórmula acima OU se essa fórmula for possível. Todas as idéias sobre como alcançar o resultado desejado são muito apreciadas.

Mr. B
fonte

Respostas:

55

Você pode usar REGEXMATCH:

=IF(REGEXMATCH(A1, "sites"), 1, 0)

Para explicar, REGEXMATCH retorna true se e somente se o argumento for uma subcadeia de caracteres da sua string.

Aurielle Perlmann
fonte
10
Usando regexmatchseria mais simples: if(regexmatch(A1, "sites"), 1, 0).
11
O "if" não é necessário, pois o regexmatch já retorna um booleano, portanto, apenas "REGEXMATCH (A1," sites ")"
David
2
O if existe para que eles possam converter o verdadeiro em 1 ou 0 se falso
Aurielle Perlmann 18/01
7

=if(search("sites",B2)>0,1,0)

=if(IFERROR(search("sites",B2)>0,0),1,0)

Ambos funcionam. O segundo grava um 0 se houver um erro.

Tom Woodward
fonte
2
A primeira fórmula nunca retornará 0 porque SEARCH(search_for, text_to_search, [starting_at])retornará um erro quando search_fornão for encontrada.
Rubén
1

Você provavelmente está fazendo isso porque deseja saber a contagem ou o número médio de linhas que contêm a palavra "sites". Supondo que você tenha 100 linhas de entradas na coluna A, você pode usar esta função para descobrir quantas linhas têm a palavra "sites":

=QUERY(A1:A100, "select count(A) where A like '%sites%'")

Isso é muito mais rápido do que criar uma coluna de 1s e zeros e operar nessa nova coluna.

Ryan Shillington
fonte
Isso pode funcionar sobre uma caixa em vez de apenas uma coluna?
Adam Starrh 11/09
Sim. em vez de A1:A100você poder fazer isso A1:C100e escrever uma consulta com as colunas A, B e C.
Ryan Shillington
1

Uma solução sem REGEX:

=if(iserror(FIND("sites",B2)),0,1)

questões de maiúsculas e iflógica devem ser revertidas, uma vez que a resposta é truequando a string não é encontrada.

Adrià
fonte
É basicamente o mesmo que esta resposta , mas introduzindo a coisa que diferencia maiúsculas de minúsculas. A propósito, os dados de amostra fornecidos pelo OP sheetsnão incluem Sheets.
Rubén
0

=IF(QUERY(A1, "where A contains 'sites'")<>"", 1, )

0 0

user0
fonte
0

Se você, como sugere Ryan Shillington, deseja saber o número de células dentro de um intervalo que contém "sites", tente:

=COUNTIF(A1:A100;"*sites*") 

O * atua como uma noção curinga, portanto, procurará uma correspondência em qualquer lugar da célula, não apenas uma correspondência exata para toda a célula.

Também fiz isso com uma referência de célula em vez de " sites ", mas você precisa adicionar caracteres curinga-asteriscos ao texto na célula.

Heidi
fonte
0

Se você optar pela opção asteriscos e desejar uma referência de célula, poderá usar a função CONCATENATE para adicionar asteriscos

=COUNTIF(A1:A100,CONCATENATE("*",A1,"*"))

arh
fonte