Nhờ giúp về tính tổng số lượng hàng nhập của nhiều tháng

Liên hệ QC
Dùng find thì cũng có cái hay nhưng khi find mà không có thì phải thêm
if rngFound is nothing then

Hic, đã AdF Unique ra MaHH, Find lại thì lo gì đến chuyện không thấy

Mà sao có rất nhiều mặt hàng không thấy nhập mà vẫn có bán?
 
Lần chỉnh sửa cuối:
Hic, đã AdF Unique ra MaHH, Find lại thì lo gì đến chuyện không thấy

Mà sao có rất nhiều mặt hàng không thấy nhập mà vẫn có bán?
AdF Unique ra MaHH nhưng là MaHH nhập, nhưng có Mahh xuất mà không nhập nên mới mất công, chắc bạn này đố tụi mình. Phải làm thêm động tác kiểm tra thì mệt quá.
 
Em có 1 bảng tính với nội dung như sau:
1 Bảng tính có 3 cột: Mã hàng, tên hàng và số lượng nhập (tháng 8, 9, 10,11) (4 sheet) (khoảng 12.000 mặt hàng)
1 Bảng tính có 3 cột: Mã hàng, tên hàng và số lượng xuất (tháng 8, 9, 10,11) (4 sheet)
* Có thể ghép 8 sheet trên thành 1 file và tạo thêm sheet mới để dùng làm bảng tính toán tổng hợp
Yêu cầu đặt ra là: Bảng tổng hợp gồm có:
1. Tính tổng số lượng hàng nhập của 4 tháng trên theo từng mặt hàng (có mã hàng đại diện) (làm công thức sang 1 sheet khác)
2. Tính tổng số lượng hàng xuất của 4 tháng trên theo từng mặt hàng (có mã hàng đại diện)
3. Tính tổng số lượng hàng tồn kho theo từng mặt hàng (có mã hàng đại diện)
Các anh chị ai biết giúp em với... help me!
Nếu dùng hàm sumif thì chỉ được vài mã hàng thôi...chứ đàng này nó cả chục ngàn mã hàng sao sum được đây
CÁM ƠN CÁC ANH CHỊ ĐÃ ĐỌC VÀ NHỚ GIÚP EM VỚI NHÉ!

Thêm 1 cách tổng hợp bằng Pivot Table
Tổng t/g = 3.140625" (Test tại máy của boyxin)
PHP:
Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim fR As Long, sR As Long
With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
Cells(5, "M").Resize(, 5).EntireColumn.Hidden = False
Cells(5, "M").Resize(, 5).EntireRow.Hidden = False
[G1] = Timer

    sR = [M65535].End(xlUp).Row - 4
    Cells(6, "M").Resize(sR, 5).ClearContents
For Each Sh In Worksheets
    If Left(Sh.Name, 1) = "N" And Sh.[a17] <> blank Then
        fR = [M65535].End(xlUp).Row + 1
        sR = Sh.[C65535].End(xlUp).Row - 16
        Cells(fR, "M").Resize(sR) = "Nhap"
        Cells(fR, "N").Resize(sR, 4) = Sh.[a17].Resize(sR, 4).Value
    Else
        If Left(Sh.Name, 1) = "X" And Sh.[a17] <> blank Then
            fR = [M65535].End(xlUp).Row + 1
            sR = Sh.[D65535].End(xlUp).Row - 16
            Cells(fR, "M").Resize(sR) = "Xuat"
            Cells(fR, "N").Resize(sR, 3) = Sh.[B17].Resize(sR, 3).Value
            Tmp = Cells(fR, "N").Resize(sR, 1).Offset(, 3)
            For iR = 1 To sR
                Tmp(iR, 1) = (-1) * Sh.[B17].Offset(iR - 1, 3).Value
            Next
            Cells(fR, "N").Resize(sR, 1).Offset(, 3) = Tmp
        End If
    End If
Next
    sR = [M65535].End(xlUp).Row - 3
    Cells(5, "M").Resize(sR, 5).Sort Key1:=[P6], Order1:=1, Header:=1
    fR = [P65535].End(xlUp).Row + 1: sR = [M65535].End(xlUp).Row - fR + 1
    Cells(fR, "M").Resize(sR, 5).Clear
    Cells(5, "M").Resize(fR, 5).Sort Key1:=[N6], Order1:=1, Header:=1
    
    If ActiveSheet.PivotTables.Count > 0 Then
        Refresh_Pivot
    Else: Pivot: End If

[G2] = Timer: [G3] = [G2] - [G1]
Cells(5, "M").Resize(, 5).EntireColumn.Hidden = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
    .DisplayAlerts = True
End With
End Sub
Private Sub Pivot()
With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    [G1] = Timer
    Range([a3], [a3].End(xlDown)).Resize(, 6).Clear
'-----------------------------------------------------------------------------
    [m5].Resize([m5].End(xlDown).Row - 4, 5).Name = "Tmp": [a3].Name = "Start"
    ActiveWorkbook.PivotCaches.Add(1, "Tmp").CreatePivotTable "Start", "GPE_boyxin"
    With ActiveSheet.PivotTables("GPE_boyxin")
        .PivotFields([m5].Value).Orientation = xlColumnField
        .PivotFields([n5].Value).Orientation = xlRowField
        .PivotFields([n5].Value).Subtotals = Array(False, False, False, _
            False, False, False, False, False, False, False, False, False)
        .PivotFields([o5].Value).Orientation = xlRowField
        .PivotFields([o5].Value).Subtotals = Array(False, False, False, _
            False, False, False, False, False, False, False, False, False)
        .PivotFields([p5].Value).Orientation = xlRowField
        .AddDataField .PivotFields([q5].Value), "Sum " & [q5].Value, xlSum
    End With
'-----------------------------------------------------------------------------
    Columns("A:A").NumberFormat = "0000000000000"
    Columns("D:F").NumberFormat = "_(* #,##0.0_);_(* (#,##0.0);_(* ""-""??_);_(@_)"
    With Range([a3], [a3].End(xlDown)).Resize(, 6)
        .Font.Name = "VNI-Helve"
        .Font.Size = 10
        .EntireColumn.AutoFit
    End With
[G2] = Timer: [G3] = [G2] - [G1]
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
    .DisplayAlerts = True
End With
End Sub
Private Sub Refresh_Pivot()
    ActiveSheet.PivotTables("GPE_boyxin").PivotCache.Refresh
    Columns("A:A").NumberFormat = "0000000000000"
    Columns("D:F").NumberFormat = "_(* #,##0.0_);_(* (#,##0.0);_(* ""-""??_);_(@_)"
    With Range([a3], [a3].End(xlDown)).Resize(, 6)
        .Font.Name = "VNI-Helve"
        .Font.Size = 10
        .EntireColumn.AutoFit
    End With
End Sub
 

File đính kèm

  • boyxin TH_NXT_02 Pivot Table.rar
    508.6 KB · Đọc: 210
Không phải em đố gì đâu, nhưng em đang gặp vấn đề này trong khi làm báo cáo cáo thật sự.
Thiệt tình excel thì cũng có biết về các hàm đơn giản...còn phức tạp xíu thì hơi mệt...Rất mong được các anh chị giúp đỡ thêm.
Mới tham gia diễn đàn mà thấy các anh chị nhiệt tình vậy em cũng thích ghê...
 
Web KT
Back
Top Bottom