Mục lục
Nếu bạn có một danh sách văn bản và muốn tìm kiếm các ô cũng như trả về các giá trị dựa trên danh sách, bạn sẽ cần xây dựng một công thức vì Excel không cung cấp một cách đơn giản để thực hiện việc đó. Trong bài viết này, tôi đã giải quyết vấn đề này và cung cấp năm công thức khác nhau để thực hiện thao tác này để bạn có thể chọn một công thức phù hợp nhất cho trường hợp của mình và trả về giá trị nếu ô chứa văn bản nhất định từ danh sách.
Tải xuống sách bài tập thực hành
Bạn có thể tải xuống sách bài tập mà tôi đã sử dụng trong bài viết này từ nút sau và tự mình thực hành với sách bài tập đó.
Nếu ô chứa văn bản từ List.xlsx
Giới thiệu về các hàm được sử dụng trong bài viết này
Các công thức mà tôi đã sử dụng ở đây sử dụng các hàm sau:
- Hàm COUNTIFS:
Hàm này đếm các ô khớp với nhiều tiêu chí. Cú pháp của Hàm COUNTIFS như sau.
=COUNTIFS (range1, criteria1, [range2], [criteria2],…)
- range1 – Dải ô thứ nhất để đánh giá.
- criteria1 – Tiêu chí sử dụng trên dải ô thứ nhất.
- phạm vi2 [tùy chọn]: Phạm vi thứ 2, hoạt động giống như phạm vi1.
- tiêu chí2 [tùy chọn]: Tiêu chí sử dụng trên phạm vi thứ 2. Hàm này cho phép tối đa 127 cặp phạm vi và tiêu chí .
- Hàm TEXTJOIN:
Hàm này tham gia văn bảncác giá trị có dấu phân cách. Cú pháp của hàm TEXTJOIN như sau.
=TEXTJOIN (dấu phân cách, ignore_empty, text1, [text2],…)
- dấu phân cách: Dấu phân cách giữa các văn bản mà hàm sẽ kết hợp.
- ignore_empty: Đối số này chỉ định xem hàm có bỏ qua phần trống không ô hay không.
- text1: Giá trị văn bản thứ nhất (hoặc phạm vi).
- text2 [tùy chọn]: Giá trị văn bản thứ 2 (hoặc phạm vi) .
- Hàm MATCH:
Hàm này lấy vị trí của một mục trong một mảng. Cú pháp của Hàm MATCH như sau.
=MATCH (giá_trị tra cứu, mảng_tra cứu, [loại_khớp])
- lookup_value: Giá trị phù hợp trong lookup_array .
- lookup_array: Dải ô hoặc tham chiếu mảng.
- match_type [tùy chọn]: 1 = chính xác hoặc nhỏ nhất tiếp theo, 0 = khớp chính xác, -1 = chính xác hoặc lớn nhất tiếp theo. Theo mặc định, match_type=1.
- Hàm INDEX:
Hàm này nhận giá trị trong danh sách hoặc bảng dựa trên vị trí . Cú pháp của hàm INDEX như sau.
=INDEX(array, row_num, [col_num], [area_num])
- mảng: Dải ô hoặc hằng số mảng.
- row_num: Vị trí hàng trong tham chiếu.
- col_num [tùy chọn] : Vị trí cột trong tham chiếu.
- area_num [tùy chọn]: Phạm vitham chiếu nên được sử dụng.
- Hàm IFERROR:
Hàm này bẫy và xử lý lỗi. Cú pháp của hàm IFERROR như sau.
=IFERROR (giá trị, giá trị_nếu_lỗi)
- value: Giá trị, tham chiếu hoặc công thức để kiểm tra lỗi.
- value_if_error: Giá trị trả về nếu tìm thấy lỗi.
- Hàm TÌM KIẾM:
Hàm này lấy vị trí của văn bản trong một chuỗi. Cú pháp của hàm TÌM KIẾM như sau.
=TÌM KIẾM (văn_bản tìm_kiếm, trong_văn_bản, [số_bắt_đầu])
- find_text : Đối số này chỉ định văn bản cần tìm.
- within_text: Đối số này chỉ định nơi tìm văn bản.
- start_num [tùy chọn]: Với điều này, bạn sẽ chỉ định- từ vị trí nào trong chuỗi văn bản, bạn sẽ đếm vị trí của văn bản đã chỉ định. Tùy chọn và mặc định là 1 từ trái sang.
5 Công thức trả về giá trị trong Excel nếu một ô chứa văn bản nhất định từ danh sách
Tôi sẽ cố gắng trình bày một ví dụ thực tế trong tập dữ liệu này. Một số đồ uống được đại diện ở đây. Khoai tây chiên , Đồ uống lạnh và Ngũ cốc là ba loại đồ uống trong bộ dữ liệu này. Trong một cột có tên Tất cả sản phẩm , tên và danh mục đồ uống được liên kết với nhau. Hai trong số các loại này, Chip và LạnhĐồ uống , cũng nằm trong cột Danh sách . Dựa trên cột Danh sách , đầu ra mong muốn sẽ được hiển thị trong cột thứ hai.
1. Kết hợp COUNTIF, IF & OR Hàm trả về giá trị nếu ô chứa văn bản từ danh sách
Đây là công thức hữu ích nhất nếu bạn muốn trả về giá trị của toàn bộ ô sau khi khớp.
Ở đây, tôi đã tìm nạp các giá trị ô của Sản phẩm khớp với tiêu chí cột Danh sách và hiển thị chúng cho Sản phẩm dựa trên cột danh sách đó.
Công thức như sau:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Phân tích công thức:
-
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Đây, Dấu hoa thị ( * ) là ký tự đại diện. Nó đã tìm kiếm chuỗi con “ Chip ” và “Đồ uống lạnh” trong Ô B5 là chuỗi "
Ruffles - Chips
"
.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
Hàm COUNTIF trả về một cho mỗi kết quả khớp chuỗi con. Vì "
Chips
"
được tìm thấy trong Ô B5 nên nó trả về { 1:0 }.
-
=IF(OR({1;0}), B5, "")
Hàm OR trả về giá trị TRUE nếu bất kỳ đối số nào là TRUE . Trong trường hợp này, một (1)= TRUE .
-
=IF(TRUE, "Ruffles - Chips", "")
Là IF giá trị của hàm là TRUE , nó trả về đối số đầu tiên là kết quả mong muốn.
Kết quả Kết quả cuối cùng : Ruffles – Chips
Lưu ý:
Ở đây, tôi đã chỉ raô khớp nhưng bạn có thể hiển thị bất kỳ đầu ra nào bạn muốn bằng cách thay đổi đầu ra của hàm IF bằng đầu ra mong muốn của bạn.
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),TRUE,FALSE)
Đọc thêm: Nếu ô chứa Word thì gán giá trị trong Excel (4 công thức)
2. Sử dụng Kết hợp IF-OR với Hàm TÌM KIẾM để trả về giá trị với nhiều điều kiện
Ở đây, tôi đã tìm nạp các giá trị ô của Sản phẩm khớp với Danh sách tiêu chí cột và hiển thị chúng cho cột Sản phẩm dựa trên danh sách đó.
Công thức như sau:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Phân tích công thức:
-
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Hàm SEARCH đã tìm kiếm các giá trị của cột Danh sách trong Ô B5 . Đối với “ Chips ”, nó trả về 11 là vị trí bắt đầu của chuỗi con. Đối với Đồ uống lạnh , nó trả về lỗi.
-
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")
Hàm ISNUMBER đã chuyển đổi 11 thành giá trị TRUE và lỗi thành giá trị FALSE .
-
=IF(OR(TRUE,FALSE)),B5,"")
Hàm OR trả về giá trị TRUE nếu bất kỳ đối số nào là TRUE . Vì có một đối số TRUE nên nó cũng trả về giá trị TRUE trong trường hợp này.
-
=IF(TRUE, "Ruffles - Chips","")
Vì giá trị của hàm IF là TRUE nên nó trả về đối số đầu tiên là kết quả mong muốn.
Kết quả cuối cùng: Ruffles –Chips
Lưu ý:
- Ở đây, tôi đã hiển thị ô khớp nhưng bạn có thể hiển thị bất kỳ kết quả nào bạn muốn bằng cách thay đổi Hàm IF xuất ra với đầu ra mong muốn của bạn.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
- Lợi ích chính của việc này công thức là đây không phải là công thức mảng nhưng không nên dùng nếu bạn có nhiều ô trong Danh sách vì bạn phải nhập từng ô của Danh sách theo cách thủ công.
- Đối với các trường hợp phân biệt chữ hoa chữ thường, chúng ta có thể sử dụng công thức dưới đây dựa trên hàm TÌM KIẾM thay vì hàm SEARCH .
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
Đọc thêm: Excel Nếu ô chứa văn bản thì trả về giá trị (8 cách dễ dàng)
Bài đọc tương tự:
- Cách tính tổng nếu ô chứa văn bản cụ thể trong Excel (6 cách)
- Sử dụng VLOOKUP nếu ô chứa một từ trong văn bản trong Excel
- Cách tìm văn bản trong phạm vi Excel & trả về tham chiếu ô (3 cách)
3. Sử dụng Công thức TEXTJOIN để trả về giá trị trong một ô khác nếu một ô có văn bản từ danh sách
Công thức này hữu ích khi bạn phải hiển thị chuỗi hoặc các chuỗi nào từ Danh sách phù hợp .
Ở đây, tôi đã tìm nạp các giá trị ô từ cột LIST nơi chúng khớp với Sản phẩm và hiển thị chúng với Giá trị khớp từ Danh sách cột.
Công thức như sau:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"), $E$5:$E$6,""))
Công thứcPhân tích:
-
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"),$E$5:$E$6,""))
Đây, Dấu hoa thị ( * ) là ký tự đại diện. Nó tìm kiếm chuỗi con “ Chips ” và “Cold Drinks” trong Ô B5 là chuỗi “ Ruffles – Chips ”.
-
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))
Hàm COUNTIF trả về một cho mỗi kết quả khớp chuỗi con. Vì “ Chip ” được tìm thấy trong Ô B5 , nó trả về { 1:0 }.
-
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,""))
Hàm IF chỉ trả về giá trị “ Chips ” vì chỉ có giá trị đầu tiên của đối số là một = True .
-
TEXTJOIN(", ",TRUE,{"Chips";""})
Hàm TEXTJOIN không làm gì ở đây vì chỉ có một giá trị từ Danh sách đã khớp. Nếu có nhiều giá trị phù hợp, nó sẽ trả về tất cả các giá trị đó với dấu phẩy (,) giữa chúng dưới dạng dấu phân cách.
Kết quả cuối cùng: Chips
Đọc thêm: Nếu ô chứa văn bản thì hãy thêm văn bản vào ô khác trong Excel
4. Sử dụng Công thức INDEX MATCH để trả về giá trị nếu ô chứa văn bản cụ thể
Đây là công thức thay thế cho công thức TEXTJOIN . Công thức này cũng cho biết chuỗi hoặc các chuỗi từ Danh sách khớp với nhau.
Ở đây, tôi đã tìm nạp các giá trị ô từ cột LIST mà chúng khớp với Sản phẩm và hiển thị chúng với Giá trị phù hợp từ cột Danh sách .
Công thức như sau:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6&"*"), 0)),"")
Phân tích công thức:
-
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5,"*"&$E$5:$E$6&"*"),0)),"")
Ở đây, Dấu hoa thị ( * ) là một ký tự đại diện. Nó đã tìm kiếm chuỗi con “ Chips ” và “ Cold Drinks ” trong Ô B5 là chuỗi “ Ruffles – Chips ”.
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")
Hàm COUNTIF trả về một cho mỗi kết quả khớp chuỗi con. Vì “ Chip ” được tìm thấy trong Ô B5 , nó trả về { 1:0 }.
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),"")
Hàm MATCH trả về một vì chỉ có một giá trị “ Chip ” khớp.
-
IFERROR(INDEX($E$5:$E$6,1),"")
Hàm INDEX trả về “ Chips ” vì nó là giá trị trong mảng List .
-
IFERROR("Chips","")
Ở đây, hàm IFERROR được sử dụng để xử lý lỗi sẽ xảy ra nếu không có kết quả khớp .
Đầu ra cuối cùng: Chips
Lưu ý:
Ở đây, tôi đã hiển thị ô khớp nhưng bạn có thể hiển thị bất kỳ đầu ra nào bạn muốn bằng cách thay đổi đầu ra của hàm IF với đầu ra mong muốn của bạn.
Đọc thêm: Công thức Excel Nếu ô chứa văn bản thì trả về giá trị trong Ô khác
5. Áp dụng Hàm CHÍNH XÁC với IF và TEXTJOIN
Đây là một giải pháp khác cho vấn đề này trong các tình huống khác nhau. Ở đây, tôi đã tìm nạp giá trị ô từ cột Danh sách với một thành viên. Chúng tôi khớp giá trị này với Sản phẩm và hiển thị tất cả các giá trị khớp trong một ô.
Công thức như sausau:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Phân tích công thức :
-
EXACT(C5:C14,$F$5)
Phần này kiểm tra giá trị nào của Phạm vi C5:14 khớp với Ô F5 và trả về TRUE và FALSE .
-
IF(EXACT(C5:C14,$F$5),B5:B14,"")
Phần này trả về tên mà chúng tôi nhận được TRUE .
-
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Cuối cùng, cái này nối tất cả các tên bằng dấu phẩy sau mỗi tên.
Ghi chú nhanh
Tất cả các công thức ở đây (ngoại trừ công thức thứ 2) là công thức mảng. Điều đó có nghĩa là bạn phải nhấn Ctrl+Shift+Enter thay vì chỉ nhấn nút Enter để nhập công thức này. Nhưng nếu bạn là người dùng Office 365 thì bạn có thể áp dụng chúng bằng cách chỉ cần nhấn Enter.
Kết luận
Trong bài viết này, tôi đã thu hẹp các công thức khác nhau cho các trường hợp khác nhau để trả về giá trị nếu một ô chứa văn bản cụ thể từ danh sách. Tôi hy vọng bạn đã có thể tìm ra giải pháp cho vấn đề của mình. Vui lòng để lại nhận xét nếu bạn có bất kỳ đề xuất hoặc câu hỏi nào. Ngoài ra, bạn có thể truy cập blog của chúng tôi để biết thêm các bài viết như vậy.