Lọc và tình Tổng các dữ liệu Trùng

Liên hệ QC

chipxinh

Thành viên mới
Tham gia
17/12/07
Bài viết
23
Được thích
4
Xin chào các anh chị của giải pháp Excel.
Hôm nay là sinh nhật của em, cũng là ngày em tham gia CLB GPE này.
Hiên em đang có 1 bài toán lọc dữ liệu khá phức tạp (đối với em), mong anh chị có thế giúp em.
Yêu cầu bài toán như thế này:
Tại Sheet Du lieu lọc các dữ liệu trùng nhau thì lấy 1 dòng sang Sheet Baocao và tính tổng Số Lượng, Thành Tiền của các dữ liệu trùng đó.

Em gửi file kèm theo, mong anh chị hồi âm sớm.
Chân thành cám ơn anh chị và GPE

EM ko biết mình pót bài có đúng nơi ko, nếu sai thì mong các anh chuyển dùm em. Đừng xóa bài của em nha.
 
Lần chỉnh sửa cuối:
Trước hết xin được chào mừng bạn đã tham gia diễn đàn. Chúc bạn sinh nhật vui vẻ và hạnh phúc.
Có một vài thắc mắc trong câu hỏi của bạn: Hiện ví dụ của bạn gửi lên là muốn lọc theo sản phẩm. Nếu cùng 1 sản phẩm có nhiều nhân viên thì sao? Cùng một sản phẩm mà số phiếu không liên tục thì thể hiện thế nào?
 
Hiện ví dụ của bạn gửi lên là muốn lọc theo sản phẩm. Nếu cùng 1 sản phẩm có nhiều nhân viên thì sao? Cùng một sản phẩm mà số phiếu không liên tục thì thể hiện thế nào?
Em ko lọc theo sản phẩm, em muốn lọc tất cả du liệu trên 1 dòng (trừ Số lượng và thành tiền ra). Nếu giống nhau thì lấy sang bên Sheet Baocao.

Em gửi file thêm các trường hợp anh/chị vừa nêu ra.
 

File đính kèm

  • Book2.rar
    2.8 KB · Đọc: 103
Xin chào các anh chị của giải pháp Excel.
Hôm nay là sinh nhật của em, cũng là ngày em tham gia CLB GPE này.
Hiên em đang có 1 bài toán lọc dữ liệu khá phức tạp (đối với em), mong anh chị có thế giúp em.
Yêu cầu bài toán như thế này:
Tại Sheet Du lieu lọc các dữ liệu trùng nhau thì lấy 1 dòng sang Sheet Baocao và tính tổng Số Lượng, Thành Tiền của các dữ liệu trùng đó.

cách giới thiệu hay nhỉ, CHÚC MỪNG bạn đến với GPE

mới xem file new của bạn nhưng cũng như

SA_DQ đã viết:
1* Phiếu PC014 hoàn toàn giống với cụm 1-5 sau bạn không gôm vô luôn vậy?
2* Phiếu PC013-13 có trường [NhanVien] khác nhau, sao bạn lại gôm chung với nhau vậy?
Bài toán này không khó bằng để hiểu được nó!

Bạn xem lại cho nó thống nhất đi nhe, mọi TV sẽ giúp ....
 
Yêu cầu bài toán

Em xin nói rõ lại yêu cầu của bài toán:
Em có 1 Sheet dữ liệu có rất nhiều dữ liệu trùng nhau, Trừ cột Số liên, ThuếThuế #, còn lại thì em muốn lọc tất cả các dòng có dữ liệu trùng nhau thì lấy 1.
Trong các dữ liệu trùng nhau ta có:

Số liên : Thì được ghi từ đầu đến cuối.
vd: Ta có 5 dữ liệu trùng nhau, nhưng có số liên là 01,02,03,04,05 thì ta lọc ra 1 cái và số liên được ghi lại là 01_05.

Thuế và Thuế #: Là tổng của các dữ liệu trùng nhau.
vd: Ta có 5 dữ liệu trùng nhau và có Thuế lần lượt là 1,2,3,4,5 thì ta lọc ra 1 cái và Thuế được ghi lại là 14 (Tương tự cho Thuê # )

Em xin gữi file thực để các anh chị xem.
Chân thành cám ơn!
xxx
 

File đính kèm

  • chip.rar
    3.7 KB · Đọc: 96
Chipxinh ơi nếu các bản ghi có số liệu trùng đúng theo yêu cầu của bạn nhưng số liên ko liền kề nhau thì bên sheet Baocao trình bày kiểu gì?
 
Theo tôi bài này nếu dùng công thức thật sự không phải là dễ ăn. Chỉ riêng việc lọc thành một danh sách rút gọn theo loại (S,F...) đòi hỏi phải rất am hiểu hàm INDIRECT, SMALL và ROW(). Hơn nữa theo yêu cầu của chíp xinh, số phiếu cùng loại phải được liệt kê nữa, vấn đề sẽ phức tạp hơn...
 
Chipxinh ơi nếu các bản ghi có số liệu trùng đúng theo yêu cầu của bạn nhưng số liên ko liền kề nhau thì bên sheet Baocao trình bày kiểu gì?
trong file em gửi cũng có vd này, cụ thể là A3 và A15 của Sheet baocao

Tiêu chí để gộp là [SoPhieuThu] giống nhau, phải không?!
ko chỉ riêng Số Phiêu Thu mà tất cả các cột (trừ số liên, thuế, thuế #) nêu giống nhau thì gộp lại.
Tóm lại mình có 12cột (trừ số liên, thuế, thuế #) thì còn 9 cột. Nếu dữ liệu ở 9 cột này giống nhau thì lấy ra 1 và số liên, thuế, thuế # được tình như sau:
Thuế #, còn lại thì em muốn lọc tất cả các dòng có dữ liệu trùng nhau thì lấy 1.
Trong các dữ liệu trùng nhau ta có:

Số liên : Thì được ghi từ đầu đến cuối.
vd: Ta có 5 dữ liệu trùng nhau, nhưng có số liên là 01,02,03,04,05 thì ta lọc ra 1 cái và số liên được ghi lại là 01_05.

Thuế và Thuế #: Là tổng của các dữ liệu trùng nhau.
vd: Ta có 5 dữ liệu trùng nhau và có Thuế lần lượt là 1,2,3,4,5 thì ta lọc ra 1 cái và Thuế được ghi lại là 14 (Tương tự cho Thuê # )
Dòng nào ko trùng (nghĩa là chỉ có dòng duy nhất) thì cũng được đưa sang Sheet Baocao để theo dỏi.

Cám ơn mọi người đã góp ý.
Thân!
 
Mình hiểu thế này có dúng ko:
Có 12 cột trừ 3 cột cần tính ra thì 9 cột còn lại nếu dữ liệu trùng thì lọc lấy 1 sang Bacao và tình 3 cột còn lại.

Để mình thử lọc, còn tính 3 cột còn lại chắc bạn chờ các anh GPE giúp. (Mình cũng mới làm quen với EXCEL à)
Các anh xin giúp dùm bài này nha, cho em học hỏi với. hihi

Thân!
 
Mình hiểu thế này có dúng ko:
Có 12 cột trừ 3 cột cần tính ra thì 9 cột còn lại nếu dữ liệu trùng thì lọc lấy 1 sang Bacao và tình 3 cột còn lại.

Vâng dúng rồi ạ, nếu ko có 3 cột (Số liên,Thuế, Thuế#) em nghĩ dùng Data -> Filter thì nó sẽ ra liền. Nhưng vấn đề là tính 3 cột mới khó.
Mong các anh chị GPE giúp em bài này.
Chân thành cám ơn tất cả!
Chíp xxx
 
Vâng dúng rồi ạ, nếu ko có 3 cột (Số liên,Thuế, Thuế#) em nghĩ dùng Data -> Filter thì nó sẽ ra liền. Nhưng vấn đề là tính 3 cột mới khó.
Mong các anh chị GPE giúp em bài này.
Chân thành cám ơn tất cả!
Chíp xxx

nói chỉ là 3 cột thì vẫn filter tốt bằng cách dùng cột phụ là hợp của 3 cột này VD- thêm cột phụ H, lọc cho 3 cột B, C, E -> tại ô H3=B3&C3&E3 -> rồi lọc filter cột H,

Nhưng bài của bạn nó khác - chắc phải dùng VBA thôi, hoặc thêm 2 cột phụ -> bạn thử suy nghĩ xem

và tham khảo thử post#7 ở Link sau:
http://www.giaiphapexcel.com/forum/showthread.php?p=47629#post47629
.
 
Em đã xem file theo đường dẩn của anh Tiger gửi, em thấy bài đó cũng hơi giống bài của em về cách lọc dữ liệu trùng.
Nhưng bài của bạn nó khác - chắc phải dùng VBA thôi, hoặc thêm 2 cột phụ ->
Em nghĩ nên dùng VBA vì nó sẽ xử ly nhanh hơn và hay hơn, vì file gốc của em khoảng 3000 dòng.
Mong anh giúp em bài này.

Chân thành cám ơn anh và GPE.

Chip xxx
 
Mệt với Cô/Cậu ChipXinh này thật đấy! Tại bảng 'DuLieu' Chíp ta gộp thành 12 dòng;
Mình mất cả nữa buổi gộp thành như vậy;
Sau đó nhìn lại sheets('BaoCao') thì hỡi ơi: 15 dòng;
Các dòng khác nhau tăng thêm này là do khác dữ liệu trong cột cuối: nhân viên!

Hãy nói rõ lần cuối xem gộp theo bảng nào, hỡi Chip Xĩn?!

Cám ơn anh đã giúp đở, chắc file của em bi sai. Em gửi lại anh file khác.
Chắc chắn 1 điều là Baocao sẽ ít dòng hơn Du lieu.
Gộp bảng Du lieu thành Bảng Baocao.
Dường như anh vẩn chưa rõ bài toán, anh cứ hỏi em sẽ giải thích.
Thân!
 

File đính kèm

  • chip.xls
    34.5 KB · Đọc: 40
Dòng 9 và 10 bên sheet Baocao thấy giống y nhau (chỉ khác số liên) sao lại lọc qua luôn thế nhỉ? Lý ra chỉ lấy 1 em, đúng ko?
Dòng 13 và 14 cũng vậy...
Khó hiểu quá
ANH TUẤN
 
Lần chỉnh sửa cuối:
Dòng 9 và 10 bên sheet Baocao thấy giống y nhau (chỉ khác số liên) sao lại lọc qua luôn thế nhỉ? Lý ra chỉ lấy 1 em, đúng ko?
Dòng 13 và 14 cũng vậy...
Khó hiểu quá
hihi anh Tuan nhin ko kỹ rồi, dòng 9,10 khác tên nhân vien mà anh. (13,14 cũng vậy)
Ý của chipxinh là du lieu > 1 dòng có 9 côt đều giống nhau thì lọc ra va gộp lại.
vd:
Từ dòng 3 dến dòng 7 (Trừ số liên, thuế, thuế#) thì tất cả đều giống nhau., thì lấy ra. Và cột số liên dc ghi lại là 69-73, thuếthuế # được lấy tổng thành 279,4 và 70.

Em thì hiểu ý của Chip nhưng lại ko biết làm, nên ko thể giúp bạn ấy.
Nhờ các anh ra tay giúp dùm.
Thân!!
 
Mất cả buổi luôn!

PHP:
Option Explicit
Dim iJ As Long

Sub TrichRecords()
 Dim lRow As Long, iCol As Integer
 Dim Thue0, Thue9, Rng As Range
 Dim KhHang As String, NhVien As String, HoaDon As String
 
 Sheets("BaoCao").Select:       Range(Cells(18, 1), Cells(99, 12)).ClearContents
 
 SXep
 lRow = Range("A65432").End(xlUp).Row + 1
 iCol = Range("IV1").End(xlToLeft).Column
 For iJ = 2 To lRow
        If Cells(iJ, 3) <> KhHang Or NhVien <> Cells(iJ, 12) Then
            KhHang = Cells(iJ, 3):      NhVien = Cells(iJ, 12)
            If Not Rng Is Nothing Then
                Sheets("BaoCao").Range("J" & Sheets("BaoCAo").Range("J65432").End(xlUp).Row) = Thue0
                Sheets("BaoCao").Range("k" & Sheets("BaoCAo").Range("k65432").End(xlUp).Row) = Thue9
                If HoaDon <> Cells(iJ, 4).Offset(-1) Then
                    Sheets("BaoCao").Range("D" & Sheets("BaoCAo").Range("D65432").End(xlUp).Row) = _
                        Sheets("BaoCao").Range("D" & Sheets("BaoCAo").Range("D65432").End(xlUp).Row) & _
                        "-" & Chr(13) & Cells(iJ, 4).Offset(-1)
                End If
            End If
            
            Set Rng = Range(Cells(iJ, 1), Cells(iJ, iCol))
            Thue0 = Range("J" & iJ):        Thue9 = Range("K" & iJ)
            HoaDon = Range("D" & iJ)
            Rng.Copy Destination:=Sheets("BaoCao").Range("A" & Sheets("BaoCao") _
                .Range("A65432").End(xlUp).Row + 1)
        Else
            Set Rng = Union(Rng, Range(Cells(iJ, 1), Cells(iJ, iCol)))
            Thue0 = Thue0 + Range("J" & iJ):       Thue9 = Thue9 + Range("K" & iJ)
        End If
        
 Next iJ
End Sub
Mã:
[B]Sub SXep()[/B]    Sheets("DaTa").Select
    Columns("A:L").Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
        , Order2:=xlAscending, Key3:=Range("C2"), Order3:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
        xlSortNormal
[B]End Sub[/B]
 

File đính kèm

  • ChipXin.rar
    15.9 KB · Đọc: 121
Lần chỉnh sửa cuối:
Hix... cuối cùng em cũng nhận được đáp án. Chân thành cám ơn anh và mọi người.
Có lẽ do em nêu yêu cầu bài toán ko rõ, nên dẩn đến tình trạng mất thời gian của mọi người. Em xin lổi và sẽ cố gắng hơn.
File của anh SA_DQ đã đúng với yêu cầu của em, nhưng sao Sheet Baocao lại có 2 Bảng vậy anh? Và anh có thể làm thêm 2 nút Button bên Sheet Data là: Tạo Báo cáo và Xóa Baocao.
Để khi em đổ dữ liệu vào Sheet data rồi nhấn nút,\.

Chân thành cám ơn các anh và GPE rất nhiều.

Thân!
Chip xxx
 

Em xem file thấy vẫn chưa được hoàn thiện lắm, anh đã giúp bạn chipxinh thì cho trót. Tụi em còn học hỏi.
Đọc code của anh em vẩn chưa thông. hix
Thân!


 
Lần chỉnh sửa cuối:
Sửa số 18 => 2
2*/ Đã thực hiện bước 1 thì bước 2 chỉ cần 1 nút lệnh mà thôi!

Em đã thử sữa như anh nói rồi sao vẩn ra 2 bảng vậy anh, mong anh sữa giúp và làm 2 button. Em yếu về macro lắm.

Chân thành cám ơn mọi người đã giúp đở và cho ý kiến.
Chip xxx
 
File của anh gửi rất hay, đúng với yêu cầu của bài toán.
Nhưng có điều em muốn anh sữa giúp cột D (số phiếu), em muốn khi xuất sang Bacao thì nó được ghi là: 0169811702074 - 77 thay vì ghi 0169811702074 - 0169811702077.
Vì khi em xuất ra phiếu thì dài quá.

Mong anh giúp dù, chân thành cám ơn anh.

Chíp xxx
 
Web KT
Back
Top Bottom