Xin giúp đỡ :Gộp dữ liệu (1 người xem)

Liên hệ QC

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

Không biết có đúng không.
Cảm ơn bạn nhiều, nhưng vẫn còn cái "date" đó bạn.Mình muốn gộp luôn cả cái "date".Trong file mình gửi chỉ lấy ví dụ là 1/1/2009 nhưng trong thực tế mình làm thì có tất cả những ngày trong tháng luôn.Các bạn giúp mình nhé.Cảm ơn nhiều.
 
Cảm ơn bạn nhiều, nhưng vẫn còn cái "date" đó bạn.Mình muốn gộp luôn cả cái "date".Trong file mình gửi chỉ lấy ví dụ là 1/1/2009 nhưng trong thực tế mình làm thì có tất cả những ngày trong tháng luôn.Các bạn giúp mình nhé.Cảm ơn nhiều.


Nếu vậy thì bạn tham chiếu theo cột Mã được không?
Tại ô có chứa cột date phía dưới dùng Vlookup
=VLOOKUP(I13,$A$2:$B$7,2,0)
Xem có được không?
 

File đính kèm

Lần chỉnh sửa cuối:
Lâu quá không dùng đến công thức, nay làm thử!
Bạn xem có đúng ý không nha! (bài này hơi khó)
Woa, cảm ơn rất rất nhìu.À nhân tiện cho hỏi thêm--=0(như trong file).Mà sao với số lượng khoảng 10.000 dòng nó chạy mệt nghỉ lun àh.Bạn có cách nào cho nó nhanh nhanh tí không.Cảm ơn nhìu.Nếu được thì link với access thì càng tuyệt vời.:-=

http://www.mediafire.com/?2ttzvy2wwzg
Còn đây là file gốc http://www.mediafire.com/?zhjmmmi5n15
 
Lần chỉnh sửa cuối:
Woa, cảm ơn rất rất nhìu.À nhân tiện cho hỏi thêm--=0(như trong file).Mà sao với số lượng khoảng 10.000 dòng nó chạy mệt nghỉ lun àh.Bạn có cách nào cho nó nhanh nhanh tí không.Cảm ơn nhìu.Nếu được thì link với access thì càng tuyệt vời.:-=

http://www.mediafire.com/?2ttzvy2wwzg
Còn đây là file gốc http://www.mediafire.com/?zhjmmmi5n15
Có lẽ nên dùng VBA thì tốt hơn ---> Nếu bạn đồng ý chúng ta sẽ tiếp tục
-----------------
Tuy nhiên xin hỏi lại cho rõ: Trong file của bạn, Mã số 2, ngày 22/11/2009 có 3 giá trị Time ---> Vậy bạn tính sao với trường hợp này?
 
Có lẽ nên dùng VBA thì tốt hơn ---> Nếu bạn đồng ý chúng ta sẽ tiếp tục
-----------------
Ok, miễn sao cho đc kết quả là tốt lắm rùi
Tuy nhiên xin hỏi lại cho rõ: Trong file của bạn, Mã số 2, ngày 22/11/2009 có 3 giá trị Time ---> Vậy bạn tính sao với trường hợp này?
Cái này mình sẽ điều chỉnh lại và giới hạn chỉ có 2 giá trị trong ngày.Cảm ơn nhìu lắm.
 

File đính kèm

Trong khi chờ đợi VBA của bác ndu. mời bạn dùng tạm file của Dosnet nhé.
Hình như chưa đúng DOSNET ơi!
Mã số 2, ngày 10/11/2009 có đến 2 giá trị time cơ mà
Tôi dùng Pivotable để trích, sau đó copy dử liệu trong PivotTable sang nơi khác để lọc thì thấy kết quả sau lọc = 1381 dòng (không tính tiêu đề)
------------
Nói thêm: Dử liệu của tác giả không chính xác, có rất nhiều Item bị trùng đến 3, 4 lần (mà lý ra chỉ có thể là duy nhất hoặc trùng 1 lần nữa mà thôi)
Dùng công thức này để kiểm tra:
PHP:
=SUMPRODUCT(($A$3:$A3=A3)*($B$3:$B3=B3))
 
Lần chỉnh sửa cuối:
Trong khi chờ đợi VBA của bác ndu. mời bạn dùng tạm file của Dosnet nhé.
Cái Macc không chính xác rồi bạn ơi. nó ko phải là số thứ tự tăng dần
Về dữ liệu : có thể trong khi copy mình đã nhầm và có dữ liệu trùng nhau.Về diều này mình sẽ khắc phục (chắc chắn được) là trong 1 ngày, 1 macc chỉ có nhiều nhất là 2 giá trị time thôi.Tks.
 
Lần chỉnh sửa cuối:
Hình như chưa đúng DOSNET ơi!
Mã số 2, ngày 10/11/2009 có đến 2 giá trị time cơ mà
Tôi dùng Pivotable để trích, sau đó copy dử liệu trong PivotTable sang nơi khác để lọc thì thấy kết quả sau lọc = 1381 dòng (không tính tiêu đề)
------------
Nói thêm: Dử liệu của tác giả không chính xác, có rất nhiều Item bị trùng đến 3, 4 lần (mà lý ra chỉ có thể là duy nhất hoặc trùng 1 lần nữa mà thôi)
Dùng công thức này để kiểm tra:
PHP:
=SUMPRODUCT(($A$3:$A3=A3)*($B$3:$B3=B3))

Thanks bác đã phát hiện lỗi, e đã sửa sai!
 

File đính kèm

À còn cái sheet data1 không biết bạn đã xem chưa?
Cái sheet data1 bạn nên tự làm, có số liệu time1time2 rồi, đơn giản chỉ thêm cột cộng trừ thời gian (bằng vài cái hàm if để thay thành 1 hay 0.5). Có thể dùng Privot table để tổng hợp theo ý bạn. Thân!
 
Cái sheet data1 bạn nên tự làm, có số liệu time1time2 rồi, đơn giản chỉ thêm cột cộng trừ thời gian (bằng vài cái hàm if để thay thành 1 hay 0.5). Có thể dùng Privot table để tổng hợp theo ý bạn. Thân!
Thật sự mình không rành về Excel cho lắm, Bạn có thể giải thích cho mình chi tiết các hàm ở Macc, Date on, Time in, Time Out đc ko?Sao mình gỏ y chang như vậy (trong sheet khác) mà nó ko ra kết quả.tks.
Phần MaCC, date thì mình đã rõ, còn phần time in, time out thì ko rõ lắm, bạn có thể chỉ cho mình đc ko.Tks
 
Lần chỉnh sửa cuối:
Thật sự mình không rành về Excel cho lắm, Bạn có thể giải thích cho mình chi tiết các hàm ở Macc, Date on, Time in, Time Out đc ko?Sao mình gỏ y chang như vậy (trong sheet khác) mà nó ko ra kết quả.tks.
Phần MaCC, date thì mình đã rõ, còn phần time in, time out thì ko rõ lắm, bạn có thể chỉ cho mình đc ko.Tks
Bạn thân mến, để giải thích hết các công thức trong bài này ở đây chắc sẽ không có đủ thời gian, đòi hỏi bạn phải hiểu ngọn ngành cách sử dụng công thức, đặc biệt là name động, cách tuỳ biến hàm Sumproduct, không đơn giản là việc copy và paste vì dữ liệu được ràng buộc với nhau thông qua name. Trước hết hãy xem cách dùng name và công thức tại cột phụ và tìm hiểu dần dần...chúc vui!
 
Mình khuyên các bạn hãy quên đi cách áp công thức cho bài này!

Mình dùng phương thức AdvancedFilter Sau đó lập bảng thời gian vô ra của từng ấy người cho 1 ngày mất khoảng 14 giây!
Nếu làm cho 31 ngày sẽ khoảng 30*15 gy => 7 phút 30'';
Sau đó còn chép sang Data1 nữa không ít hơn chừng ấy thòi gian nữa, kể ra mệt thật đó!

Nhưng biết đâu, vì lý do gì đó tác giả không xài thì . . . .

Đành chờ í tác giả có quyết tâm theo đuổi không cái đã!

Đây là macro kê bảng dữ liệu 1 ngày:

PHP:
Sub TrichLoc()
 Dim Clls As Range, Cll As Range
 Dim eRw As Long, eR As Long:             Dim Timer_ As Double
 
 Application.ScreenUpdating = False:      Timer_ = Timer
 Sheets("Data").Select:                      eRw = [A65500].End(xlUp).Row
 For Each Clls In [Z2]   ' Range([z2], [z2].End(xlDown))'
   [e2].Value = Clls.Value
   Range("A1:C" & eRw).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[E1].Resize(2), _
      CopyToRange:=[E4].Resize(, 3), Unique:=False
   eR = [e65500].End(xlUp).Row:              [I2].Resize(eR, 4).ClearContents
   Range("E4:G" & eR).Sort Key1:=Range("E5"), Order1:=1, Key2:=Range("G5") _
      , Order2:=1, Header:=xlGuess, OrderCustom:=1, MatchCase:=False
   For Each Cll In Range("E5:E" & eR)
      With Cll
         If (.Offset(1).Value <> .Value And .Value <> .Offset(-1).Value) Or _
            (.Offset(1).Value = .Value And .Value <> .Offset(-1).Value) Then
         
            [i65500].End(xlUp).Offset(1).Resize(, 3) = .Resize(, 3).Value
            
         ElseIf .Offset(1).Value <> .Value And .Value = .Offset(-1).Value Then
            [i65500].End(xlUp).Offset(, 3).Value = .Offset(, 2).Value
            .Interior.ColorIndex = 38
         Else
         End If
      End With
   Next Cll
 Next Clls
 [g1].Value = Timer - Timer_
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Web KT

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

Back
Top Bottom