Lọc 5 mặt hàng: Gạo, Cao Su, Tiêu, Hạt Điều, Cà Phê cho từng nước (1 người xem)

Liên hệ QC

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

nguyenhongphong

Thành viên hoạt động
Tham gia
12/3/08
Bài viết
126
Được thích
13
Em có file download như file đính kèm (dữ liệu hơi bị lộn xộn vì down từ trên mạng xuống).

Em muốn lọc 5 mặt hàng: Gạo, Cao Su, Tiêu, Hạt Điều, Cà Phê cho từng nước.

Em không biết phải rút dữ liệu ntn cho đỡ mất thời gian và cách tìm sản lượng 5 mặt hàng này cho từng nước.

Nhờ các thầy hướng dẫn giúp em.

Em cảm ơn
 

File đính kèm

Em có file download như file đính kèm (dữ liệu hơi bị lộn xộn vì down từ trên mạng xuống).

Em muốn lọc 5 mặt hàng: Gạo, Cao Su, Tiêu, Hạt Điều, Cà Phê cho từng nước.

Em không biết phải rút dữ liệu ntn cho đỡ mất thời gian và cách tìm sản lượng 5 mặt hàng này cho từng nước.

Nhờ các thầy hướng dẫn giúp em.

Em cảm ơn
Bài này khó mà làm vì Nước và Mặt hàng chung 1 cột.
VBA cũng hơi oải vì cũng phải nhập thủ công tên tất cả các nước ra 1 cột khác mới tính được.
 
Bài này khó mà làm vì Nước và Mặt hàng chung 1 cột.
VBA cũng hơi oải vì cũng phải nhập thủ công tên tất cả các nước ra 1 cột khác mới tính được.

Dùng cột phụ để rút tên nước ra, sau đó mình "xử" thôi.
 
Mong các thầy hướng dẫn, em thấy cái data này dài nhưng chưa biết cách nào rút ngắn lại.

Và tìm theo y/c của Sếp
 
Bạn phải nói rõ chứ tôi thấy mỗi mặt hàng của mỗi nước đã có rồi. Ngoài ra bạn nên sử lý sơ dữ liệu cho đẹp khi đưa lên chứ tôi nhìn vào thấy rối tung
 
Tôi lọc dữ liệu thô của bạn trong Sheet 2 bằng Pivot table. Bạn xem file đính kèm nhé.
 

File đính kèm

Bài này khó mà làm vì Nước và Mặt hàng chung 1 cột.
VBA cũng hơi oải vì cũng phải nhập thủ công tên tất cả các nước ra 1 cột khác mới tính được.
Dùng cột phụ để rút tên nước ra, sau đó mình "xử" thôi.

Cũng ráng chơi 1 phát bằng VBA, bắt con Jerry tha từng món về ổ vậy.
Dữ liệu mà khác "chuẩn này" chắc "tèo"
 

File đính kèm

Lần chỉnh sửa cuối:
Em có file download như file đính kèm (dữ liệu hơi bị lộn xộn vì down từ trên mạng xuống).

Em muốn lọc 5 mặt hàng: Gạo, Cao Su, Tiêu, Hạt Điều, Cà Phê cho từng nước.

Em không biết phải rút dữ liệu ntn cho đỡ mất thời gian và cách tìm sản lượng 5 mặt hàng này cho từng nước.

Nhờ các thầy hướng dẫn giúp em.

Em cảm ơn

Code vầy thử xem:
Mã:
Sub Main()
  Dim Dic As Object
  Dim aSrc, aDes
  Dim tmp1 As String, tmp2 As String, lQty As Long, tmp3 As String
  Dim str1 As String, str2 As String, str3 As String, str4 As String, str5 As String
  Dim lR As Long, lC As Long, n As Long
  ReDim arr(1 To 6, 1 To 1)
  str1 = "G" & ChrW(7840) & "O"
  str2 = "CAO SU"
  str3 = "H" & ChrW(7840) & "T TIÊU"
  str4 = "H" & ChrW(7840) & "T " & ChrW(272) & "I" & ChrW(7872) & "U"
  str5 = "CÀ PHÊ"
  arr(2, 1) = str1: arr(3, 1) = str2: arr(4, 1) = str3: arr(5, 1) = str4: arr(6, 1) = str5
  n = 1
  Set Dic = CreateObject("Scripting.Dictionary")
  aSrc = Sheet1.Range("A9:D10000")
  For lR = 1 To UBound(aSrc, 1)
    tmp1 = Trim(CStr(aSrc(lR, 1)))
    tmp2 = Trim(CStr(aSrc(lR, 2)))
    tmp3 = Trim(CStr(aSrc(lR, 4)))
    If Val(aSrc(lR, 3)) > 0 Then lQty = CLng(Replace(aSrc(lR, 3), ".", ""))
    If Len(tmp2) = 0 Then
      If Len(tmp1) And Len(tmp3) Then
        If Not Dic.Exists(tmp1) Then
          n = n + 1
          ReDim Preserve arr(1 To 6, 1 To n)
          arr(1, n) = tmp1
          Dic.Add tmp1, n
        End If
      End If
    End If
    Select Case UCase(tmp1)
      Case Is = str1: arr(2, n) = arr(2, n) + lQty
      Case Is = str2: arr(3, n) = arr(3, n) + lQty
      Case Is = str3: arr(4, n) = arr(4, n) + lQty
      Case Is = str4: arr(5, n) = arr(5, n) + lQty
      Case Is = str5: arr(6, n) = arr(6, n) + lQty
    End Select
  Next
  aDes = Transpose2DArray(arr)
  Range("I3").Resize(n, 6).Value = aDes
End Sub
Private Function Transpose2DArray(ByVal TableArray)
  Dim lR As Long, lC As Long
  Dim arr, aTemp
  On Error Resume Next
  aTemp = TableArray
  ReDim arr(LBound(aTemp, 2) To UBound(aTemp, 2), LBound(aTemp, 1) To UBound(aTemp, 1))
  For lR = LBound(aTemp, 1) To UBound(aTemp, 1)
    For lC = LBound(aTemp, 2) To UBound(aTemp, 2)
      arr(lC, lR) = aTemp(lR, lC)
    Next
  Next
  Transpose2DArray = arr
End Function
Làm đại, hên thì trúng (trật thì... chạy. Ẹc... Ẹc...)
 
Huhu, e cố gắng học VBA mà ko hiểu.
E nhìn mấy code này là (@$%@ ko hiểu gì hết.

Có cách nào để hiểu VBA này không các Thầy ơi.
 
Huhu, e cố gắng học VBA mà ko hiểu.
E nhìn mấy code này là (@$%@ ko hiểu gì hết.

Có cách nào để hiểu VBA này không các Thầy ơi.
Không hiểu thì bạn từ từ nghiên cứu VBA sẽ hiểu, bây giờ bạn chỉ cần biết Enable Macros là nó chạy ra kết quả thôi.
Chứ bài này mà làm bằng công thức Excel chắc là "xin lỗi, chịu hông nỗi", làm bằng VBA mà biểu giải thích cho hiểu thì cũng "xin lỗi, y như trên".
 
Lần chỉnh sửa cuối:
Em có file download như file đính kèm (dữ liệu hơi bị lộn xộn vì down từ trên mạng xuống).

Em muốn lọc 5 mặt hàng: Gạo, Cao Su, Tiêu, Hạt Điều, Cà Phê cho từng nước.

Em không biết phải rút dữ liệu ntn cho đỡ mất thời gian và cách tìm sản lượng 5 mặt hàng này cho từng nước.

Nhờ các thầy hướng dẫn giúp em.

Em cảm ơn

File của bạn có lẽ do xuất từ phần mềm ra nên đa số dữ liệu số đều là dạng Text, tôi sử dụng Conver to Number để trả về dạng số, có một số dữ liệu tính bằng USD nhưng lại có đến 3 số lẽ đằng sau tôi nghĩ có lẽ do nhập sai (các số này tôi chưa định dạng lại), do sử dụng kết hợp nhiều phương pháp nên tôi không tiện hướng dẫn, trong File tôi có thiết kế lại dữ liệu cho phù hợp với việc tính toán và đưa ra 1 kết quả sử dụng hàm, 1 kết quả sử dụng PivotTable để bạn tham khảo.

Xem File đính kèm.
 

File đính kèm

Web KT

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

Back
Top Bottom