Fórmula de Hojas de cálculo de Google para "si contiene"

40

Estoy tratando de descubrir cómo identificar IFuna lista de elementos en una celda que contiene un valor o una cadena.

EJEMPLO

La celda A1 contiene sites, sheets, docs, slides.

Quiero que la celda B1 muestre un 1 'si' la celda A1 contiene la cadena sites.

FÓRMULA

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

No estoy seguro de qué reemplazar ??????dentro de la fórmula anterior O si esta fórmula es posible. Cualquier idea sobre cómo lograr el resultado deseado es muy apreciada.

Señor b
fuente

Respuestas:

55

Puedes usar REGEXMATCH:

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

Para explicar, REGEXMATCH devuelve verdadero si y solo si el argumento es una subcadena de su cadena.

Aurielle Perlmann
fuente
10
El uso regexmatchsería más simple: if(regexmatch(A1, "sites"), 1, 0).
1
El "si" no es necesario ya que regexmatch ya devuelve un valor booleano, así que solo "REGEXMATCH (A1," sitios ")"
David
2
El if está ahí para que puedan convertir el verdadero a 1 o 0 si es falso
Aurielle Perlmann
7

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

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

Ambos trabajan. El segundo escribe un 0 si hay un error.

Tom Woodward
fuente
2
La primera fórmula nunca devolverá 0 porque SEARCH(search_for, text_to_search, [starting_at])devolverá un error cuando search_forno se encuentre.
Rubén
1

Probablemente esté haciendo esto porque quiere saber el recuento o el número promedio de filas que tienen la palabra "sitios". Suponiendo que tiene 100 filas de entradas en la columna A, puede usar esta función para averiguar cuántas filas tienen la palabra "sitios":

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

Esto es mucho más rápido que crear una columna de 1s y ceros y luego operar en esa nueva columna.

Ryan Shillington
fuente
¿Puede esto funcionar sobre un cuadro en lugar de solo una columna?
Adam Starrh
Sip. en lugar de A1:A100poder hacerlo A1:C100y luego escribir una consulta con las columnas A, B y C.
Ryan Shillington
1

Una solución sin REGEX:

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

las mayúsculas son importantes y la iflógica debe revertirse, dado que la respuesta es truecuando no se encuentra la cadena.

Adrià
fuente
Esto es básicamente lo mismo que esta respuesta , pero presenta una cuestión de mayúsculas y minúsculas. Por cierto, los datos de muestra proporcionados por el OP sheetsno incluyen Sheets.
Rubén
0

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

0 0

usuario0
fuente
0

Si, como sugiere Ryan Shillington, desea saber la cantidad de celdas dentro de un rango que tiene "sitios", puede intentar:

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

El * actúa como una noción comodín, por lo que buscará una coincidencia en cualquier lugar dentro de la celda, no solo una coincidencia exacta para toda la celda.

También he hecho esto con una referencia de celda en lugar de " sitios ", pero luego debe agregar comodines-asteriscos al texto en la celda.

Heidi
fuente
0

Si utiliza la opción de asteriscos y desea una referencia de celda, puede usar la función CONCATENAR para agregar los asteriscos

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

arh
fuente