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:
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

Nhờ các bạn giỏi Excel làm giùm mình cái này (Khó hơn yêu cầu trước **~**), đây là yêu cầu hoàn chỉnh nhất mình nhờ các bạn giúp.Mình muốn nó có được kết quả như trong file.Nói chung làm cách gì cũng được(he, ko dám đòi hỏi).Mình rất cảm ơn
http://www.mediafire.com/?yyhazoezgaw
 
Nhờ các bạn giỏi Excel làm giùm mình cái này (Khó hơn yêu cầu trước **~**), đây là yêu cầu hoàn chỉnh nhất mình nhờ các bạn giúp.Mình muốn nó có được kết quả như trong file.Nói chung làm cách gì cũng được(he, ko dám đòi hỏi).Mình rất cảm ơn
http://www.mediafire.com/?yyhazoezgaw

Làm thì không khó nhưng yêu cầu của bạn không chặt chẽ, bạn không đưa ra được hết các trường hợp...

Bằng 1 nếu Time-in <7:50 và Time-out>16:00 (Nếu Time-in>7:26 thì màu đỏ)
Bằng 0.5 nếu Time-in <7:50 và Time-out >11:30 Hoặc Time-in<13:00 và Time-out>16:00

Có rất nhiều trường hợp không nằm trong khoảng, nếu không thoả điều kiện trên thì điền số mấy? Ví dụ MaCC có timeIN = timeOUT. Nói thật là cũng chưa hiểu mục đính sử dụng cái bảng của bạn (chấm công hay theo dõi NV...), cứ làm đại lại mất công sửa...
 
Có rất nhiều trường hợp không nằm trong khoảng, nếu không thoả điều kiện trên thì điền số mấy? Ví dụ MaCC có timeIN = timeOUT. Nói thật là cũng chưa hiểu mục đính sử dụng cái bảng của bạn (chấm công hay theo dõi NV...), cứ làm đại lại mất công sửa...
Cái này mình làm để chấm công, do đang chạy thử nghiệm nên mới có tình trạng Timein=Timeout chứ nếu file này đã ok thì chắc chắn sẽ không có tình trạng trên xảy ra.Để chắc ăn thì ở sheet YC1, nếu Timein=Timeout thì sẽ hiện lên màu khác để mình có thể chỉnh sửa trực tiếp dữ liệu trên sheet đó -> YC2 sẽ thỏa đc điều kiện.Cảm ơn các bạn, nếu còn có chổ nào bất ổn thì xin góp ý để mình hoàn thiện nó.Tks
 
Cái này mình làm để chấm công, do đang chạy thử nghiệm nên mới có tình trạng Timein=Timeout chứ nếu file này đã ok thì chắc chắn sẽ không có tình trạng trên xảy ra.Để chắc ăn thì ở sheet YC1, nếu Timein=Timeout thì sẽ hiện lên màu khác để mình có thể chỉnh sửa trực tiếp dữ liệu trên sheet đó -> YC2 sẽ thỏa đc điều kiện.Cảm ơn các bạn, nếu còn có chổ nào bất ổn thì xin góp ý để mình hoàn thiện nó.Tks

Gửi bạn, như mình đã nói ở trên, dùng Privot table để tổng hợp.
 

File đính kèm

Cảm ơn các bạn đã nhiệt tình giúp đỡ, nếu không có các bạn thật mình không biết làm sao nữa.
Vẫn còn một chỗ quan trọng mình muốn nhờ các bạn giúp đó là :Làm thế nào để ở YC2, số 1 nó hiện màu đỏ(hoặc màu gì cũng được) nếu có time-in>7:25.
Hỏi về Privot table :sao cái "Grand Total" mình làm nó toàn ra kết quả =0 nhỉ.Làm thế nào để sum nó lại zậy bạn.
Cảm ơn nhiều nhé.
 
Cảm ơn các bạn đã nhiệt tình giúp đỡ, nếu không có các bạn thật mình không biết làm sao nữa.
Vẫn còn một chỗ quan trọng mình muốn nhờ các bạn giúp đó là :Làm thế nào để ở YC2, số 1 nó hiện màu đỏ(hoặc màu gì cũng được) nếu có time-in>7:25.
Tớ làm thử nhưng nhìn tốc độ chậm không chịu nổi vì sử dụng Sumproduct trong CF. Có thể đánh dấu X hoặc ký tự khác số 1 được không? Sau đó mới dùng CF để tô màu. Mà hình như toàn bộ danh sách có duy nhất một trường hợp....

Hỏi về Privot table :sao cái "Grand Total" mình làm nó toàn ra kết quả =0 nhỉ.Làm thế nào để sum nó lại zậy bạn. Cảm ơn nhiều nhé.
Click phải chuột vào vùng dữ liệu, chọn Field settings\Summarize by bạn chọn SUM
 
Tớ làm thử nhưng nhìn tốc độ chậm không chịu nổi vì sử dụng Sumproduct trong CF. Có thể đánh dấu X hoặc ký tự khác số 1 được không? Sau đó mới dùng CF để tô màu. Mà hình như toàn bộ danh sách có duy nhất một trường hợp....
Mục đích sủa 0.5 và 1 là mình dùng để đếm ngày công, còn màu đỏ(hoặc màu khác) đối với số 1 là mình dùng để tính chuyên cần (Vì cty mình nếu mà đi trể thì sẽ bị trừ chuyên cần)
Click phải chuột vào vùng dữ liệu, chọn Field settings\Summarize by bạn chọn SUM
Mình làm đc rồi, cảm ơn nhiều nhé
 
Mục đích sủa 0.5 và 1 là mình dùng để đếm ngày công, còn màu đỏ(hoặc màu khác) đối với số 1 là mình dùng để tính chuyên cần (Vì cty mình nếu mà đi trể thì sẽ bị trừ chuyên cần)

Mình làm đc rồi, cảm ơn nhiều nhé

Của bạn đây, chắc là hết yêu cầu rồi...phù! @$@!^%
 

File đính kèm

Của bạn đây, chắc là hết yêu cầu rồi...phù! @$@!^%
Wa, tuyệt vời quá.Bạn có thể chỉ cho mình làm sao để nó đỏ, vàng lên được không, vì dữ liệu hằng tháng thay đổi nên mình chỉ cần copy dữ liệu vô sheet "data" thôi (mình sợ rằng khi copy vào sẽ mất định dạng đó).
Cảm ơn bạn rất nhiều.
 
Wa, tuyệt vời quá.Bạn có thể chỉ cho mình làm sao để nó đỏ, vàng lên được không, vì dữ liệu hằng tháng thay đổi nên mình chỉ cần copy dữ liệu vô sheet "data" thôi (mình sợ rằng khi copy vào sẽ mất định dạng đó).
Cảm ơn bạn rất nhiều.

- Bạn yên tâm copy, xào nấu thoải mái bên sheet data (chú ý phải Sort theo cột A-MaCC thì kết quả mới chính xác được)

- Màu vàng dùng Format\Conditional Formating, tìm kiếm thêm trên diễn đàn với từ khoá này để biết thêm. Để kiểm tra, thử thay số liệu tại ô Z1 bên sheet YC2 nhé.

- Xem thêm cách dùng name (vào Insert\name\define name) và nới rộng vùng dữ liệu và công thức tại các cột phụ nếu sheet data có quá 2600 dòng.

- Chúc thành công!
 
Lần chỉnh sửa cuối:
Mình đã làm được rồi.Cảm ơn bạn rất nhiều.Bạn thật nhiệt tình.Cảm ơn@$@!^%
 
Chít rùi, vẫn còn một sơ suất nhỏ cíu ciu rồi -\\/..Bạn xem dùm mình cái YC3 và YC4 nhé.Cảm ơn nhìu.
http://www.mediafire.com/?4nw2yr5w2nh
Cái YC4 thì mình làm đc, còn YC3 thì vẫn đang mò
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom