VBA dò tìm và thay thế kết quả

Liên hệ QC

thanhtamnguyen2104

Thành viên mới
Tham gia
13/10/14
Bài viết
35
Được thích
0
dear all,
em có dữ liệu 01 cột là mã sản phẩm. 01 cột còn lại là nguyên vật liệu. nhưng nvl thì có mã bị trùng giờ em muốn gộp mã nvl lại và cộng tổng. các bác có cách viết code nào cho e đỡ phải làm tay mất nhiều thời gian không. e xin cảm ơn
 
dear all,
em có dữ liệu 01 cột là mã sản phẩm. 01 cột còn lại là nguyên vật liệu. nhưng nvl thì có mã bị trùng giờ em muốn gộp mã nvl lại và cộng tổng. các bác có cách viết code nào cho e đỡ phải làm tay mất nhiều thời gian không. e xin cảm ơn
Khả năng là ko cần VBA cũng làm được điều này. Quăng file lên đi bạn ơi
 
dear all,
em có dữ liệu 01 cột là mã sản phẩm. 01 cột còn lại là nguyên vật liệu. nhưng nvl thì có mã bị trùng giờ em muốn gộp mã nvl lại và cộng tổng. các bác có cách viết code nào cho e đỡ phải làm tay mất nhiều thời gian không. e xin cảm ơn
Bạn ngâm cứu File này xem thế nào nhé
 

File đính kèm

em muốn chuyển dữ liệu như trong file đính kèm. e chỉ cần công thức hay code gì có thể làm nhanh xíu. do dữ liệu của e đến tận mấy chục ngàn dòng lận. kiếm bằng tay thì chắc chết
 

File đính kèm

em muốn chuyển dữ liệu như trong file đính kèm. e chỉ cần công thức hay code gì có thể làm nhanh xíu. do dữ liệu của e đến tận mấy chục ngàn dòng lận. kiếm bằng tay thì chắc chết

Mã:
F8=IF(B8=F7,"",B8)
lúc đâu thấy để cái lổ trống tôi hỏng biết làm sao!!!!hihihihi
cột G làm sumif,cột E dùng match, index lấy qua
 
file của e là 01 mã hàng sẽ có nhiều loại nguyên vật liệu, và trong quá trình làm e đã để cho 01 mã hàng nhưng nguyên vật liệu cùng loại lặp lại 2 lần. giờ công việc của e là trong 01 mã hàng hóa nếu nguyên vật liệu cùng loại lặp lại nhìu lầ thì gom số lượng lại 01 dòng và mấy dòng kia xóa bỏ đi.do dữ liệu nhiều e hok biết lọc kiểu gì cho nhanh hết hix hix
 

File đính kèm

file của bạn thì đáp ứng đúng câu hỏi của mình nhưng do bảng dữ liệu của mình có nhiều cột lắm. và các cột khác có công thức
đây là file đầy đủ, các bác giúp em với
Các bạn trên đã trả lời hết các yêu cầu của bạn rồi. Bạn đã làm theo chưa? Làm theo sẽ giải quyết được vấn đề của bạn thôi
Sheet kết quả tôi thấy có 2 dòng Vít các loại (cái) VIT001 là vô lý

 
Các bạn trên đã trả lời hết các yêu cầu của bạn rồi. Bạn đã làm theo chưa? Làm theo sẽ giải quyết được vấn đề của bạn thôi
Sheet kết quả tôi thấy có 2 dòng Vít các loại (cái) VIT001 là vô lý

mình đã làm theo nhưng chạy code báo lỗi. có 02 dòng vít các loại là do thuộc 02 sản phẩm khác nhau ( 01 thuộc sản phẩm a, và 01 thuộc sản phẩm b. trong cùng 01 sản phẩm nếu có mã trùng thì gộp chứ nếu không có mã trùng thì không cần gộp lại
 
mà mình chỉ muốn cộng tổng ở cột E là cột định mức. còn mấy cột còn lại không cần tổng cộng chỉ cần xóa bỏ đi hay xóa dữ liệu còn ô rỗng rùi lọc ra xóa sau cũng dx
 
Lý do có 1 số 0 1 dòng cuối là tôi cố tình để dư ra trong mãng nguồn....... Mục đích để cho bạn ý có nhập thêm vào những dòng sau của bảng dữ liệu thì khi chạy code nó cũng cập nhật ý mà...............kakaka
Hiểu thế là sai vấn đề khi sử dụng Dic rồi. Hãy thử để 5 hay 10 mã hàng trùng nhau ở cột B và C dữ liệu nguồn xem nó dư ra mấy hàng nhé. Hãy tưởng tượng có 1 ngàn dòng trùng nhau thì................ Hí Hí
 
Ah ra thế, nhờ bác mà mình học hỏi thêm được 1 tí về DIC, mặc dù bây giờ mới tìm hiểu DIC (vì code trên là mình sưu tầm, nên gặp bài trên thử áp dụng & chỉnh sửa có được không, ai ngờ cũng tàm tạm.).
Như vậy có nghĩa là nếu có 10 hàng trùng thì nó lại tạo ra 10 dòng số 0 phía cuối (nếu mình chọn vùng dư ra (ví dụ 10000 dòng)). Vậy bắt buột phải chọn vùng sát với dữ liệu hay sao bác (có bao nhiêu thì set vùng = bấy nhiêu.) Hay có thể chọn dư ra thì phải chỉnh Vùng thế nào trong code trên, bác chỉ giáo giúp luôn!

___________________________________________________
P/s: mới test lại, thêm bao nhiêu nó cũng chỉ có 1 dòng cuối có số 0 mà bác ơi!
Thì nó chỉ có dư 1 dòng thôi mà. Nói vậy mới có người chịu đi test lại chứ. Thử sửa lại như vầy cho đẹp.
Mã:
Sheet3.Range("A2").Resize(k-1, UBound(Arr, 2)) = Res
 
Mình thấy code tại #13 là OK rồi, chỉ tham gia thêm 2 dòng đỏ
Mã:
Sub ThaySumifs()
    Dim Dic As Object
    Dim i As Long, j As Long, k As Long
    Dim Tmp As String
    Dim Arr, Res
[COLOR=#ff0000]    Sheet3.Range("A2").Resize(65000, 4).ClearContents  [/COLOR]'Thêm dòng này[COLOR=#ff0000][/COLOR]
[COLOR=#ff0000]    Arr = Range(Sheet1.[b8], Sheet1.[b65000].End(3)).Resize(, 4) [/COLOR]'Sửa lại dòng này[COLOR=#ff0000][/COLOR]
    ReDim Res(1 To UBound(Arr, 1), 1 To UBound(Arr, 2))
    Set Dic = CreateObject("Scripting.Dictionary")
    With Dic
        For i = 1 To UBound(Arr, 1)
            Tmp = Arr(i, 1) & "_" & Arr(i, 2)
            If Not .Exists(Tmp) Then
                k = k + 1
                .Add Tmp, k
                For j = 1 To UBound(Arr, 2)
                    Res(k, j) = Arr(i, j)
                Next
            Else
                Res(.Item(Tmp), 4) = Res(.Item(Tmp), 4) + Arr(i, 4)
            End If
        Next
    End With
    Sheet3.Range("A2").Resize(k, UBound(Arr, 2)) = Res
End Sub
 
hix, vãn không được. khi mình bỏ vô dữ liệu nhiều thì nó lại không chạy được
 
File mình gửi là dữ liệu gốc lun ấy chỉ là mình xóa từ 1000 mã hàng xuống còn 02 mã hàng, và xóa bớt 01 vài nguyên vật liệu.
trong file mình gửi các bác để ý
1./mã sản phẩm là mã bất kỳ ký từ nào
2./ Tên nguyên vật liệu và mã nguyên vật liệu là giống nhau từ trên xuống ( nhưng file mình gửi chưa có vlookup để lấy mã vật tư nên cùng tên là vít các loại nhưng mã lại khác)
3./ kết quả mình mong muốn là : sản phẩm a có vít các loại lập lại 02 lần nên mình sẽ cộng (28+80=108: tức tổng cột e)( trong file mình gửi mình cộng nhầm cột G. cột G sau khi cộng tổng cột e mình dùng công thức sẽ ra nên cũng không cần cộng tổng )--- sang sản phẩm b cũng tương tự như vậy và mã nguyên vật liệu cho mỗi sản phẩm có thể khác nhau và có thể trùng bất cứ mã nào. hoặc không trùng.
mong các bác giúp đỡ cho em
 
Hi vọng lần này đã đúng ý bạn. Click để chạy code
Mình rất cảm ơn bạn. nhưng từ chiều giờ mình thử đi thử lại mấy lần. lkhi với số lượng nhỏ thì k sai lệch còn sl lớn thì sai lẹch rất nhiều. bạn có nick skype hay mail gì hok cho mình xin và chỉ giáo mình với
 
Hi vọng lần này đã đúng ý bạn. Click để chạy code
Hj, bạn có thể viết code nào cho mình tùy biến dx hok bạn, do file của mình vừa xuất thêm 01 cột nữa nên mình cộng tổng bị sai mình không biết bạn có thể chỉ bảo mình sơ qua code để mình có thể dễ sủ dụng khi mún thêm bớt cột không. mình cảm ơn rất nhiều nhiều lun
 
Nhờ các bạn giúp mình lập code tách + tổng khối lượng vật tư theo form dưới với.
Mình test thử mấy code trên mà k có chạy

Thanks,
 

File đính kèm

Web KT

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

Back
Top Bottom