Sắp xếp và tính tổng (1 người xem)

Liên hệ QC

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

Tham gia
14/9/12
Bài viết
312
Được thích
68
Nghề nghiệp
VT
File chạy chậm quá. Nhờ các A/C lập bằng VBA để cải thiện. Xin cảm ơn./.
 

File đính kèm

File chạy chậm quá. Nhờ các A/C lập bằng VBA để cải thiện. Xin cảm ơn./.

1/ Tính tổng thì biết, còn sắp xếp thì không biết sắp xếp ra sao.
2/ Dữ liệu không có đầy đủ, phải nhập thủ công vào cột E sau khi chạy code hay sao?
 

File đính kèm

Upvote 0
1/ Tính tổng thì biết, còn sắp xếp thì không biết sắp xếp ra sao.
2/ Dữ liệu không có đầy đủ, phải nhập thủ công vào cột E sau khi chạy code hay sao?

Thật cảm ơn Ba Tê, Ý mình là:
Tại bảng Nhập: khi có khách hàng thanh toán trong hệ thống thì mình cập nhật bằng tay (thủ công).
Tại bảng theo dõi mình muốn sắp sếp lại danh dách của bảng nhập với đk kiện mỗi số máy chỉ hiện 1 lần với tổng số tiền thanh toán của x lần trong bảng nhập. VD như số máy 84913743145 thanh toán 5 lần A8-:-A12 nhưng tại bảng theo dõi thì số máy này chỉ cần hiện 1 lần và tổng số tiền của 5 lần đó.
Còn bảng XL chỉ là bảng cập nhật số máy họ tên và mã khách hàng nhằm điền vào bảng theo dõi (bảng này nhập thủ công)
Cột E của bảng theo dõi nhập thủ công.
 
Lần chỉnh sửa cuối:
Upvote 0
Thật cảm ơn Ba Tê, Ý mình là:
Tại bảng Nhập: khi có khách hàng thanh toán trong hệ thống thì mình cập nhật bằng tay (thủ công).
Tại bảng theo dõi mình muốn sắp sếp lại danh dách của bảng nhập với đk kiện mỗi số máy chỉ hiện 1 lần với tổng số tiền thanh toán của x lần trong bảng nhập. VD như số máy 84913743145 thanh toán 5 lần A8-:-A12 nhưng tại bảng theo dõi thì số máy này chỉ cần hiện 1 lần và tổng số tiền của 5 lần đó.
Còn bảng XL chỉ là bảng cập nhật số máy họ tên và mã khách hàng nhằm điền vào bảng theo dõi (bảng này nhập thủ công)
Cột E của bảng theo dõi nhập thủ công.
Đúng là đúng, sai là sai, cho ví dụ những dòng có kết quả sai đi, giải thích rõ vì sao là sai, đúng là thế nào.
84913743145 có các dòng 8:12, 136, 201, 202, 312 (tất cả 9 dòng) chỉ lấy 5 dòng đầu thôi sao?
 
Lần chỉnh sửa cuối:
Upvote 0
Đúng là đúng, sai là sai, cho ví dụ những dòng có kết quả sai đi, giải thích rõ vì sao là sai, đúng là thế nào.

Diễn đạt thế nào nhỉ:
Mình muốn lọc và sắp xếp từ bảng "nhập" dữ liệu sang bảng "theo dõi" kết quả. Tại bảng theo dõi , tất cả các số máy chỉ xuất hiện 1 lần với tổng (sumif) số tiền của số máy đó bên bảng nhập. Đồng thời tìm kiếm (vlookup) bên bảng XL với số máy tương ứng để điền mã khách hàng và họ tên của số máy đó cho bảng theo dõi
Bảng XL, bảng nhập: nhập bằng tay hết. Bảng theo dõi cột E cũng nhập thủ công.
Như vậy Ba tê.
 
Lần chỉnh sửa cuối:
Upvote 0
Diễn đạt thế nào nhỉ:
Mình muốn lọc và sắp xếp từ bảng "nhập" dữ liệu sang bảng "theo dõi" kết quả. Tại bảng theo dõi , tất cả các số máy chỉ xuất hiện 1 lần với tổng (sumif) số tiền của số máy đó bên bảng nhập. Đồng thời tìm kiếm (vlookup) bên bảng XL với số máy tương ứng để điền mã khách hàng và họ tên của số máy đó cho bảng theo dõi
Bảng XL, bảng nhập: nhập bằng tay hết. Bảng theo dõi cột E cũng nhập thủ công.
Như vậy Ba tê.
Bạn giải thích rõ như tôi viết trên bài #4 đi. Tôi hơi bị "dốt" nghe lắm.
Cột E tôi đã chừa cho bạn nhập thủ công rồi, các cột khác đều đựoc lọc hoặc gán công thức, Riêng cột B nếu có dòng nào trùng với dòng nào thì bạn báo cho biết.
 

File đính kèm

Upvote 0
À à, xin lỗi, mình hiểu rồi. Quả thực là phải đếm tất chứ (đếm cả 9 lần chứ). Lúc nãy là lấy thử VD đại khái, Thật xin lỗi, xin lỗi ... đã làm mất thời gian của các Anh.
Mình sẽ nhập dữ liệu để xem kết quả. Nhưng hình như yêu cầu đã được đáp ứng rồi. Mong thông cảm cho sự dốt và chậm hiểu của mình nhé. Ba tê.
 
Lần chỉnh sửa cuối:
Upvote 0
Xin chào các anh
Bài toán này của tôi đã được giải quyết tại bài #6. Nhưng để tiện cho việc quản lý và thống kê, tôi muốn bổ xung thêm 3 cột dữ liệu cụ thể như sau:
Tại sheet "XL" bổ xung thêm 3 cột F, G và H
Tại sheet "TDOI" tôi muốn cập nhật 3 cột trên tại cột J, K và L
Tôi cũng đã thử, nhưng do chưa biết về VBA nên không thể chèn hay chỉnh sửa Code được. Mong các anh giúp đỡ. Cảm ơn.
 

File đính kèm

Upvote 0
Xin chào các anh
Bài toán này của tôi đã được giải quyết tại bài #6. Nhưng để tiện cho việc quản lý và thống kê, tôi muốn bổ xung thêm 3 cột dữ liệu cụ thể như sau:
Tại sheet "XL" bổ xung thêm 3 cột F, G và H
Tại sheet "TDOI" tôi muốn cập nhật 3 cột trên tại cột J, K và L
Tôi cũng đã thử, nhưng do chưa biết về VBA nên không thể chèn hay chỉnh sửa Code được. Mong các anh giúp đỡ. Cảm ơn.
Thấy Xung nhưng hổng Xung.
 

File đính kèm

Upvote 0
Thấy Xung nhưng hổng Xung.
Anh xem lại hộ em sheet "TDOI" K3, K12, K16,K17 chẳng hạn, em muốn khi có cùng tên hoặc cùng tuyến thì xếp gọn 1 chỗ - Xếp hết người thứ nhất (trong người thứ nhất thì hết tuyến 1 rồi đến tuyến 2) rồi mới đến người thứ 2 (các tuyến của người thứ 2) rồi đến người thứ 3(các tuyến người thứ 3).
Sheet XL em muốn bỏ cột A đi có được không?
 

File đính kèm

Upvote 0
Anh xem lại hộ em sheet "TDOI" K3, K12, K16,K17 chẳng hạn, em muốn khi có cùng tên hoặc cùng tuyến thì xếp gọn 1 chỗ - Xếp hết người thứ nhất (trong người thứ nhất thì hết tuyến 1 rồi đến tuyến 2) rồi mới đến người thứ 2 (các tuyến của người thứ 2) rồi đến người thứ 3(các tuyến người thứ 3).
Sheet XL em muốn bỏ cột A đi có được không?
Hổng "giỡn" à nghe.
Đọc lại cái này xem:
Phương pháp 1: Sau khi hết 1 tuyến sẽ tự động chèn thêm 1 dòng vào cuối của tuyến đó rồi tính tổng cho tuyến đó
Bi giờ thì đòi tổng theo người.
[GPECODE=vb]Public Sub GPE()
Application.ScreenUpdating = False
Dim Dic As Object, sArr(), dArr(), I As Long, J As Long, K As Long, Tem As String, X As Long
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("NHAP")
sArr = .Range(.[B3], .[C65536].End(xlUp)).Value2
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 13)
For I = 1 To UBound(sArr, 1)
Tem = sArr(I, 1)
If Not Dic.Exists(Tem) Then
K = K + 1
Dic.Add Tem, K
dArr(K, 1) = K
dArr(K, 2) = Tem
dArr(K, 6) = sArr(I, 2)
dArr(K, 7) = "=Max(RC[-2]-RC[-1],0)"
dArr(K, 8) = "=Max(RC[-2]-RC[-3],0)"
dArr(K, 9) = 1
Else
dArr(Dic.Item(Tem), 6) = dArr(Dic.Item(Tem), 6) + sArr(I, 2)
dArr(Dic.Item(Tem), 9) = dArr(Dic.Item(Tem), 9) + 1
End If
Next I
With Sheets("XL")
sArr = .Range(.[C3], .[C65536].End(xlUp)).Resize(, 6).Value2
End With
For I = 1 To UBound(sArr, 1)
Tem = sArr(I, 1)
If Dic.Exists(Tem) Then
dArr(Dic.Item(Tem), 3) = sArr(I, 2)
dArr(Dic.Item(Tem), 4) = sArr(I, 3)
dArr(Dic.Item(Tem), 10) = sArr(I, 4)
dArr(Dic.Item(Tem), 11) = sArr(I, 5)
dArr(Dic.Item(Tem), 12) = sArr(I, 6)
End If
Next I
With Sheets("TDOI")
With .[A3:L10000]
.ClearContents
.Interior.ColorIndex = 0
.Borders.LineStyle = xlNone
.Font.Bold = False
.Font.ColorIndex = 0
End With
If K Then
.[A3].Resize(K, 12) = dArr
.[B3].Resize(K, 11).Sort Key1:=.[J3], Key2:=.[K3]
sArr = .[A3:L3].Resize(K + 1).Value2
'--------------------------- Them cac dong tong, to mau
ReDim dArr(1 To K * 2, 1 To 12)
K = 0
For I = 1 To UBound(sArr, 1) - 1
K = K + 1: X = X + 1
For J = 1 To 12
dArr(K, J) = sArr(I, J)
Next J
If sArr(I, 10) <> sArr(I + 1, 10) Then
K = K + 1
dArr(K, 4) = .[M1].Value2
For J = 5 To 8
dArr(K, J) = "=Sum(R[-" & X & "]C:R[-1]C)"
Next J
With .Range("A" & K + 2).Resize(, 12)
.Interior.ColorIndex = 6
.Font.Bold = True
.Font.ColorIndex = 3
End With
X = 0
End If
Next I
.[A3].Resize(K, 12) = dArr
.[A3].Resize(K, 12).Borders.LineStyle = xlContinuous
End If
'------------------------------
End With
Set Dic = Nothing
Application.ScreenUpdating = True
End Sub[/GPECODE]

"Giỡn" nhiều quá, chạy à.
 
Lần chỉnh sửa cuối:
Upvote 0
Hổng "giỡn" à nghe.
Bây giờ thì đòi tổng theo người.
Không phải vậy đâu, oan cho em quá.
"Kết quả mong muốn là sau khi bấm vào nút "GPE" thì bảng được sắp xếp A-Z theo J và K."

Anh ơi #8 đúng ý em rồi, nhưng chỉ là sắp xếp cho gọn lại 1 chỗ mà anh. VD như file #9 em gửi thì K3, K12, K16, K17 chẳng hạn có cùng tuyến, cùng người nhưng chưa xếp gọn được vào 1 chỗ.
Nhưng thôi vậy. Em sẽ nhập dữ liệu đầu vào sheet "XL" chỉ cần tuân theo quy định hết người 1 (các tuyến người 1) đến người 2 (các tuyến người 2) là khắc phục được điều đó. Thế này cũng đã mãn nguyện lắm rồi. Rất cảm ơn anh đã giúp đỡ. Anh không phải chạy đâu, em không dám làm khó anh nữa. Chúc anh có 1 ngày làm việc vui vẻ.
 
Lần chỉnh sửa cuối:
Upvote 0
Không phải vậy đâu, oan cho em quá.
"Kết quả mong muốn là sau khi bấm vào nút "GPE" thì bảng được sắp xếp A-Z theo J và K."

Anh ơi #8 đúng ý em rồi, nhưng chỉ là sắp xếp cho gọn lại 1 chỗ mà anh. VD như file #9 em gửi thì K3, K12, K16, K17 chẳng hạn có cùng tuyến, cùng người nhưng chưa xếp gọn được vào 1 chỗ.
Nhưng thôi vậy. Em sẽ nhập dữ liệu đầu vào sheet "XL" chỉ cần tuân theo quy định hết người 1 (các tuyến người 1) đến người 2 (các tuyến người 2) là khắc phục được điều đó. Thế này cũng đã mãn nguyện lắm rồi. Rất cảm ơn anh đã giúp đỡ. Anh không phải chạy đâu, em không dám làm khó anh nữa. Chúc anh có 1 ngày làm việc vui vẻ.
Hình như người viết và người đọc không hiểu nhau rồi.
Đây là 2 file, bạn xài file nào đúng ý thì xài, nếu cả 2 file đều không đúng ý muốn của bạn thì "tèo".
 

File đính kèm

Upvote 0
Hình như người viết và người đọc không hiểu nhau rồi.
Đây là 2 file, bạn xài file nào đúng ý thì xài, nếu cả 2 file đều không đúng ý muốn của bạn thì "tèo".
Cảm ơn anh nhiều. File #9 là đúng rồi ạnh ạ. Nhưng file EZPAY_GPE(Bsung3) bài #13 thì còn đúng hơn, không ý kiến được gì thêm. Đúng là Ba tê kẹp thêm thịt=Ngon hơn, rất ngon. Cảm ơn anh.
 
Upvote 0
Thật là xin lỗi các A/c, em lại phải quay lại Topic này. Em có 1 vấn đề nhưng không am hiểu VBA nên rất cần được các a/c giúp đỡ:
Em muốn sử dụng bảng biều #13 nhưng em muốn bỏ đi 1 sheet có tên NHAP, thêm 1 chút yêu cầu trong file mới để có được kết quả giống như bài #13 (Bổ xung 3). Em up lại cả file bài #13 lên đây mong các a/c xem dùm. Bài em cần là file: Lọc, sắp xếp, tính tổng. Xin cảm ơn ạ.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom