Formuła Arkuszy Google dla „jeśli zawiera”

40

Próbuję dowiedzieć się, jak zidentyfikować IFlistę elementów w jeden komórka zawiera wartość lub ciąg znaków.

PRZYKŁAD

Komórka A1 zawiera sites, sheets, docs, slides.

Chcę, aby komórka B1 wyświetlała 1 ', jeśli' komórka A1 zawiera ciąg znaków sites.

FORMUŁA

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

Nie jestem pewien, co do zastąpienia ??????w powyższym wzorze, lub jeśli formuła jest możliwe. Wszelkie pomysły na osiągnięcie pożądanego rezultatu są bardzo mile widziane.

Pan B.
źródło

Odpowiedzi:

55

Możesz użyć REGEXMATCH:

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

Aby to wyjaśnić, funkcja REGEXMATCH zwraca wartość true wtedy i tylko wtedy, gdy argument jest podłańcuchem łańcucha.

Aurielle Perlmann
źródło
10
Korzystanie regexmatchbyłoby prostsze: if(regexmatch(A1, "sites"), 1, 0).
1
„If” nie jest potrzebne, ponieważ wyrażenie regularne już zwraca wartość logiczną, więc po prostu „REGEXMATCH (A1,„ strony ”)”
David
2
If
7

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

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

Oba działają. Drugi zapisuje 0, jeśli wystąpi błąd.

Tom Woodward
źródło
2
Pierwsza formuła nigdy nie zwróci 0, ponieważ SEARCH(search_for, text_to_search, [starting_at])zwróci błąd, gdy search_fornie zostanie znaleziony.
Rubén
1

Prawdopodobnie robisz to, ponieważ chcesz poznać liczbę lub średnią liczbę wierszy zawierających słowo „witryny”. Zakładając, że masz 100 wierszy wpisów w kolumnie A, możesz użyć tej funkcji, aby dowiedzieć się, ile wierszy zawiera słowo „witryny”:

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

Jest to o wiele szybsze niż tworzenie kolumny zer i zer, a następnie operowanie na tej nowej kolumnie.

Ryan Shillington
źródło
Czy to może działać na polu zamiast tylko kolumny?
Adam Starrh
Tak. zamiast tego A1:A100mógłbyś to zrobić, A1:C100a następnie napisać zapytanie z kolumnami A, B i C.
Ryan Shillington
1

Rozwiązanie bez REGEX:

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

wielkie litery mają znaczenie i iflogika musi zostać odwrócona, biorąc pod uwagę, że odpowiedź brzmi, truegdy ciąg nie zostanie znaleziony.

Adrià
źródło
Jest to w zasadzie to samo co ta odpowiedź , ale wprowadzono rozróżnianie wielkości liter. Nawiasem mówiąc, przykładowe dane dostarczone przez PO sheetsnie obejmują Sheets.
Rubén
0

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

0

użytkownik0
źródło
0

Jeśli, jak sugeruje Ryan Shillington, chcesz poznać liczbę komórek w zakresie, w którym znajdują się „witryny”, możesz spróbować:

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

* Działa jak symbol wieloznaczny, więc będzie szukał dopasowania w dowolnym miejscu w komórce, a nie tylko dokładnego dopasowania dla całej komórki.

Zrobiłem to również z odwołaniem do komórki zamiast „ witryn ”, ale następnie musisz dodać znaki wieloznaczne do tekstu w komórce.

Heidi
źródło
0

Jeśli wybierzesz opcję gwiazdki i chcesz odwołać się do komórki, możesz użyć funkcji CONCATENATE, aby dodać gwiazdki

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

arh
źródło