Mục lục
Hướng dẫn này cung cấp một số ví dụ về công thức "Excel nếu chứa" cho biết cách trả về giá trị nào đó trong một cột khác nếu ô mục tiêu chứa giá trị bắt buộc, cách tìm kiếm bằng khớp một phần và kiểm tra nhiều tiêu chí bằng OR dưới dạng cũng như logic AND.
Một trong những nhiệm vụ phổ biến nhất trong Excel là kiểm tra xem một ô có chứa giá trị quan tâm hay không. Đó có thể là loại giá trị gì? Chỉ bất kỳ văn bản hoặc số nào, văn bản cụ thể hoặc bất kỳ giá trị nào (không phải ô trống).
Có một số biến thể của công thức "Nếu ô chứa" trong Excel, tùy thuộc vào giá trị chính xác mà bạn muốn tìm. Nói chung, bạn sẽ sử dụng hàm IF để thực hiện kiểm tra logic và trả về một giá trị khi điều kiện được đáp ứng (ô chứa) và/hoặc giá trị khác khi điều kiện không được đáp ứng (ô không chứa). Các ví dụ dưới đây đề cập đến các tình huống thường gặp nhất.
Nếu ô chứa bất kỳ giá trị nào, thì
Để bắt đầu, hãy xem cách tìm các ô có chứa bất kỳ giá trị nào: bất kỳ văn bản, số hoặc ngày tháng. Đối với điều này, chúng ta sẽ sử dụng một công thức IF đơn giản để kiểm tra các ô không trống.
IF( cell"", value_to_return, "")For ví dụ: để trả về "Không trống" trong cột B nếu ô của cột A trong cùng một hàng chứa bất kỳ giá trị nào, bạn nhập công thức sau vào ô B2, rồi bấm đúp vào hình vuông nhỏ màu lục ở góc dưới bên phải để sao chép công thức xuống cáccột:
=IF(A2"", "Not blank", "")
Kết quả sẽ giống như sau:
Nếu ô chứa văn bản thì
Nếu bạn chỉ muốn tìm các ô có giá trị văn bản bỏ qua số và ngày, thì hãy sử dụng IF kết hợp với hàm ISTEXT. Đây là công thức chung để trả về một số giá trị trong một ô khác nếu ô đích chứa bất kỳ văn bản nào :
IF(ISTEXT( cell), value_to_return," ")Giả sử bạn muốn chèn từ "có" vào cột B nếu một ô trong cột A chứa văn bản. Để hoàn thành, hãy nhập công thức sau vào B2:
=IF(ISTEXT(A2), "Yes", "")
Nếu ô chứa số, thì
Làm tương tự , bạn có thể xác định các ô có giá trị số (số và ngày). Đối với điều này, hãy sử dụng hàm IF cùng với ISNUMBER:
IF(ISNUMBER( cell), value_to_return, "")Công thức sau trả về "có" trong cột B nếu ô tương ứng trong cột A chứa bất kỳ số nào:
=IF(ISNUMBER(A2), "Yes", "")
Nếu ô chứa văn bản cụ thể
Tìm ô chứa văn bản nhất định (hoặc số hoặc ngày tháng) thật dễ dàng. Bạn viết một công thức IF thông thường để kiểm tra xem ô đích có chứa văn bản mong muốn hay không và nhập văn bản cần trả về trong đối số value_if_true .
IF( cell=" text", value_to_return, "")Ví dụ: để tìm hiểu xem ô A2 có chứa "apples" hay không, hãy sử dụng công thức sau:
=IF(A2="apples", "Yes", "")
Nếu ô không chứa cụ thểvăn bản
Nếu bạn đang tìm kiếm kết quả ngược lại, tức là trả lại một số giá trị cho cột khác nếu ô mục tiêu không chứa văn bản đã chỉ định ("quả táo"), thì hãy thực hiện một trong các thao tác sau.
Cung cấp một chuỗi trống ("") trong đối số value_if_true và văn bản cần trả về trong đối số value_if_false :
=IF(A2="apples", "", "Not apples")
Hoặc , đặt toán tử "không bằng" vào logic_test và văn bản cần trả về trong value_if_true:
=IF(A2"apples", "Not apples", "")
Dù bằng cách nào thì công thức cũng sẽ cho kết quả kết quả này:
Nếu ô chứa văn bản: công thức phân biệt chữ hoa chữ thường
Để buộc công thức của bạn phân biệt giữa các ký tự chữ hoa và chữ thường, hãy sử dụng hàm EXACT kiểm tra xem hai chuỗi văn bản có chính xác bằng nhau hay không, kể cả trường hợp chữ cái:
=IF(EXACT(A2,"APPLES"), "Yes", "")
Bạn cũng có thể nhập chuỗi văn bản mô hình vào một số ô (chẳng hạn như trong C1), sửa tham chiếu ô bằng ký hiệu $ ($C$1) và so sánh ô mục tiêu với ô đó:
=IF(EXACT(A2,$C$1), "Yes", "")
Nếu ô chứa chuỗi văn bản cụ thể (khớp một phần)
Chúng ta đã hoàn thành các nhiệm vụ tầm thường và chuyển sang những nhiệm vụ khó khăn và thú vị hơn :) Trong ví dụ này, cần có ba hàm khác nhau để tìm hiểu xem một ký tự hoặc chuỗi con đã cho có phải là một phần của ô hay không nội dung:
IF(ISNUMBER(SEARCH(" text", cell)), value_to_return,"")Làm việc từ trong ra ngoài , đây là chức năng của công thức:
- Công thứcHàm TÌM KIẾM tìm kiếm một chuỗi văn bản và nếu chuỗi được tìm thấy, sẽ trả về vị trí của ký tự đầu tiên, lỗi #VALUE! ngược lại.
- Hàm ISNUMBER kiểm tra xem TÌM KIẾM thành công hay thất bại. Nếu TÌM KIẾM trả về bất kỳ số nào, thì ISNUMBER trả về TRUE. Nếu TÌM KIẾM dẫn đến lỗi, ISNUMBER trả về FALSE.
- Cuối cùng, hàm IF trả về giá trị đã chỉ định cho các ô có TRUE trong kiểm tra logic, ngược lại là một chuỗi trống ("") .
Và bây giờ, hãy xem cách thức hoạt động của công thức chung này trong các trang tính thực tế.
Nếu ô chứa văn bản nhất định, hãy đặt một giá trị vào ô khác
Giả sử bạn có một danh sách đơn hàng trong cột A và bạn muốn tìm đơn hàng có số nhận dạng cụ thể, hãy nói "A-". Bạn có thể hoàn thành tác vụ bằng công thức sau:
=IF(ISNUMBER(SEARCH("A-",A2)),"Valid","")
Thay vì mã hóa cố định chuỗi trong công thức, bạn có thể nhập chuỗi đó vào một ô riêng biệt (E1), tham chiếu đến ô đó trong công thức của bạn :
=IF(ISNUMBER(SEARCH($E$1,A2)),"Valid","")
Để công thức hoạt động chính xác, hãy nhớ khóa địa chỉ của ô chứa chuỗi có ký hiệu $ (tham chiếu ô tuyệt đối).
Nếu ô chứa văn bản cụ thể, hãy sao chép nó sang một cột khác
Nếu bạn muốn sao chép nội dung của các ô hợp lệ sang một nơi khác, chỉ cần cung cấp địa chỉ của ô được đánh giá (A2) trong đối số value_if_true :
=IF(ISNUMBER(SEARCH($E$1,A2)),A2,"")
Ảnh chụp màn hình bên dưới hiển thị kết quả:
Nếuô chứa văn bản cụ thể: công thức phân biệt chữ hoa chữ thường
Trong cả hai ví dụ trên, các công thức không phân biệt chữ hoa chữ thường. Trong các trường hợp khi bạn làm việc với dữ liệu phân biệt chữ hoa chữ thường, hãy sử dụng hàm TÌM thay vì TÌM KIẾM để phân biệt chữ hoa chữ thường.
Ví dụ: công thức sau sẽ chỉ xác định các đơn đặt hàng có chữ hoa "A-" bỏ qua chữ thường " a-".
=IF(ISNUMBER(FIND("A-",A2)),"Valid","")
Nếu ô chứa một trong nhiều chuỗi văn bản (logic OR)
Để xác định các ô chứa ít nhất một trong nhiều thứ bạn đang tìm kiếm, hãy sử dụng một trong các công thức sau.
Công thức TÌM KIẾM NẾU HOẶC LÀ SỐ
Cách tiếp cận rõ ràng nhất là kiểm tra từng chuỗi con riêng lẻ và sử dụng hàm OR trả về TRUE trong kiểm tra logic của công thức IF nếu tìm thấy ít nhất một chuỗi con:
IF(OR(ISNUMBER(SEARCH(" string1", cell)), ISNUMBER (SEARCH(" string2", cell))), value_to_return, "")Giả sử bạn có danh sách SKU trong cột A và bạn muốn tìm những thứ bao gồm "váy" hoặc "váy". Bạn có thể thực hiện bằng cách sử dụng công thức sau:
=IF(OR(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("skirt",A2))),"Valid ","")
Công thức hoạt động khá hiệu quả đối với một vài mục, nhưng chắc chắn đó không phải là cách để đi nếu bạn muốn kiểm tra nhiều thứ. Trong trường hợp này, một cách tiếp cận tốt hơn sẽ là sử dụng hàm TÓM TẮT như được hiển thị trong ví dụ tiếp theo.
Công thức TÌM KIẾM SỐ LÀ TỔNG HỢP
Nếu bạn làxử lý nhiều chuỗi văn bản, việc tìm kiếm từng chuỗi riêng lẻ sẽ khiến công thức của bạn quá dài và khó đọc. Một giải pháp hay hơn sẽ là nhúng kết hợp ISNUMBER SEARCH vào hàm TÓM TẮT và xem liệu kết quả có lớn hơn 0 hay không:
SUMPRODUCT(--ISNUMBER(SEARCH( strings, cell)))>0Ví dụ: để tìm hiểu xem ô A2 có chứa bất kỳ từ nào được nhập vào ô D2:D4 hay không, hãy sử dụng công thức sau:
=SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0
Hoặc, bạn có thể tạo một dải ô đã đặt tên chứa các chuỗi để tìm kiếm hoặc cung cấp các từ trực tiếp trong công thức:
=SUMPRODUCT(--ISNUMBER(SEARCH({"dress","skirt","jeans"},A2)))>0
Dù bằng cách nào, kết quả sẽ tương tự như sau:
Để làm cho đầu ra thân thiện hơn với người dùng, bạn có thể lồng công thức trên vào hàm IF và trả về văn bản của riêng bạn thay vì các giá trị TRUE/FALSE:
=IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Valid", "")
Cách thức hoạt động của công thức này
Về cốt lõi, bạn sử dụng ISNUMBER cùng với TÌM KIẾM như đã giải thích trong ví dụ trước. Trong trường hợp này, kết quả tìm kiếm được biểu diễn dưới dạng một mảng như {TRUE;FALSE;FALSE}. Nếu một ô chứa ít nhất một trong các chuỗi con đã chỉ định, thì sẽ có TRUE trong mảng. Toán tử một ngôi kép (--) bắt buộc các giá trị TRUE / FALSE lần lượt là 1 và 0 và cung cấp một mảng như {1;0;0}. Cuối cùng, hàm TÓM TẮT cộng các số và chúng tôi chọn ra các ô có kết quả lớn hơn 0.
Nếuô chứa một số chuỗi (logic AND)
Trong trường hợp bạn muốn tìm các ô chứa tất cả các chuỗi văn bản đã chỉ định, hãy sử dụng tổ hợp TÌM KIẾM SỐ ISNUMBER đã quen thuộc cùng với IF AND:
IF(AND(ISNUMBER (SEARCH(" string1", cell)), ISNUMBER(SEARCH(" string2", cell))), value_to_return,"")Ví dụ: bạn có thể tìm SKU chứa cả "dress" và "blue" với công thức sau:
=IF(AND(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("blue",A2))),"Valid ","")
Hoặc, bạn có thể nhập các chuỗi trong các ô riêng biệt và tham chiếu các ô đó trong công thức của bạn:
=IF(AND(ISNUMBER(SEARCH($D$2,A2)),ISNUMBER(SEARCH($E$2,A2))),"Valid ","")
Là một giải pháp thay thế, bạn có thể đếm số lần xuất hiện của từng chuỗi và kiểm tra nếu mỗi số đếm lớn hơn 0:
=IF(AND(COUNTIF(A2,"*dress*")>0,COUNTIF(A2,"*blue*")>0),"Valid","")
Kết quả sẽ chính xác như minh họa trong ảnh chụp màn hình ở trên.
Cách trả về các kết quả khác nhau dựa trên giá trị ô
Trong trường hợp bạn muốn so sánh từng ô trong cột mục tiêu với một danh sách các mục khác và trả về một giá trị khác cho mỗi kết quả khớp, hãy sử dụng một trong các phương pháp sau.
Lồng nhau IFs
Logic của công thức IF lồng nhau đơn giản như sau: bạn sử dụng một hàm IF riêng biệt để kiểm tra từng điều kiện và trả về các giá trị khác nhau tùy thuộc vào kết quả của những kiểm tra đó.
IF( cell=" lookup_text1", " return_ text1", IF( cell=" lookup_text2", " return_ text2", IF( cell=" lookup_text3", " return_ text3", "")))Giả sử bạn có một danh sách các mục trong cột A và bạn muốn viết tắt của chúng trong cột B. Để thực hiện việc này, hãy sử dụng công thức sau:
=IF(A2="apple", "Ap", IF(A2="avocado", "Av", IF(A2="banana", "B", IF(A2="lemon", "L", ""))))
Để biết chi tiết đầy đủ về cú pháp và logic của IF lồng nhau, vui lòng xem IF lồng nhau trong Excel - nhiều điều kiện trong một công thức.
Công thức tra cứu
Nếu bạn đang tìm kiếm thêm công thức nhỏ gọn và dễ hiểu hơn, hãy sử dụng hàm LOOKUP với các giá trị tra cứu và trả về được cung cấp dưới dạng hằng số mảng dọc:
LOOKUP( cell, {" lookup_text1";" lookup_text2";" lookup_text3";…}, {" return_ text1";" return_ text2";" return_ text3";…})Để có kết quả chính xác, hãy đảm bảo liệt kê các giá trị tra cứu theo thứ tự bảng chữ cái , từ A đến Z.
=LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})
So với các IF lồng nhau, công thức Tra cứu có một lợi thế nữa - nó hiểu ký tự đại diện và do đó có thể xác định các kết quả khớp một phần.
Ví dụ: nếu cột A chứa một vài loại của chuối, bạn có thể tra cứu "*banana*" và có cùng một từ viết tắt ("B") được trả về cho tất cả các ô như vậy:
=LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})
Để biết thêm thông tin, vui lòng xem Công thức tra cứu như một giải pháp thay thế cho các IF lồng nhau.
Công thức Vlookup
Khi làm việc với một tập dữ liệu biến đổi, có thể thuận tiện hơn nếu bạn nhập riêng một danh sách các kết quả phù hợp các ô và truy xuất chúng bằng cách sử dụng công thức Vlookup,ví dụ:
=VLOOKUP(A2, $D$2:$E$5, 2,FALSE )
Để biết thêm thông tin, vui lòng xem hướng dẫn Excel VLOOKUP dành cho người mới bắt đầu.
Đây là cách bạn kiểm tra xem một ô có chứa bất kỳ giá trị hoặc văn bản cụ thể nào trong Excel. Tuần tới, chúng ta sẽ tiếp tục xem xét ô If của Excel có chứa công thức và tìm hiểu cách đếm hoặc tính tổng các ô có liên quan, sao chép hoặc xóa toàn bộ hàng chứa các ô đó, v.v. Hãy chú ý theo dõi!
Sổ bài tập thực hành
Excel If Cell Chứa - ví dụ về công thức (tệp .xlsx)