Lọc dữ liệu trùng và cộng lại diện tích những dữ liệu trùng (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

cheng1511

Thành viên mới
Tham gia
27/11/14
Bài viết
7
Được thích
0
Em có 2 cột, khoảng 5000 hàng. Cột 1 có những giá trị trùng nhau. Cột 2 ghi diện tích của cột 1. Em muốn lọc rồi cộng lại những giá trị trùng đó. Xuất kết quả sang cột khác rồi xóa những cái trùng ở cột 1 2 thì mừng quá &&&%$R . Các bác giúp em với !$@!!
vd:
4 45
5 55
4 44
3 77
2 88
4 33
3 66
 
Dùng pivotetable là nhanh nhất
 
Em có 2 cột, khoảng 5000 hàng. Cột 1 có những giá trị trùng nhau. Cột 2 ghi diện tích của cột 1. Em muốn lọc rồi cộng lại những giá trị trùng đó. Xuất kết quả sang cột khác rồi xóa những cái trùng ở cột 1 2 thì mừng quá &&&%$R . Các bác giúp em với !$@!!
vd:
4 45
5 55
4 44
3 77
2 88
4 33
3 66

Dùng Remove Duplicates để lọc duy nhất, Dùng SUMIF() để tính tổng.
5000 dòng chắc không đến 1 phút.
 
Em có 2 cột, khoảng 5000 hàng. Cột 1 có những giá trị trùng nhau. Cột 2 ghi diện tích của cột 1. Em muốn lọc rồi cộng lại những giá trị trùng đó. Xuất kết quả sang cột khác rồi xóa những cái trùng ở cột 1 2 thì mừng quá &&&%$R . Các bác giúp em với !$@!!
vd:
4 45
5 55
4 44
3 77
2 88
4 33
3 66
+-+-+-+ dùng consolidate chưa đến 1 phút
 
Em có 2 cột, khoảng 5000 hàng. Cột 1 có những giá trị trùng nhau. Cột 2 ghi diện tích của cột 1. Em muốn lọc rồi cộng lại những giá trị trùng đó. Xuất kết quả sang cột khác rồi xóa những cái trùng ở cột 1 2 thì mừng quá &&&%$R . Các bác giúp em với !$@!!
vd:
4 45
5 55
4 44
3 77
2 88
4 33
3 66

Nói thách thêm 1 tí, nếu có File với 30.000 dòng chỉ với 30 giây, chứ như Ba tê và Lê Duy Thương nói thách đến 1 phút e rằng là nhiều quá.
 
Lần chỉnh sửa cuối:
Nói thách thêm 1 tí, nếu có File với 30.000 dòng chỉ với 30 giây, chứ như Ba tê và Lê Duy Thương nói thách đến 1 phút e rằng là nhiều quá.

30 giây là "hơi nói thách" rồi.
Nếu viết code 30.000 dòng chạy chưa kịp chớp mắt là xong.
Hổng biết bao nhiêu giây. Híc! Ẹc....
 
30 giây là "hơi nói thách" rồi.
Nếu viết code 30.000 dòng chạy chưa kịp chớp mắt là xong.
Hổng biết bao nhiêu giây. Híc! Ẹc....

Lâu lắm rồi không có dịp về quê nên không có dịp ghé qua An Giang thăm Ba Tê, nên hôm nay có dịp ghẹo Ba Tê tí xíu cho đỡ buồn, còn Lê Duy Thương thì gặp Coffee hàng ngày.
 
Lê Duy Thương nói đúng à nghen. Các thao tác chọn lệnh, chọn vùng dữ liệu thì gom gom lại cũng cả phút nha.
 
em trình bày chưa rõ, hic. Ý em là nếu trùng thì chỉ cộng những cái trùng thôi. ko fai là cộng tổng. Với cả có những trường hợp trùng 4 5 lần nữa. ví dụ :
2 4
2 4
2 4
3 5
3 5
thì cộng lại 4+ 4+ 4, và 5 + 5 riêng
 
em trình bày chưa rõ, hic. Ý em là nếu trùng thì chỉ cộng những cái trùng thôi. ko fai là cộng tổng. Với cả có những trường hợp trùng 4 5 lần nữa. ví dụ :
2 4
2 4
2 4
3 5
3 5
thì cộng lại 4+ 4+ 4, và 5 + 5 riêng

Bạn đưa file có khoảng 30.000 dòng đi. Nói suông hoài chẳng biết dữ liệu mắt mũi nó ra sao.
 
ý em là có những thửa trùng nhau, thì gộp nó vào làm 1 thôi. cột 2 là diện tích cộng nó lại. cột 1 giống nhau thì xóa đi
 

File đính kèm

ý em là có những thửa trùng nhau, thì gộp nó vào làm 1 thôi. cột 2 là diện tích cộng nó lại. cột 1 giống nhau thì xóa đi
Tạm thời lấy kết quả qua cột khác nhé.
Nếu muốn đè lên cột cũ thì khó kiểm tra kết quả.
Enable Macros, Click vào hình Cốc cốc 1 phát, chưa kịp chớp mắt là xong.
 

File đính kèm

Lần chỉnh sửa cuối:
bác pro quá.hàm ấy phức tạp ko bác dạy em với. với làm cái hình cốc cốc như nào vậy -+*/
 
Lần chỉnh sửa cuối:
em mở đc cái chỗ code rồi. em hiểu rồi. giờ mới biết excel viêt được code như thế. trước em cũng học sơ qua mâý hàm cơ bản rồi. mà sao chỗ reply này cứ bị nhảy về đầu dòng thế nhỉ
 
Lê Duy Thương nói đúng à nghen. Các thao tác chọn lệnh, chọn vùng dữ liệu thì gom gom lại cũng cả phút nha.
bởi vì tôi đã thử rồi 12000 dòng 2 cột hết 57s . thao tác bằng tay. thì nói cho 1 phút cho chắc. code thì chưa thử . code của Bate máy tôi test hết 13s
 
Tạm thời lấy kết quả qua cột khác nhé.
Nếu muốn đè lên cột cũ thì khó kiểm tra kết quả.
Enable Macros, Click vào hình Cốc cốc 1 phát, chưa kịp chớp mắt là xong.
Bài này em viết thì kinh lắm, khỏi kiểm tra có tồn tại hay không. Cứ phang tới. Đúng là ngày càng liều rồi.
PHP:
Sub QuangHai()
Dim Arr(), i As Long
Arr = Range([A4], [B65536].End(xlUp)).Value
With CreateObject("Scripting.Dictionary")
   For i = 1 To UBound(Arr, 1)
      .Item(Arr(i, 1)) = .Item(Arr(i, 1)) + Arr(i, 2)
   Next
   [I4].Resize(.Count) = Application.Transpose(.keys)
   [J4].Resize(.Count) = Application.Transpose(.Items)
End With
End Sub
 
Bài này em viết thì kinh lắm, khỏi kiểm tra có tồn tại hay không. Cứ phang tới. Đúng là ngày càng liều rồi.
PHP:
Sub QuangHai()
Dim Arr(), i As Long
Arr = Range([A4], [B65536].End(xlUp)).Value
With CreateObject("Scripting.Dictionary")
   For i = 1 To UBound(Arr, 1)
      .Item(Arr(i, 1)) = .Item(Arr(i, 1)) + Arr(i, 2)
   Next
   [I4].Resize(.Count) = Application.Transpose(.keys)
   [J4].Resize(.Count) = Application.Transpose(.Items)
End With
End Sub
cái này là hôm ở nhà anh bé anh hải giới thiệu đây chăng ??. thế mới biết offline tốt thật.--=0--=0--=0
 
cái này là hôm ở nhà anh bé anh hải giới thiệu đây chăng ??. thế mới biết offline tốt thật.--=0--=0--=0
Uhm bữa offline có nói tới những cách kỳ cục của Dic ít ai viết. Nếu so về tốc độ thì viết thế này có khả năng nhanh hơn chút nữa
PHP:
Sub QuangHai()
Dim Arr(), i As Long, Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Arr = Range([A4], [B65536].End(xlUp)).Value
For i = 1 To UBound(Arr, 1)
   Dic(Arr(i, 1)) = Dic.Item(Arr(i, 1)) + Arr(i, 2)
Next
[K4].Resize(Dic.Count) = Application.Transpose(Dic.keys)
[L4].Resize(Dic.Count) = Application.Transpose(Dic.Items)
End Sub
Còn nếu ngắn gọn thì chỉ cần thế này, có điều chạy hơi chậm chút.
PHP:
Sub Consolidator()
[I3].Consolidate "R3C1:R65536C2", 9, 1, 1
End Sub
 
Web KT

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

Back
Top Bottom