tìm dữ liệu xuất hiện trong vùng và tính tổng các con số tương ứng với dữ liệu xuất hiện đó.

Liên hệ QC

hoahongden142917

Thành viên hoạt động
Tham gia
28/5/13
Bài viết
180
Được thích
20
1/ Ô B2 và Những ô tô màu vàng như F3, H3,… là mình nhập tay vô
2/ Cột D, F, H, J, L, N, P, R, T, V, X, Z, AB, AD, AF, AH, AJ là mình nhập số bằng tay vô
3/ Mình đang tìm cách cộng số ở các cột F, H, J, L, N, P, R, T, V, X, Z, AB, AD, AF, AH, AJ dựa vào các con số ở A5:A100000. Ví dụ: tìm A5 có xuất hiện ở cột E,G,I,K,M,O,Q,S,U,W,Y,AA,AC,AE,AG thì cộng các số TƯƠNG ỨNG ở cột F, H, J, L, N, P, R, T, V, X, Z, AB, AD, AF, AH, AJ
Mong các anh chị giúp đỡ bằng cách viết 1 đoạn code giúp em với. em đang loay hoay với hàm sumproduct nhưng dữ liệu lớn quá nên chưa kham được.
Em xin chân thành cảm ơn
 

File đính kèm

Lần chỉnh sửa cuối:
1/ Ô B2 và Những ô tô màu vàng như F3, H3,… là mình nhập tay vô
2/ Cột D, F, H, J, L, N, P, R, T, V, X, Z, AB, AD, AF, AH, AJ là mình nhập số bằng tay vô
3/ Mình đang tìm cách cộng số ở các cột F, H, J, L, N, P, R, T, V, X, Z, AB, AD, AF, AH, AJ dựa vào các con số ở A5:A100000. Ví dụ: tìm A5 có xuất hiện ở cột E,G,I,K,M,O,Q,S,U,W,Y,AA,AC,AE,AG thì cộng các số TƯƠNG ỨNG ở cột F, H, J, L, N, P, R, T, V, X, Z, AB, AD, AF, AH, AJ
Mong các anh chị giúp đỡ bằng cách viết 1 đoạn code giúp em với. em đang loay hoay với hàm sumproduct nhưng dữ liệu lớn quá nên chưa kham được.
Em xin chân thành cảm ơn
Làm thử vài dòng, nếu đúng sẽ tính tiếp.
Kết quả điền vào cột AL
Mã:
Option Explicit

Sub XXX()
Dim Nguon
Dim rws, cls
Dim Kq
Dim i, j, k
Nguon = Sheet1.Range("A5:AJ13")
rws = UBound(Nguon)
cls = UBound(Nguon, 2)
ReDim Kq(1 To rws, 1 To 1)

For i = 1 To rws
    k = Nguon(i, 1)
    For j = 5 To cls Step 2
        If InStr(Nguon(i, j), k) Then Kq(i, 1) = Kq(i, 1) + Nguon(i, j + 1)
    Next j
Next i

Sheet1.Range("AL5").Resize(rws, 1) = Kq
End Sub
 
Làm thử vài dòng, nếu đúng sẽ tính tiếp.
Kết quả điền vào cột AL
Mã:
Option Explicit

Sub XXX()
Dim Nguon
Dim rws, cls
Dim Kq
Dim i, j, k
Nguon = Sheet1.Range("A5:AJ13")
rws = UBound(Nguon)
cls = UBound(Nguon, 2)
ReDim Kq(1 To rws, 1 To 1)

For i = 1 To rws
    k = Nguon(i, 1)
    For j = 5 To cls Step 2
        If InStr(Nguon(i, j), k) Then Kq(i, 1) = Kq(i, 1) + Nguon(i, j + 1)
    Next j
Next i

Sheet1.Range("AL5").Resize(rws, 1) = Kq
End Sub

Xin cảm ơn bạn CHAOQUAY.​

Bạn làm ơn giúp mình là, cộng nó lại vô 1 ô luôn ó. Vì mình còn lấy con số đó qua để lập so sánh cho sheet khác. Ví dụ tìm ra con số 1 trong vùng dữ liệu rồi cộng tất cả con số tương ứng. kết quả tổng cho vô 1 ô ó bạn.
Xin chân thành cảm ơn bạn.
 

Xin cảm ơn bạn CHAOQUAY.​

Bạn làm ơn giúp mình là, cộng nó lại vô 1 ô luôn ó. Vì mình còn lấy con số đó qua để lập so sánh cho sheet khác. Ví dụ tìm ra con số 1 trong vùng dữ liệu rồi cộng tất cả con số tương ứng. kết quả tổng cho vô 1 ô ó bạn.
Xin chân thành cảm ơn bạn.
Làm một vài kết quả vào file cho cụ thể rồi tính tiếp nhé bạn
 
Làm một vài kết quả vào file cho cụ thể rồi tính tiếp nhé bạn
Mình đã test code bạn viết rồi. Hay lắm. Giờ giúp mình gom lại như mình gom ở AP3. Vì mỗi lần cho chạy code tổ hợp là sẽ chạy ra kết quả khác nhau. Nếu khi mình chọn F3 là 3. Thì code bạn viết mình đếm được theo hàng tương ứng cho ra kq ở AL5 đến AL32.
Nhưng khi mình nhập số ở ô H3 là 4 thì code tổ hợp nó sẽ cho ra các con số 1 tới AL60. Vì thế mình nhờ code bạn nó tổng vô một ô cuối cùng như ô AP3
Xin chân thành cảm ơn.
 

File đính kèm

Mình đã test code bạn viết rồi. Hay lắm. Giờ giúp mình gom lại như mình gom ở AP3. Vì mỗi lần cho chạy code tổ hợp là sẽ chạy ra kết quả khác nhau. Nếu khi mình chọn F3 là 3. Thì code bạn viết mình đếm được theo hàng tương ứng cho ra kq ở AL5 đến AL32.
Nhưng khi mình nhập số ở ô H3 là 4 thì code tổ hợp nó sẽ cho ra các con số 1 tới AL60. Vì thế mình nhờ code bạn nó tổng vô một ô cuối cùng như ô AP3
Xin chân thành cảm ơn.
Vẫn chưa hiểu hoàn toàn về ý nghĩa số tại F3 & H3 như bạn nói.
Viết tạm hàm theo cách hiểu cũ
Cú pháp =congXXX( nguồn dữ liệu, cột điều kiện)
Số dòng của nguồn dữ liệu & cột điều kiện phải như nhau
Số cột của nguồn dữ liệu phải là chẵn

VD: tại AP3 =congXXX(E5:AJ13,A5:A13)

Mã:
Function congXXX(nguon_, dieukien_)
Dim Nguon, Dieukien
Dim rws, cls
Dim Kq
Dim i, j, k
Nguon = nguon_
Dieukien = dieukien_

rws = UBound(Nguon)
cls = UBound(Nguon, 2)
For i = 1 To rws
    k = Dieukien(i, 1)
    For j = 1 To cls Step 2
        If InStr(Nguon(i, j), k) Then Kq = Kq + Nguon(i, j + 1)
    Next j
Next i
congXXX = Kq
End Function
 
Web KT

Bài viết mới nhất

Back
Top Bottom