Hướng dẫn công thức Excel - "Hàm chứa và VLOOKUP"
Chào, tôi cần giúp đỡ để xây dựng công thức cho dữ liệu sau. Kết quả tôi muốn đạt được được hiển thị ở cột B.
| MỘT | B |
| SỰ MIÊU TẢ | Phong cách |
| Áo len cổ tròn | Tôi muốn JUMPER được điền vào ô này |
| QUẦN DÀI | Tôi muốn PANT được điền vào ô này |
| ÁO KAFTAN CỔ TRÒN | Tôi muốn KAFTAN xuất hiện trong ô này |
| ĐẦM NGẮN CÓ DÂY RÚT | Tôi muốn hiển thị dòng chữ "SHORT DRESS" trong ô này. |
Tôi muốn dữ liệu trong cột B được điền từ một danh sách tôi có trên trang tính 2.
| ĐẦM |
| QUẦN DÀI |
| KAFTAN |
| ĐẦM NGẮN |
| ÁO SƠ MI |
| ÁO LEN |
Tôi hy vọng mình đã giải thích rõ ràng - Cảm ơn sự giúp đỡ của bạn. :)
Trả lời:
Tôi thấy có hai vấn đề:
- Từ "PANT" trong "LONG PANT" không khớp với từ "PANTS" trong danh sách trên Trang tính 2. Nếu bạn thay đổi "LONG PANT" thành "LONG PANTS", từ "PANTS" sẽ được tìm thấy.
- "DRAWSTRING SHORT DRESS" khớp với hai mục trong danh sách: "DRESS" và "SHORT DRESS". Tùy thuộc vào công thức bạn sử dụng, một trong hai mục sẽ được tìm thấy.
Phương án 1: Nhập công thức mảng sau vào ô B2, xác nhận bằng tổ hợp phím Ctrl+Shift+Enter:
=INDEX(Sheet2!$A$1:$A$6,MATCH(1000000,SEARCH(Sheet2!$A$1:$A$6,A2)))
Chỉnh sửa phạm vi $A$1:$A$6 khi cần, sau đó điền xuống đến hết dữ liệu.
Trong ví dụ của bạn, nó sẽ trả về "SHORT DRESS" ở ô B5.
Phương án 2: Nhập công thức mảng sau vào ô B2, xác nhận bằng tổ hợp phím Ctrl+Shift+Enter:
=INDEX(Sheet2!$A$1:$A$6,MATCH(1,MATCH("*"&Sheet2!$A$1:$A$6&"*",A2,0),0))
Chỉnh sửa phạm vi $A$1:$A$6 khi cần, sau đó điền xuống đến hết dữ liệu.
Trong ví dụ của bạn, nó sẽ trả về "DRESS" trong ô B5.
Trả lời:
Vui lòng xem hình ảnh bên dưới:
Nhập công thức sau (công thức thông thường , không phải công thức mảng ) vào ô B2 và sao chép xuống:
=IFERROR(TÌM KIẾM(9,999999999999999E+307,TÌM KIẾM($A$13:$A$18,$A2),$A$13:$A$18),"")
1. Phạm vi cần so khớp được lấy là A13:A18 để dễ minh họa - phạm vi này có thể thay đổi;
2. Nếu ô A14 chứa từ "PANT", thì ô B3 cũng sẽ hiển thị "PANT". Hiện tại, không có từ nào trong ô A3 khớp với phạm vi từ A13 đến A18.
Trân trọng,
Amit Tandon
Trả lời:
Chào Amit,
Cảm ơn bạn đã giúp đỡ về vấn đề này.
Tôi đã thử áp dụng công thức trên nhưng kết quả trả về là 0 - tôi không chắc có phải do tôi đang làm việc trên 2 bảng tính hay không.
Đây là công thức tôi đang sử dụng:
=IFERROR(LOOKUP(9.99999999999999E+307,SEARCH('TÌM KIẾM DỮ LIỆU'!$P$3:$P$300,'TẢI LÊN BẢNG TÍNH CÓ CÔNG THỨC'!E4),'TÌM KIẾM DỮ LIỆU'!$P$3:$P$300),"")
Kết quả như sau:
Cảm ơn bạn một lần nữa vì sự giúp đỡ.
Andrea
Trả lời:
Chào Hans,
Cảm ơn bạn đã giúp đỡ - tôi đã thử cả hai công thức bạn đề xuất và thu được kết quả như sau:
Tùy chọn 1: =INDEX('TÌM KIẾM DỮ LIỆU'!$P$3:$P$300,MATCH(1000000,SEARCH('TÌM KIẾM DỮ LIỆU'!$P$3:$P$300,'TẢI LÊN BẢNG TÍNH CÓ CÔNG THỨC'!E4)))
Phương án thứ 2 cũng cho kết quả N/A.
=INDEX('TÌM KIẾM DỮ LIỆU'!$P$3:$P$300,MATCH(1,MATCH("*"&'TÌM KIẾM DỮ LIỆU'!$P$3:$P$300&"*",'TẢI LÊN BẢNG TÍNH CÓ CÔNG THỨC'!E5,0),0))
Cảm ơn sự giúp đỡ của bạn.
Andrea
Trả lời:
Bạn đã xác nhận công thức bằng tổ hợp phím Ctrl+Shift+Enter chưa? Điều đó rất quan trọng, nếu bạn chỉ nhấn Enter hoặc Tab, công thức sẽ không hoạt động chính xác.
Trả lời:
Chào Andrea,
Lý do bạn nhận được kết quả bằng 0 là vì có các ô trống trong phạm vi tìm kiếm ($P$3:$P$300) trong khi phạm vi tìm kiếm của tôi ($A$13:$A$18) không có ô trống nào.
Trong trường hợp có các ô trống trong phạm vi tìm kiếm, hãy sửa đổi công thức để phù hợp với phạm vi/trang tính của bạn. Vui lòng sử dụng công thức bên dưới dưới dạng công thức mảng (CTRL+SHIFT+ENTER) :
=IFERROR(LOOKUP(9.99999999999999E+307,SEARCH(IF('TÌM KIẾM DỮ LIỆU'!$P$3:$P$300<>"",'TÌM KIẾM DỮ LIỆU'!$P$3:$P$300),'TẢI LÊN BẢNG TÍNH CÓ CÔNG THỨC'!$E4),IF('TÌM KIẾM DỮ LIỆU'!$P$3:$P$300<>"",'TÌM KIẾM DỮ LIỆU'!$P$3:$P$300)),"")
Bạn cũng có thể tải xuống tệp Excel từ liên kết bên dưới, trong đó đã minh họa điều này:
http://globaliconnect.com/excel/Microsoft/DownloadFiles/PartialMatch_ArrayCriteria.xlsx
Trân trọng,
Amit Tandon
www.globaliconnect.com
Comments
Post a Comment