Bạn dùng công thức nàyAnh Chị chỉ giúp em hàm để trích xuất chuỗi trong ô với ạ. Em có có gửi kèm file: Xin chỉ hàm cần điền vào cột D (màu vàng) để lấy từ cột C ra được kết quả như cột E với ạ. Em xin cảm ơn Anh Chị.
D4=LOOKUP(2,1/FIND($C$16:$C$100,C4)/($C$16:$C$100<>""),$B$16:$B$100) kéo xuống
quá hay luôn bạn ơi, many thanks bạn nhiều!!Bạn dùng công thức này
Mã:D4=LOOKUP(2,1/FIND($C$16:$C$100,C4)/($C$16:$C$100<>""),$B$16:$B$100) kéo xuống
Bạn ơi cho mình hỏi thêm, trường hợp bảng 2 chỉ có cột mã số để tham chiếu thôi (cột tên không có) thì mình làm công thức nào vậy? Rất mong được bạn giúp đỡBạn dùng công thức này
Mã:D4=LOOKUP(2,1/FIND($C$16:$C$100,C4)/($C$16:$C$100<>""),$B$16:$B$100) kéo xuống
Rất cảm ơn bạn đã hỗ trợ với hàm rất hay. Tuy nhiên, mình đã thử làm với Bảng quy ước gồm nhiều mã số (trong sheet2) nhưng khi kéo công thức xuống thì báo lỗi (mình tô màu vàng). Mến xin nhờ bạn xem giúp trong file mình gửi kèm bên dưới. Vì mình không biết sao ra lỗi màu vàng và kết quả lại không đúng mã, và ô mình tô màu xanh dương cũng không biết sao cố số đó dù công thức chưa làm (thấy đang ẩn). Mình cảm ơn bạn trước nhen.Bạn xem thử 2 cách dưới đây, nếu phiên bản 2019 trở lên hoặc 365 thì dùng hàm FILTER, còn không thì sử dụng cách 2
Bạn thử sửa cột B thành cột cần lấy kết quả là được,Bạn ơi cho mình hỏi thêm, trường hợp bảng 2 chỉ có cột mã số để tham chiếu thôi (cột tên không có) thì mình làm công thức nào vậy? Rất mong được bạn giúp đỡ
=LOOKUP(2,1/SEARCH(Sheet2!$A$2:$A$4601,C4),Sheet2!$A$2:$A$4601)
Bạn xem lại vùng dữ liệu nằm ở sheet nào, công thức tôi làm cho bạn là ở sheet1, bạn copy thành 1 sheet khác thì khi sao chép công thức phải để ý vùng dữ liệu.Rất cảm ơn bạn đã hỗ trợ với hàm rất hay. Tuy nhiên, mình đã thử làm với Bảng quy ước gồm nhiều mã số (trong sheet2) nhưng khi kéo công thức xuống thì báo lỗi (mình tô màu vàng). Mến xin nhờ bạn xem giúp trong file mình gửi kèm bên dưới. Vì mình không biết sao ra lỗi màu vàng và kết quả lại không đúng mã, và ô mình tô màu xanh dương cũng không biết sao cố số đó dù công thức chưa làm (thấy đang ẩn). Mình cảm ơn bạn trước nhen.
Dặn thêm bạn chủ thớt chỉ chọn đúng vùng có chứa dữ liệu cần trích lục: A2: A4601, vì nếu chọn thêm ô rỗng tỉ như: A2: A4602, thì kết quả trả về 0.Bạn thử sửa cột B thành cột cần lấy kết quả là được,
Mã:=LOOKUP(2,1/SEARCH(Sheet2!$A$2:$A$4601,C4),Sheet2!$A$2:$A$4601)
Vâng, em quên không thêm điều kiện Sheet2!$A$2:$A$4601<>"" và cho vùng rộng ra chút. Nhưng dữ liệu nhiều thế này chắc file sẽ chạy chậm.Dặn thêm bạn chủ thớt chỉ chọn đúng vùng có chứa dữ liệu cần trích lục: A2: A4601, vì nếu chọn thêm ô rỗng tỉ như: A2: A4602, thì kết quả trả về 0.
Vậy, nếu vẫn muốn lấy thêm cho dù nó là ô rỗng, vd: A2: A5000, thì phải làm sao để trả về kết quả đúng?
Mình cảm ơn bạn nhiều nhenBạn thử sửa cột B thành cột cần lấy kết quả là được,
Mã:=LOOKUP(2,1/SEARCH(Sheet2!$A$2:$A$4601,C4),Sheet2!$A$2:$A$4601)
Cảm ơn bạn đã phản hồi và góp ý rất hay. Mục đích mình muốn là lấy ra mã số trong chuỗi ở cột C, nhưng mã số này phải tương ứng có sẵn đúng mã số trong sheet2 (A2:A4601). Nếu mã số ở cột C không có trong sheet2 thì kết quả là trống. Nhưng mình thử hai công thức của bạn hướng dẫn, khi kéo xuống thì báo lỗi như file mình kèm theo. Mong nhờ bạn hướng dẫn thêm.Xin lỗi, thật sự tôi chưa hiểu cái "nội dung" có ý nghĩa như thế nào, và cái số kết quả mà chủ thớt muốn đưa ra dựa trên nguyên tắc gì.
Tôi lấy ví dụ 1 mã số 10748 ghép vào dòng số 3 thì kết quả lại lấy ra mã số khác.
View attachment 309244
Thật ra cái quy ước của bạn nêu: tìm mã số tương ứng với mã số cho sẵn trong Sheet2!A2:A4601 chỉ mang tính tương đối thôi! Vì có nhiều mã dài ngắn khác nhau nhưng thỏa điều kiện tìm kiếm thông qua hàm Find() (hay Search()).Cảm ơn bạn đã phản hồi và góp ý rất hay. Mục đích mình muốn là lấy ra mã số trong chuỗi ở cột C, nhưng mã số này phải tương ứng có sẵn đúng mã số trong sheet2 (A2:A4601). Nếu mã số ở cột C không có trong sheet2 thì kết quả là trống.
Mình rất cảm ơn bản đã phân tích và nhờ vậy mình hiểu rõ hơn để ứng dụng.Thật ra cái quy ước của bạn nêu: tìm mã số tương ứng với mã số cho sẵn trong Sheet2!A2:A4601 chỉ mang tính tương đối thôi! Vì có nhiều mã dài ngắn khác nhau nhưng thỏa điều kiện tìm kiếm thông qua hàm Find() (hay Search()).
Vd: ô C5 có nội dung: "020097048808111321172025qvnI567589.85955.132114.VO GIA KHANH105240355 DONGFOMSHFKLJSDH", bên Sheet2 tồn tại hai mã "9704" và "105240355", khi dùng Find() thì nó lưu trị giá và báo cho Lookup() để lấy giá trị tương ứng, tuy nhiên mã số "105240355" do xuất hiện sau dưới rất nhiều dòng so với mã "9704", nên Lookup() sẽ chọn nó. Nếu, thứ tự trước sau ngược lại: "105240355" xuất hiện dòng trên, "9704" ở dòng dưới thì kết quả sẽ là "9704", trật lất so với ý đồ của thớt.
Cách dùng Filter() với Isnumber(search()) không thể áp dụng vì sẽ tràn ô (#spill) khi có nhiều mã tìm được cùng lúc, như vd trên đã nêu. Dùng Index( match()) thì chọn mã ở dòng trên, cũng sai ý đồ của thớt.
Tóm lại, để tìm chính xác mã số, thì thớt phải đưa ra đặc điểm nhận diện đặc biệt phân biệt nó là nó, không lẫn với các số khác thì may ra mới có công thức tìm chính xác được.
Nếu không thể, thì phải chấp nhận cái tương đối như cách bài #6 hướng dẫn.
Thân