Giúp code hàm Function Tính dòng cuối theo mã hàng

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

quochuy2022

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
21/11/22
Bài viết
20
Được thích
-1
Chào tất cả GPE !. Mình cần 1 đoạn code hàm Function để tính vị trí dòng nằm cuối cùng nếu trùng tên theo mã hàng ( không phân biệt chữ thường chử HOA )
Ví dụ: mã cần tìm là "A" thì tìm kiếm dòng nào cuối cùng có "A" hoặc "A-*" trong đó * là số thứ tự ( VD: A-1, A-2, A-3 )
Nếu không có "A" hoặc "A-*" thì kết quả = 0 . Xin chân thành cảm ơn GPE

1669534094386.png
 

File đính kèm

  • DONG CUOI.xlsm
    9.9 KB · Đọc: 11
Ví dụ: mã cần tìm là "A" thì tìm kiếm dòng nào cuối cùng có "A" hoặc "A-*" trong đó * là số thứ tự ( VD: A-1, A-2, A-3 )
Nếu không có "A" hoặc "A-*" thì kết quả = 0 . Xin chân thành cảm ơn GPE
Cái này có khi hàm excell cũng làm được mà. Thử tìm hiểu Index xem sao.
 
Upvote 0
PHP:
Sub TimTriCuoiCuaMaHH()
 Dim Rng As Range, sRng As Range
 Dim MyAdd As String

 Set Rng = [B2].CurrentRegion
 Set sRng = Rng.Find([D2].Value, , xlFormulas, xlPart, , xlPrevious)
 If Not sRng Is Nothing Then
    MsgBox sRng.Address, , "Part"
 End If
 Set sRng = Rng.Find([D2].Value, , xlFormulas, xlWhole, , xlPrevious)
 If Not sRng Is Nothing Then
    MsgBox sRng.Address, , "Whole"
 End If
End Sub
 
Upvote 0
Chào tất cả GPE !. Mình cần 1 đoạn code hàm Function để tính vị trí dòng nằm cuối cùng nếu trùng tên theo mã hàng ( không phân biệt chữ thường chử HOA )
Ví dụ: mã cần tìm là "A" thì tìm kiếm dòng nào cuối cùng có "A" hoặc "A-*" trong đó * là số thứ tự ( VD: A-1, A-2, A-3 )
Nếu không có "A" hoặc "A-*" thì kết quả = 0 . Xin chân thành cảm ơn GPE

View attachment 283951
Match trong excel với tham số thứ 3 là 1.
 
Upvote 0
Anh em mình đang đâm đầu vào siêu bài toán rồi :D
Trường hợp của #1 cần làm rõ thêm:
1. Trả về dòng của trang tính, hay dòng của khối dữ liệu ?
2. Dòng của khối dữ liệu có hay không dòng tiêu đề ?
3. Chữ A cần tìm hay chuỗi cần tìm luôn nằm ở phần bắt đầu (từ trái qua) ?
4. Làm Function hay Sub ? Function dạng TenFunction("từ khóa", "Vùng dữ liệu") ?
 
Upvote 0
Anh em mình đang đâm đầu vào siêu bài toán rồi :D
. . . . .
1.
2.
3.
4. Làm Function hay Sub ? Function dạng TenFunction("từ khóa", "Vùng dữ liệu") ?
Gió chiều nào che chiều í, diễn đàn mà:
Cứ đăng đàn mà diễn thôi! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 
Upvote 0
Anh em mình đang đâm đầu vào siêu bài toán rồi :D
Trường hợp của #1 cần làm rõ thêm:
1. Trả về dòng của trang tính, hay dòng của khối dữ liệu ?
2. Dòng của khối dữ liệu có hay không dòng tiêu đề ?
3. Chữ A cần tìm hay chuỗi cần tìm luôn nằm ở phần bắt đầu (từ trái qua) ?
4. Làm Function hay Sub ? Function dạng TenFunction("từ khóa", "Vùng dữ liệu") ?
Mình xin gửi minh họa Hình ảnh, ban nhìn sẽ hiểu ngay
1669542463292.png
Bài đã được tự động gộp:

PHP:
Sub TimTriCuoiCuaMaHH()
 Dim Rng As Range, sRng As Range
 Dim MyAdd As String

 Set Rng = [B2].CurrentRegion
 Set sRng = Rng.Find([D2].Value, , xlFormulas, xlPart, , xlPrevious)
 If Not sRng Is Nothing Then
    MsgBox sRng.Address, , "Part"
 End If
 Set sRng = Rng.Find([D2].Value, , xlFormulas, xlWhole, , xlPrevious)
 If Not sRng Is Nothing Then
    MsgBox sRng.Address, , "Whole"
 End If
End Sub
Cảm ơn bạn. Cái này kết quả ra 2 giá trị ,mình chỉ cần lấy giá trị nằm dưới cùng xuất ra kết quả số dòng trang tính tại ô E2 thì phải làm sao
Ví dụ
1669542752635.png
 
Upvote 0
Match trong excel với tham số thứ 3 là 1.
hàm match trùng nó lấy dòng trên cùng, còn ở đây trùng lấy dòng dưới cũng thì phải làm sao anh
Bài đã được tự động gộp:

Tại thấy bạn này post rất nhiều chủ đề, toàn dữ liệu kỳ bí ...
Câu hỏi đơn giản vậy có gì đâu mà Kỳ bí. Hiện tại vẫn chưa có ai câu trả lời chính xác cả. bạn ra tay giúp mình đi
Bài đã được tự động gộp:

Hihi. Đấy. Trong diễn đàn còn nhiều người nghiện lắm chú ạ
Bạn làm xong chưa giúp mình với. Chắc bí rồi hả
Bài đã được tự động gộp:

Thông báo đã xong. cảm ơn mọi người. cảm ơn sếp @SA_DQ đã cung cấp thuật toán.

Mã:
Sub TimTriCuoiCuaMaHH()
 On Error GoTo Thoat
 Dim Rng As Range, sRng As Range, A As Long, B As Long
 Dim MyAdd As String
 Set Rng = Range("A1:A1000")
 Set sRng = Rng.Find([D2].Value, , xlFormulas, xlPart, , xlPrevious)
 A = sRng.Row
 Set sRng = Rng.Find([D2].Value, , xlFormulas, xlWhole, , xlPrevious)
  B = sRng.Row
  Range("E2").Value = Application.Max(A, B)
Exit Sub
Thoat:
Range("E2").Value = 0
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Không còn gì để ngắn hơn kaka
Mã:
Sub Speed()
[E2] = [ IFERROR(AGGREGATE(14,6,ROW(B1:B1000)/((B1:B1000=D2)+(LEFT(B1:B1000,LEN(D2)+1)=D2&"-")),1),0) ]
End Sub
 
Upvote 0
Tìm hiểu chi khi mà có thể bấm một phát là xong hết?
Gửi bạn test hộ dùm mình chuẩn thuật toán chưa ?
Mã:
Sub Speed()
[E2] = [ IFERROR(AGGREGATE(14,6,ROW(B1:B1000)/((B1:B1000=D2)+(LEFT(B1:B1000,LEN(D2)+1)=D2&"-")),1),0) ]
End Sub
 
Upvote 0
Cái này có khi hàm excell cũng làm được mà. Thử tìm hiểu Index xem sao.
Tìm một hay nhiều điều kiện thì lookup, aggregate.
Nếu viết code thì có thể dựa vào công thức đó làm giải thuật.
Tuy nhiên, ai muốn gửi đáp án lên thì lưu ý 'test' trước trong phòng thí nghiệm 03 tháng đã.
 
Upvote 0
Upvote 0
Gửi bạn test hộ dùm mình chuẩn thuật toán chưa ?
Mã:
Sub Speed()
[E2] = [ IFERROR(AGGREGATE(14,6,ROW(B1:B1000)/((B1:B1000=D2)+(LEFT(B1:B1000,LEN(D2)+1)=D2&"-")),1),0) ]
End Sub
Hơi đâu tét hộ. Biếu cho code tét nè:
sub Snail()
for each c in [b1:b1000]
[d2] = trim(left(replace(c.Value, "-", space(50), 50))
Speed
MsgBox "Tri o dong tim duoc la: " & Cells([e2].Value."B").Value & vbNewLine & "Tu so sanh lay"
next c
end sub

Không còn gì để ngắn hơn kaka
Mã:
Sub Speed()
[E2] = [ IFERROR(AGGREGATE(14,6,ROW(B1:B1000)/((B1:B1000=D2)+(LEFT(B1:B1000,LEN(D2)+1)=D2&"-")),1),0) ]
End Sub
Hơi tự mãn quá. Hàm của tôi ngắn hơn khoảng trên dưới 20 ký tự.
 
Lần chỉnh sửa cuối:
Upvote 0
Mã:
Function TK(FValue As String, Rng As Range) As Long
 Dim sRng As Range
 
 Set sRng = Rng.Find(FValue, , xlFormulas, xlPart, , xlPrevious)
 If Not sRng Is Nothing Then
    TK = sRng.Row
 Else
    TK = "Không Có!"
 End If
End Function
$$$$@ $$$$@ $$$$@ $$$$@
 
Upvote 0
1.Phía sau dấu - không phải là số, code và công thức trên có phân biệt được không? Như A-1 và dưới là A-A?

2. Code dùng hàm AGGREGATE có chạy trên excel 2003 hoặc 2007 không?

...
 
Upvote 0
Web KT
Back
Top Bottom