0047

Trong bài viết này, chúng tôi sẽ cố gắng để có được vị trí của trận đấu một phần đầu tiên trong một phạm vi.

Công thức chung cho TRẬN ĐẤU một phần được tìm thấy đầu tiên

Đối với chuỗi mã cứng:

=MATCH("str",range,0)

Để tham khảo ô:

=MATCH(""&cell&"",range,0)

Str: là văn bản hoặc chuỗi mà bạn muốn đối sánh một phần trong phạm vi. Nó có thể là bất kỳ thứ gì, một ô hoặc một chuỗi được mã hóa cứng.

Phạm vi: là phạm vi mà bạn sẽ tìm str.

0: Đây là tham số cho kết hợp chính xác. Bạn cũng có thể sử dụng FALSE.

Lưu ý rằng chúng ta đã sử dụng (astrisks) trước và cuối chuỗi str. Đây là toán tử ký tự đại diện để khớp với bất kỳ giá trị nào có bất kỳ chuỗi nào trước và sau nó .. *

Hãy xem một ví dụ.

Ở đây tôi có một bản ghi về Thắng, Thua và Hòa. Chúng tôi muốn giành được vị trí đầu tiên là Thắng, Thua và Hòa.

0048

Vì vậy, nếu tôi viết mã cứng thì công thức tìm vị trí đầu tiên của khớp từng phần trong mỗi ô sẽ là:

=MATCH("won",A2:A10,0)

=MATCH("loss",A2:A10,0)

=MATCH("tie",A2:A10,0)

0050

=MATCH(""&C2&"",$A$2:$A$10,0)

0051

Cách thức hoạt động

Nó chỉ đơn giản là sử dụng chức năng của excel để thực hiện các kết quả phù hợp từng phần. MATCH tìm kiếm bất kỳ chuỗi nào có chứa chuỗi được cung cấp giữa * (dấu hoa thị) và trả về vị trí được tìm thấy đầu tiên.

Tìm vị trí của đối sánh phần đầu tiên trong phạm vi bằng cách sử dụng Hàm FirstPartMatch VBA Nếu bạn sao chép mã vba bên dưới trong mô-đun vba trong excel, bạn có thể sử dụng hàm này để nhận vị trí đầu tiên của đối sánh từng phần. Ví dụ trên, chỉ cần viết công thức này:

=FirstPartMatch(C2,$A$2:$A$10)

Bạn sẽ nhận được vị trí của trận đấu đầu tiên. Như thế này.

0052

Cách thức hoạt động

Đối số đầu tiên là chuỗi bạn muốn tìm kiếm đối sánh từng phần.

Đối số thứ hai là phạm vi mà bạn muốn lấy vị trí của chuỗi.

=FirstPartMatch(str,range)

Để sử dụng công thức này cho đối sánh từng phần, hãy sao chép mã bên dưới trong mô-đun VBA.

Function FirstPartMatch(str As String, rng As Range)

Dim tmp, position As Long

position = 0

tmp = 0

For Each cll In rng

tmp = tmp + 1

If InStr(1, LCase(cll.Value2), LCase(str)) > 0 Then

position = tmp

Exit For

End If

Next cll

If position Then

FirstPartMatch = position

Else

FirstPartMatch = "#NA"

End If

End Function

0055

Khớp một phần phân biệt chữ hoa chữ thường cho vị trí

Hàm trên do người dùng xác định để tìm kết quả khớp một phần đầu tiên sẽ không phân biệt chữ hoa chữ thường. Nếu bạn muốn nó phân biệt chữ hoa chữ thường, hãy xóa hàm Lcase khỏi dòng 7.

0056

Khi đó mã phân biệt chữ hoa chữ thường sẽ là:

Function FirstPartMatchCASE(str As String, rng As Range)

Dim tmp, position As Long

position = 0

tmp = 0

For Each cll In rng

tmp = tmp + 1

If InStr(1, cll.Value2, str) > 0 Then

position = tmp

Exit For

End If

Next cll

If position Then

FirstPartMatchCASE = position

Else

FirstPartMatchCASE = "#NA"

End If

End Function

0057

Bạn có thể thấy rằng “thắng” và “hòa” trong trường hợp này không được tìm thấy. Vì không có chữ thường thắng hoặc hòa.

Vì vậy, các bạn, đây là những cách để tìm vị trí của khớp phần đầu tiên trong excel. Tôi đã nói với bạn rằng bạn có thể tìm vị trí khớp một phần cổ tay bằng cách sử dụng hàm MATCH được xác định trước và sử dụng hàm khớp do người dùng xác định.

Nếu bạn có bất kỳ ý tưởng hoặc câu hỏi nào khác, hãy chia sẻ với chúng tôi ở đây trong phần bình luận bên dưới.

Bài viết liên quan:

Bài viết phổ biến: