Cách trả về giá trị trong Excel nếu ô chứa văn bản từ danh sách

  • Chia Sẻ Cái Này
Hugh West

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

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 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 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.

Hugh West là một nhà phân tích và huấn luyện viên Excel giàu kinh nghiệm với hơn 10 năm kinh nghiệm trong ngành. Ông có bằng Cử nhân Tài chính Kế toán và bằng Thạc sĩ Quản trị Kinh doanh. Hugh có niềm đam mê giảng dạy và đã phát triển một phương pháp giảng dạy độc đáo, dễ hiểu và dễ theo dõi. Kiến thức chuyên môn về Excel của ông đã giúp hàng nghìn sinh viên và chuyên gia trên toàn thế giới cải thiện kỹ năng và xuất sắc trong sự nghiệp của họ. Thông qua blog của mình, Hugh chia sẻ kiến ​​thức của mình với mọi người, cung cấp các hướng dẫn Excel miễn phí và đào tạo trực tuyến để giúp các cá nhân và doanh nghiệp phát huy hết tiềm năng của họ.