Công thức Google Sheets dành cho ngôn ngữ nếu có chứa


40

Tôi đang cố gắng tìm ra cách xác định IFdanh sách các mục trong một ô chứa giá trị hoặc chuỗi.

THÍ DỤ

Ô A1 chứa sites, sheets, docs, slides.

Tôi muốn ô B1 hiển thị ô 1 'nếu' ô A1 chứa chuỗi sites.

CÔNG THỨC

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

Tôi không chắc chắn những gì để thay thế ??????trong công thức trên HOẶC nếu công thức này là có thể. Bất kỳ ý tưởng về cách thực hiện kết quả mong muốn được đánh giá rất cao.

Câu trả lời:


55

Bạn có thể sử dụng REGEXMATCH:

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

Để giải thích, REGEXMATCH trả về true khi và chỉ khi đối số là một chuỗi con của chuỗi của bạn.


10
Sử dụng regexmatchsẽ đơn giản hơn : if(regexmatch(A1, "sites"), 1, 0).

1
"Nếu" không cần thiết vì regexmatch đã trả về boolean, vì vậy chỉ cần "REGEXMATCH (A1," trang web ")"
David

2
Nếu có thì họ có thể chuyển đổi đúng thành 1 hoặc 0 nếu sai
Aurielle Perlmann

7

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

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

Cả hai đều làm việc. Cái thứ hai viết 0 nếu có lỗi.


2
Công thức đầu tiên sẽ không bao giờ trả về 0 vì SEARCH(search_for, text_to_search, [starting_at])sẽ trả về lỗi khi search_forkhông tìm thấy.
Rubén

1

Có lẽ bạn đang làm điều này bởi vì bạn muốn biết số lượng hoặc số trung bình của các hàng có từ "trang web" trong đó. Giả sử bạn có 100 hàng mục trong cột A, bạn có thể sử dụng chức năng này để tìm hiểu có bao nhiêu hàng có từ "trang web" trong đó:

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

Điều này nhanh hơn nhiều so với việc tạo cột 1 và 0 và sau đó hoạt động trên cột mới đó.


Điều này có thể làm việc trên một hộp thay vì chỉ một cột?
Adam Starrh

Vâng thay vì A1:A100bạn có thể thực hiện A1:C100và sau đó viết truy vấn với các cột A, B và C.
Ryan Shillington

1

Một giải pháp không có REGEX:

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

vấn đề viết hoa và iflogic phải được đảo ngược, cho rằng câu trả lời là truekhi không tìm thấy chuỗi.


Điều này về cơ bản giống như câu trả lời này , nhưng giới thiệu trường hợp nhạy cảm. Bằng cách này, dữ liệu mẫu do OP cung cấp sheetskhông bao gồm Sheets.
Rubén


0

Nếu bạn, như Ryan Shillington gợi ý, muốn biết số lượng ô trong một phạm vi có "trang web" trong đó, bạn có thể thử:

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

* Hoạt động như một khái niệm ký tự đại diện, vì vậy nó sẽ tìm kiếm một kết quả khớp ở bất kỳ đâu trong ô, không chỉ là một kết hợp chính xác cho toàn bộ ô.

Tôi cũng đã thực hiện điều này với một tham chiếu ô thay vì " trang web ", nhưng sau đó bạn phải thêm ký tự đại diện vào văn bản trong ô.


0

Nếu bạn đi với tùy chọn dấu hoa thị và muốn tham chiếu ô, bạn có thể sử dụng hàm CONCATENATE để thêm dấu hoa thị

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.