Trích lọc, liệt kê tuần tự và tính tổng dữ liệu

Liên hệ QC

hoangdanh282vn

Nguyễn Cảnh Hoàng Danh
Thành viên danh dự
Tham gia
21/12/07
Bài viết
1,900
Được thích
5,277
Nghề nghiệp
Kinh doanh các mặt hàng văn phòng phẩm
Mình có một câu hỏi về trích lọc dữ liệu, mời các bạn cùng tham gia tìm giải pháp tối ưu.
Nếu là công thức thì Ưu tiên cho không dùng cột phụ.
 

File đính kèm

  • trich loc va liet ke du lieu.xls
    22.5 KB · Đọc: 175
Bài này nếu dùng công thức cũng ko phải là ko làm dc, nhưng:
- Nếu gọi là phương pháp tối ưu nhất chắc chỉ có PivotTable
- Ngoại trừ PivotTable ra thì dùng VBA là dể nhất
- Nếu dùng công thức e rằng file sẽ nặng trình trịch
 
Bài này nếu dùng công thức cũng ko phải là ko làm dc, nhưng:
- Nếu gọi là phương pháp tối ưu nhất chắc chỉ có PivotTable
- Ngoại trừ PivotTable ra thì dùng VBA là dể nhất
- Nếu dùng công thức e rằng file sẽ nặng trình trịch

Đúng vậy.
Vì thế ai có giải pháp nào hay thì up lên để mọi người cùng tham khảo, kể cả những cách thủ công nhất, có nhiều phương án thì làm cho topic càng phong phú và hay hơn.
 
090TRI xin mở hàng, hy vọng sẽ đông khách tham gia, dùng Pivot Table.
 

File đính kèm

  • Dung Pivot Table.xls
    38.5 KB · Đọc: 180
Giãi pháp VBA:
PHP:
Option Explicit
Sub Loc()
  Dim DS As Range, MH As Range, KH As Range
  Dim SL As Range, TempKH As Range, LocKH As Range
  Dim Er As Long, i As Long
  Dim Luu As Variant
  Application.ScreenUpdating = False
  Range("F1:I1000").Clear
  Set DS = [A1].CurrentRegion
  Set KH = DS.Resize(DS.Rows.Count, 1)
  Set SL = KH.Offset(, 2)
  Luu = DS.Value
  DS.Sort Key1:=[A2], Order1:=1, Header:=1
  DS.Copy Destination:=[F1]
  Er = [G60000].End(xlUp).Row
  Set LocKH = Range("F1:F" & Er)
  For i = Er To 2 Step -1
     Set TempKH = LocKH(i).Resize(1, 4)
     If LocKH(i) = LocKH(i - 1) Then
       LocKH(i).Clear
     Else:
       TempKH.Copy
       TempKH.Insert Shift:=xlDown
       LocKH(i + 1).Clear
       With LocKH(i)
          .Offset(, 1) = "Tong SP"
          .Offset(, 2) = Application.WorksheetFunction.SumIf(KH, .Value, SL)
          .Offset(, 3).Clear
          .Resize(1, 4).Font.Bold = True
          .Resize(1, 4).Font.ColorIndex = 5
          .Resize(1, 4).Interior.ColorIndex = 35
        End With
     End If
   Next i
   With Range("G65000").End(xlUp).Offset(1, 0)
     .Value = "TONG CONG"
     .Font.Bold = True
     .Offset(, 1) = Application.WorksheetFunction.Sum(SL)
     .Resize(1, 2).Font.Bold = True
     .Resize(1, 2).Font.ColorIndex = 3
   End With
   DS.Value = Luu
   Application.ScreenUpdating = True
End Sub
 

File đính kèm

  • TonghopDulieu_01.xls
    26.5 KB · Đọc: 140
Lần chỉnh sửa cuối:
Và đây là cách dùng công thức.
Em sẽ viết tiếp cái code cho bài này, chúng ta sẽ đua về tốc độ ở phần này.
 

File đính kèm

  • Trich loc, liet ke va tinh tong du lieu.xls
    36 KB · Đọc: 165
Mình có một câu hỏi về trích lọc dữ liệu, mời các bạn cùng tham gia tìm giải pháp tối ưu.
Nếu là công thức thì Ưu tiên cho không dùng cột phụ.

Sẽ có các cách sau đây :
  1. Công thức : Cũng hơi dài
  2. Subtotal : Rất ngắn gọn, đòi hỏi phải Sort Khách hàng trước
  3. Pivot Table : Rất ngắn gọn
  4. VBA1 : Dùng UDF : Khá mất thời gian, tuy không khó lắm
  5. VBA2 : Dùng Sub : Rất dễ dàng với nhiều người
  6. Không biết còn cách nào nữa không ???
Thân!
 
Bài này nếu dùng công thức cũng ko phải là ko làm dc, nhưng:
- Nếu gọi là phương pháp tối ưu nhất chắc chỉ có PivotTable
- Ngoại trừ PivotTable ra thì dùng VBA là dể nhất
- Nếu dùng công thức e rằng file sẽ nặng trình trịch

Hiiiiiiiiiiiiiiiiiii
đây là cách dùng công thức đây:
rar.gif
boyxin 4-8-08.rar (3.5 KB) cũng không nặng lắm nhỉ
tại topic Trích lọc danh sách duy nhất từ các phần tử duy nhất với yêu cầu
Mình có thêm một bài toán về trích lọc, mời các bạn cùng tham gia
 
Hiiiiiiiiiiiiiiiiiii
đây là cách dùng công thức đây:
rar.gif
boyxin 4-8-08.rar (3.5 KB) cũng không nặng lắm nhỉ
tại topic Trích lọc danh sách duy nhất từ các phần tử duy nhất với yêu cầu

Về cái này thì Bác xem lại câu hỏi mà em đưa ra xem, từ dữ liệu gốc cho tới kết quả trích lọc đều không đúng với đề bài.
Dữ liệu gốc là dữ liệu thô, nhập liệu theo trình tự thời gian.
 
Về cái này thì Bác xem lại câu hỏi mà em đưa ra xem, từ dữ liệu gốc cho tới kết quả trích lọc đều không đúng với đề bài.
Dữ liệu gốc là dữ liệu thô, nhập liệu theo trình tự thời gian.
Hic hic hic
hiểu nhầm ý đồ rồi, hay là tại mình nói chưa rõ nghĩa
Ý mình là dùng công thức cũng không đến nỗi nặng lắm với yêu cầu gần tương tự (yêu cầu chính xác là tại topic kia)
 
6. Không biết còn cách nào nữa không ???

6. Dùng Report của Access:
Link dữ liệu Excel vào 1 file Access, nhập liệu bình thường trong Excel. Access sẽ cập nhật. Tốc độ thì không biết, nhưng khỏi refresh.

Xin lỗi, ngồi buồn buồn ngứa tay nên lạc đề ra ngoài Excel.
 

File đính kèm

  • Thanh My.zip
    22.6 KB · Đọc: 70
Web KT
Back
Top Bottom