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.

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.


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.


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.


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.


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

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.


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,"*"))

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.