bienxanh657
Thành viên mới
- Tham gia
- 24/2/23
- Bài viết
- 49
- Được thích
- 6
Thế lỡ 2 số CPI khác nhau 1 kí tự thì bạn tính thế nàoChào anh/chị GPE
Em nhờ anh/chị giúp đỡ lọc tìm liệu theo file đính kèm. Tại vì mã nhập vào thỉnh thoảng không theo quy tắc chung nên không thể dùng Vlookup hay Index và match được. Em cảm ơn
Dạ số CPI ít khi giống nhau ạ. Thường chỉ có giống nhau nhiều nhất 2-3 chữ số thôi ạ. Chữ cái khác nhau hoàn toàn luôn.Thế lỡ 2 số CPI khác nhau 1 kí tự thì bạn tính thế nào
cái này có vẻ không khả thi. mà có khả thi thì độ sai số là tương đối lớnDạ số CPI ít khi giống nhau ạ. Thường chỉ có giống nhau nhiều nhất 2-3 chữ số thôi ạ. Chữ cái khác nhau hoàn toàn luôn.
Bài này có vẻ giống 1 bài chủ thớt nào đó, đăng bài tìm dùng hàm Match nhưng không tìm được số hàng cho chuỗi ký tự mà không tuân theo quy luật.Thế lỡ 2 số CPI khác nhau 1 kí tự thì bạn tính thế nào
=INDEX($C$3:$C$5;MATCH(4;MMULT(--ISNUMBER(FIND(MID(E3;COLUMN($A$1:$D$1);1);$C$3:$C$5));--ISNUMBER(ROW(1:4)));0))
Công thức tuyệt vời quá anh. Cảm ơn anh nhiều ạTheo mình đoán là CPI phải có đủ 4 ký tự của mã.
Nếu đúng thì thử hàm này trong khi chờ phương án tốt hơn.
Mã:=INDEX($C$3:$C$5;MATCH(4;MMULT(--ISNUMBER(FIND(MID(E3;COLUMN($A$1:$D$1);1);$C$3:$C$5));--ISNUMBER(ROW(1:4)));0))
Cứ cho là đúng ý đó, thì bạn chưa tính tới trường hợp dò 22MN nhưng trong chuỗi CPI chỉ có 1 số 2 rồi. Mình nghĩ trường hợp này thì chuỗi CPI phải có ít nhất 2 số 2 mới hợp lýTheo mình đoán là CPI phải có đủ 4 ký tự của mã.
Nếu đúng thì thử hàm này trong khi chờ phương án tốt hơn.
Mã:=INDEX($C$3:$C$5;MATCH(4;MMULT(--ISNUMBER(FIND(MID(E3;COLUMN($A$1:$D$1);1);$C$3:$C$5));--ISNUMBER(ROW(1:4)));0))
Cứ cho là đúng ý đó, thì bạn chưa tính tới trường hợp dò 22MN nhưng trong chuỗi CPI chỉ có 1 số 2 rồi. Mình nghĩ trường hợp này thì chuỗi CPI phải có ít nhất 2 số 2 mới hợp lý
Bạn thử công thức tại F3Chào anh/chị GPE
Em nhờ anh/chị giúp đỡ lọc tìm liệu theo file đính kèm. Tại vì mã nhập vào thỉnh thoảng không theo quy tắc chung nên không thể dùng Vlookup hay Index và match được. Em cảm ơn
Nhập mã ở cột E để lấy kết quả cột F mà bạn.Bạn thử công thức tại F3
F3=LOOKUP(2,1/(ISNUMBER(SEARCH($C$3:$C$5,F3))),$C$3:$C$5)
Dùng hàm tự tạo .Chào anh/chị GPE
Em nhờ anh/chị giúp đỡ lọc tìm liệu theo file đính kèm. Tại vì mã nhập vào thỉnh thoảng không theo quy tắc chung nên không thể dùng Vlookup hay Index và match được. Em cảm ơn
Function LookupRandom(ByVal Lookup_value As String, Lookup_vector As Variant) As String
Dim rng, N&, i&, j&, strg$, char$
Lookup_value = Replace(Lookup_value, " ", "")
N = Len(Lookup_value)
If N = 0 Then Exit Function
For Each rng In Lookup_vector
strg = rng
For i = 1 To N
char = Mid(Lookup_value, i, 1)
j = InStr(1, strg, char)
If j > 0 Then Mid(strg, j, 1) = " " Else Exit For
Next i
If i = N + 1 Then LookupRandom = rng: Exit Function
Next rng
End Function
Hàm tự tạo hay quá anh. Cảm ơn anh nhiều ạDùng hàm tự tạo .
Mã:Function LookupRandom(ByVal Lookup_value As String, Lookup_vector As Variant) As String Dim rng, N&, i&, j&, strg$, char$ Lookup_value = Replace(Lookup_value, " ", "") N = Len(Lookup_value) If N = 0 Then Exit Function For Each rng In Lookup_vector strg = rng For i = 1 To N char = Mid(Lookup_value, i, 1) j = InStr(1, strg, char) If j > 0 Then Mid(strg, j, 1) = " " Else Exit For Next i If i = N + 1 Then LookupRandom = rng: Exit Function Next rng Set rng = Nothing End Function