Làm thế nào để có được vị trí của trận đấu một phần đầu tiên
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.
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)
=MATCH(""&C2&"",$A$2:$A$10,0)
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.
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
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.
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
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.