Nhờ mọi người giúp về tính tổng theo từng mặt hàng! (1 người xem)

Liên hệ QC

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

Lovehacao

Thành viên mới
Tham gia
27/11/09
Bài viết
14
Được thích
0
Mình có 1 file gồm 2 sheet! sheet DATA chứa dữ liệu!
Sheert TONG tính tổng lấy số liệu từ sheet DATA.

Bây giờ mình muốn tạo 1 hàm để excel tự tính tổng sau khi đã có số liệu ở sheet DATA.(số liệu kết quả giống như ở sheet TONG )
Đây là số liệu mình làm mẫu... số liệu thực tế đến >5000 dòng! nếu cộng theo từng mặt hàng mà bằng tay thì rất lâu.

Bạn nào biết giúm mình với!!! Xin cảm ơn nhiều!!!
 

File đính kèm

Mình có 1 file gồm 2 sheet! sheet DATA chứa dữ liệu!
Sheert TONG tính tổng lấy số liệu từ sheet DATA.

Bây giờ mình muốn tạo 1 hàm để excel tự tính tổng sau khi đã có số liệu ở sheet DATA.(số liệu kết quả giống như ở sheet TONG )
Đây là số liệu mình làm mẫu... số liệu thực tế đến >5000 dòng! nếu cộng theo từng mặt hàng mà bằng tay thì rất lâu.

Bạn nào biết giúm mình với!!! Xin cảm ơn nhiều!!!

tôi có cách này, bạn thử xem
ở sheet "data" cột G
Mã:
G2=IF(C2<>C3,SUM($F$2:F2)-SUM($G$1:G1),"")
 
Mình có 1 file gồm 2 sheet! sheet DATA chứa dữ liệu!
Sheert TONG tính tổng lấy số liệu từ sheet DATA.

Bây giờ mình muốn tạo 1 hàm để excel tự tính tổng sau khi đã có số liệu ở sheet DATA.(số liệu kết quả giống như ở sheet TONG )
Đây là số liệu mình làm mẫu... số liệu thực tế đến >5000 dòng! nếu cộng theo từng mặt hàng mà bằng tay thì rất lâu.

Bạn nào biết giúm mình với!!! Xin cảm ơn nhiều!!!

Thử sử dụng PivotTable, nếu vài chục ngìn dòng chỉ với 30 giây.
 

File đính kèm

Mình có 1 file gồm 2 sheet! sheet DATA chứa dữ liệu!
Sheert TONG tính tổng lấy số liệu từ sheet DATA.

Bây giờ mình muốn tạo 1 hàm để excel tự tính tổng sau khi đã có số liệu ở sheet DATA.(số liệu kết quả giống như ở sheet TONG )
Đây là số liệu mình làm mẫu... số liệu thực tế đến >5000 dòng! nếu cộng theo từng mặt hàng mà bằng tay thì rất lâu.

Bạn nào biết giúm mình với!!! Xin cảm ơn nhiều!!!

Nếu chịu VBA thì xem file này, dữ liệu 5.000 dòng chắc "ớn lạnh" một cái là xong.
Nhớ chọn Enable Macros khi mở file.
 

File đính kèm

Mình có 1 file gồm 2 sheet! sheet DATA chứa dữ liệu!
Sheert TONG tính tổng lấy số liệu từ sheet DATA.

Bây giờ mình muốn tạo 1 hàm để excel tự tính tổng sau khi đã có số liệu ở sheet DATA.(số liệu kết quả giống như ở sheet TONG )
Đây là số liệu mình làm mẫu... số liệu thực tế đến >5000 dòng! nếu cộng theo từng mặt hàng mà bằng tay thì rất lâu.

Bạn nào biết giúm mình với!!! Xin cảm ơn nhiều!!!

Cái này thực hiện Sắp xếp trước sau đó Subtotal em thấy cũng nhanh mà. Đâu lâu lắm đâu?
 
Nếu chịu VBA thì xem file này, dữ liệu 5.000 dòng chắc "ớn lạnh" một cái là xong.
Nhớ chọn Enable Macros khi mở file.

Bác Ba Tê cho em hỏi với

Đoạn Code bên dưới này theo em hiểu chỉ là để định dạng và bôi đỏ các dòng TONG
Vậy sao em bỏ đoạn code này đi thì SUB lại không ra kết quả nữa ạ.

Em cảm ơn!
With Sheets("TONG")
Application.ScreenUpdating = False
With [E5:J65536]
.ClearContents
.Font.Bold = False
.Font.ColorIndex = 0
End With
If K Then
.[E5:J5].Resize(K) = dArr
Rws = .[F65536].End(xlUp).Row
For I = 5 To Rws
If Cells(I, 6) = "TONG" Then
Cells(I, 6).Resize(, 5).Font.Bold = True
Cells(I, 6).Resize(, 5).Font.ColorIndex = 3
End If
Next I
End If
End With
 
Cảm ơn bạn Batê nhiều! Cách này rất nhanh!
 
Bác Ba Tê cho em hỏi với

Đoạn Code bên dưới này theo em hiểu chỉ là để định dạng và bôi đỏ các dòng TONG
Vậy sao em bỏ đoạn code này đi thì SUB lại không ra kết quả nữa ạ.

Em cảm ơn!
With Sheets("TONG")
Application.ScreenUpdating = False
With [E5:J65536]
.ClearContents
.Font.Bold = False
.Font.ColorIndex = 0
End With
If K Then
.[E5:J5].Resize(K) = dArr
Rws = .[F65536].End(xlUp).Row
For I = 5 To Rws
If Cells(I, 6) = "TONG" Then
Cells(I, 6).Resize(, 5).Font.Bold = True
Cells(I, 6).Resize(, 5).Font.ColorIndex = 3
End If
Next I
End If
End With
PHP:
If K Then
.[E5:J5].Resize(K) = dArr
Bạn bỏ đoạn này đi thì đứt là cái chắc roài
 
PHP:
If K Then
.[E5:J5].Resize(K) = dArr
Bạn bỏ đoạn này đi thì đứt là cái chắc roài

Anh cho em xin code không cần phần định dạng được không ạ? Em mới học mà thêm mấy cái trình bày văn bản vào nữa thì rối và khó hiểu lắm.
 
Anh cho em xin code không cần phần định dạng được không ạ? Em mới học mà thêm mấy cái trình bày văn bản vào nữa thì rối và khó hiểu lắm.

Mùng 2 Tết mà cũng không có "độ" sao?
Muốn không dịnh dạng thì mấy dòng nào liên quan đến nó thì bỏ đi.
PHP:
Public Sub GPE()
Dim sArr(), dArr(), I As Long, J As Long, K As Long, Rws As Long
On Error Resume Next
With Sheets("DATA")
    sArr = .Range(.[A2], .[A65536].End(xlUp).Offset(1)).Resize(, 6).Value
End With
ReDim dArr(1 To UBound(sArr, 1) * 2, 1 To 6)
For I = 1 To UBound(sArr, 1) - 1
    K = K + 1: Rws = Rws + 1
    For J = 1 To 6
        dArr(K, J) = sArr(I, J)
    Next J
    If sArr(I, 1) <> sArr(I + 1, 1) Then
        K = K + 1
        dArr(K, 2) = "TONG"
        For J = 4 To 6
            dArr(K, J) = "=SUM(R[-" & Rws & "]C:R[-1]C)"
        Next J
        Rws = 0
    End If
Next I
With Sheets("TONG")
   .[E5:J65536].ClearContents
    If K Then .[E5:J5].Resize(K) = dArr
End With
End Sub
 
Mùng 2 Tết mà cũng không có "độ" sao?
Muốn không dịnh dạng thì mấy dòng nào liên quan đến nó thì bỏ đi.
PHP:
Public Sub GPE()
Dim sArr(), dArr(), I As Long, J As Long, K As Long, Rws As Long
On Error Resume Next
With Sheets("DATA")
    sArr = .Range(.[A2], .[A65536].End(xlUp).Offset(1)).Resize(, 6).Value
End With
ReDim dArr(1 To UBound(sArr, 1) * 2, 1 To 6)
For I = 1 To UBound(sArr, 1) - 1
    K = K + 1: Rws = Rws + 1
    For J = 1 To 6
        dArr(K, J) = sArr(I, J)
    Next J
    If sArr(I, 1) <> sArr(I + 1, 1) Then
        K = K + 1
        dArr(K, 2) = "TONG"
        For J = 4 To 6
            dArr(K, J) = "=SUM(R[-" & Rws & "]C:R[-1]C)"
        Next J
        Rws = 0
    End If
Next I
With Sheets("TONG")
   .[E5:J65536].ClearContents
    If K Then .[E5:J5].Resize(K) = dArr
End With
End Sub

Anh Ba Tê cho em hỏi ngu 1 câu
Em theo dõi nhiều bài của anh, anh hay dùng các biến mảng như sArrdArr.
Em hỏi nhỏ là anh viết tắt của cái gì để các bài sau em đọc dễ hình dung hơn.

Cảm ơn anh.
 
Anh Ba Tê cho em hỏi ngu 1 câu
Em theo dõi nhiều bài của anh, anh hay dùng các biến mảng như sArrdArr.
Em hỏi nhỏ là anh viết tắt của cái gì để các bài sau em đọc dễ hình dung hơn.

Cảm ơn anh.

sArr() mảng dữ liệu nguồn, dArr() là mảng dữ liệu đích (Kết quả). Híc! Hết thuốc.
 
Web KT

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

Back
Top Bottom