



Dùng Filter Advanced cũng được vậyChào các anh/chị,
Em đang có 1 bài toán cần tính lọc ra các giá trị duy nhất có điều kiện sau đó đếm và tính tổng các giá trị duy nhất đáp ứng điều kiện đó
Kính nhờ các anh/chị giúp đỡ em code VBA để giải quyết nó với ạ
Em cảm ơn ạ
Xem đúng ý bạn chưa nhéChào các anh/chị,
Em đang có 1 bài toán cần tính lọc ra các giá trị duy nhất có điều kiện sau đó đếm và tính tổng các giá trị duy nhất đáp ứng điều kiện đó
Kính nhờ các anh/chị giúp đỡ em code VBA để giải quyết nó với ạ
Em cảm ơn ạ
Option Explicit
Sub ABC()
       Dim Dic As Object
       Dim Nguon(), Kq(), Key, ViTri, SoLan
       Dim Dong, Irow, a As Long
     
       Set Dic = CreateObject("Scripting.Dictionary")
     
       With Sheets("Data")
               Irow = .Range("A" & Rows.Count).End(xlUp).Row
               Nguon = .Range("A3").Resize(Irow, 3).Value
       End With
     
       Irow = UBound(Nguon)
   
     
       ReDim Kq(1 To Irow, 1 To 3)
       For a = 1 To Irow - 1
         If Nguon(a, 2) > 60 And Mid(Nguon(a, 3), 1, 1) = "T" Then
           Key = Nguon(a, 1)
            If Not Dic.exists(Key) Then
           
               Dong = Dong + 1
               SoLan = 1
               Dic.Add Key, Dong
               Kq(Dong, 1) = Key
               Kq(Dong, 2) = SoLan
               Kq(Dong, 3) = Nguon(a, 2)
             
            Else
           
              ViTri = Dic.Item(Key)
              Kq(ViTri, 2) = Kq(ViTri, 2) + 1
              Kq(ViTri, 3) = Kq(ViTri, 3) + Nguon(a, 2)
             
            End If
         End If
       Next
     
       With Sheets("Result")
            If Dong > 0 Then
               .Range("B3").Resize(Dong, 3).Value = Kq
            End If
       End With
End Sub
	Em chưa biết cách dùng, cảm ơn bác đã gợi ý, em sẽ tìm hiểu thêm ạDùng Filter Advanced cũng được vậy
Code đã cho kết quả đúng như em muốn rồi, em cảm ơn bác nhiều ạXem đúng ý bạn chưa nhé
Mã:Option Explicit Sub ABC() Dim Dic As Object Dim Nguon(), Kq(), Key, ViTri, SoLan Dim Dong, Irow, a As Long Set Dic = CreateObject("Scripting.Dictionary") With Sheets("Data") Irow = .Range("A" & Rows.Count).End(xlUp).Row Nguon = .Range("A3").Resize(Irow, 3).Value End With Irow = UBound(Nguon) ReDim Kq(1 To Irow, 1 To 3) For a = 1 To Irow - 1 If Nguon(a, 2) > 60 And Mid(Nguon(a, 3), 1, 1) = "T" Then Key = Nguon(a, 1) If Not Dic.exists(Key) Then Dong = Dong + 1 SoLan = 1 Dic.Add Key, Dong Kq(Dong, 1) = Key Kq(Dong, 2) = SoLan Kq(Dong, 3) = Nguon(a, 2) Else ViTri = Dic.Item(Key) Kq(ViTri, 2) = Kq(ViTri, 2) + 1 Kq(ViTri, 3) = Kq(ViTri, 3) + Nguon(a, 2) End If End If Next With Sheets("Result") If Dong > 0 Then .Range("B3").Resize(Dong, 3).Value = Kq End If End With End Sub

Các ac giúp đỡ em bài toán này với. Em muốn lọc duy nhất từ sheet Xuất sang sheet Tdoi với tiêu chí: Lọc duy nhất theo mã hàng và tên nvien, rồi cổng tổng số lượng, thành tiền các lần xuất của mặt hàng đó bên sheet xuấtXem đúng ý bạn chưa nhé
Mã:Option Explicit Sub ABC() Dim Dic As Object Dim Nguon(), Kq(), Key, ViTri, SoLan Dim Dong, Irow, a As Long Set Dic = CreateObject("Scripting.Dictionary") With Sheets("Data") Irow = .Range("A" & Rows.Count).End(xlUp).Row Nguon = .Range("A3").Resize(Irow, 3).Value End With Irow = UBound(Nguon) ReDim Kq(1 To Irow, 1 To 3) For a = 1 To Irow - 1 If Nguon(a, 2) > 60 And Mid(Nguon(a, 3), 1, 1) = "T" Then Key = Nguon(a, 1) If Not Dic.exists(Key) Then Dong = Dong + 1 SoLan = 1 Dic.Add Key, Dong Kq(Dong, 1) = Key Kq(Dong, 2) = SoLan Kq(Dong, 3) = Nguon(a, 2) Else ViTri = Dic.Item(Key) Kq(ViTri, 2) = Kq(ViTri, 2) + 1 Kq(ViTri, 3) = Kq(ViTri, 3) + Nguon(a, 2) End If End If Next With Sheets("Result") If Dong > 0 Then .Range("B3").Resize(Dong, 3).Value = Kq End If End With End Sub



Bạn thử câu lệnh sau:Các ac giúp đỡ em bài toán này với. Em muốn lọc duy nhất từ sheet Xuất sang sheet Tdoi với tiêu chí: Lọc duy nhất theo mã hàng và tên nvien, rồi cổng tổng số lượng, thành tiền các lần xuất của mặt hàng đó bên sheet xuất
Option Explicit
Sub Z_Z()
    Dim sheet As Worksheet
    Dim dic As Object, Key As String
    Dim Data As Variant, result As Variant
    Dim strName As String, strItem As String
    Dim r As Long, i As Long, j As Long, k As Long
    Const delim As String = "|"
    With ThisWorkbook.Worksheets("Xuat")
        r = .Cells(.Rows.Count, "D").End(xlUp).Row
        If r < 9 Then: MsgBox "Khong co du lieu.", vbCritical: Exit Sub
        Data = .Range("B9:J" & r).Value
    End With
    
    Set dic = CreateObject("Scripting.Dictionary")
    dic.CompareMode = TextCompare
    
    ReDim result(1 To UBound(Data, 1), 1 To UBound(Data, 2))
    For i = LBound(Data, 1) To UBound(Data, 1)
        strName = Data(i, 1)
        strItem = Data(i, 3)
        Key = Join(Array(strName, strItem), delim)
        If Not dic.Exists(Key) Then
            k = k + 1
            dic.Add Key, k
            For j = LBound(Data, 2) To UBound(Data, 2)
                result(k, j) = Data(i, j)
            Next j
        Else
            r = dic.Item(Key)
            For j = 6 To 9
                result(r, j) = result(r, j) + Data(i, j)
            Next j
        End If
    Next i
    With ThisWorkbook.Worksheets("Tdoi")
        r = .Cells(.Rows.Count, "C").End(xlUp).Row
        If (r > 9) Then .Range("A9:K" & r).ClearContents
        If (k > 0) Then .Range("A9").Resize(k, UBound(result, 2)).Value = result
    End With
    MsgBox "Ket thuc.", vbInformation
End Sub
	



Bạn OT thức khuya dữ ha.Bạn thử câu lệnh sau:
Mã:Option Explicit Sub Z_Z() Dim sheet As Worksheet Dim dic As Object, Key As String Dim Data As Variant, result As Variant Dim strName As String, strItem As String Dim r As Long, i As Long, j As Long, k As Long Const delim As String = "|" With ThisWorkbook.Worksheets("Xuat") r = .Cells(.Rows.Count, "D").End(xlUp).Row If r < 9 Then: MsgBox "Khong co du lieu.", vbCritical: Exit Sub Data = .Range("B9:J" & r).Value End With Set dic = CreateObject("Scripting.Dictionary") dic.CompareMode = TextCompare ReDim result(1 To UBound(Data, 1), 1 To UBound(Data, 2)) For i = LBound(Data, 1) To UBound(Data, 1) strName = Data(i, 1) strItem = Data(i, 3) Key = Join(Array(strName, strItem), delim) If Not dic.Exists(Key) Then k = k + 1 dic.Add Key, k For j = LBound(Data, 2) To UBound(Data, 2) result(k, j) = Data(i, j) Next j Else r = dic.Item(Key) For j = 6 To 9 result(r, j) = result(r, j) + Data(i, j) Next j End If Next i With ThisWorkbook.Worksheets("Tdoi") r = .Cells(.Rows.Count, "C").End(xlUp).Row If (r > 9) Then .Range("A9:K" & r).ClearContents If (k > 0) Then .Range("A9").Resize(k, UBound(result, 2)).Value = result End With MsgBox "Ket thuc.", vbInformation End Sub

Em cảm ơn ạ. ac có thể viết cho em xin thêm đoạn mã để sắp xếp. Sau đó thêm 1 hàng ngay dưới khi hết 1 người, rồi cộng tổng tiền người đó. Và cuối cùng thêm 1 dòng trên cùng hoặc cuối cùng để tổng cộng tiền doanh thu của cả bảng đựợc không? Nó lộn xộn quá ạBạn thử câu lệnh sau:



Bạn muốn sắp xếp cột nào vậy?Em cảm ơn ạ. ac có thể viết cho em xin thêm đoạn mã để sắp xếp. Sau đó thêm 1 hàng ngay dưới khi hết 1 người, rồi cộng tổng tiền người đó. Và cuối cùng thêm 1 dòng trên cùng hoặc cuối cùng để tổng cộng tiền doanh thu của cả bảng đựợc không? Nó lộn xộn quá ạ



File mới của bạn có các thông tin như:Dạ em muốn sắp xếp theo cột họ tên nvien, sau đó sếp theo mã hàng.
Hết người thứ nhất thì tạo 1 dòng tổng
Tương tự như vậy với người thứ 2, thứ 3.
cuối cùng cho e 1 dóng tổng tất cả mọi người
E Móng muốn kết quả tương tự như sheet TDOI trong file này ạ



Bạn kiểm tra lại:Dạ em muốn sắp xếp theo cột họ tên nvien, sau đó sếp theo mã hàng.
Hết người thứ nhất thì tạo 1 dòng tổng
Tương tự như vậy với người thứ 2, thứ 3.
cuối cùng cho e 1 dóng tổng tất cả mọi người
E Móng muốn kết quả tương tự như sheet TDOI trong file này ạ
Option Explicit
Public Sub returnSubTotal()
    Dim dic As Object, ws As Worksheet, sheet As Worksheet
    Dim Data As Variant, Result As Variant, Subtotal As Variant
    Dim str As String, sMacNo As String, sMember As String, sGroup As String, sTotal As String
    Dim i As Long, j As Long, k As Long, r As Long, n As Long, x As Long
    Dim dDTT As Double, dPT As Double, dTT As Double, dN As Double, d As Double
    Dim c As Integer, count As Integer
   
    Application.ScreenUpdating = False
   
    On Error GoTo Exit_
   
    Set ws = ThisWorkbook.Worksheets("XL")
    Set sheet = ThisWorkbook.Worksheets("TDOI")
    With ThisWorkbook.Worksheets("XL")
        r = .Cells(.Rows.count, "B").End(xlUp).Row
        If r < 3 Then: MsgBox "Khong co du lieu.", vbCritical: Exit Sub
        Result = ws.Range("A3:J" & r).Value
        .Range("A3:J" & r).Sort _
            Key1:=ws.Range("F3"), Order1:=xlAscending, _
            Key2:=ws.Range("E3"), Order2:=xlAscending, _
            Key3:=ws.Range("C3"), Order3:=xlAscending, _
            Orientation:=xlTopToBottom, Header:=xlYes
                       
        .Range("A3:J" & r).Value = Result
        Data = .Range("B3:J" & r).Value
    End With
   
    Set dic = CreateObject("Scripting.Dictionary")
    dic.CompareMode = TextCompare
    With ThisWorkbook.Worksheets("NHAP")
        r = .Cells(.Rows.count, "B").End(xlUp).Row
        If r < 3 Then GoTo ZZ
        Result = .Range("B3:C" & r).Value
        For i = LBound(Result, 1) To UBound(Result, 1)
            sMacNo = Result(i, 1):    dDTT = Result(i, 2)
            If Not dic.Exists(sMacNo) Then
                dic.Add sMacNo, Array(dDTT, 1)
            Else
                d = dic.item(sMacNo)(0) + dDTT
                count = dic.item(sMacNo)(1) + 1
                dic.item(sMacNo) = Array(d, count)
            End If
        Next i
    End With
   
ZZ:
    sTotal = "C" & ChrW(7897) & "ng: "
    r = UBound(Data, 1): c = 12
    ReDim Preserve Data(1 To r, 1 To c)
    ReDim Result(1 To r, 1 To c)
    ReDim Subtotal(1 To r, 1 To c)
   
    For i = 1 To r
        sMacNo = Data(i, 1)
        sMember = Data(i, 4)
        sGroup = Data(i, 5)
        dPT = Data(i, 6)
        dTT = Data(i, 7)
        If dic.Exists(sMacNo) Then
            dDTT = dic.item(sMacNo)(0)
            count = dic.item(sMacNo)(1)
        Else
            dDTT = 0
            count = 0
        End If
       
        str = sMacNo & "|" & sMember
        dN = (dDTT + dTT) - dPT
        If Not dic.Exists(sGroup) Then
            n = n + 1
            dic.Add sGroup, n
            Subtotal(n, 4) = sTotal & sGroup
            Subtotal(n, c) = n & sGroup & sTotal
            Subtotal(n, 5) = dPT
            Subtotal(n, 6) = dDTT
           
            If (dN > 0) Then
                Subtotal(n, 7) = 0
                Subtotal(n, 8) = dN
            Else
                Subtotal(n, 7) = dPT - dDTT + dTT
                Subtotal(n, 8) = 0
            End If
            Subtotal(n, 9) = count
        Else
            x = dic.item(sGroup)
            Subtotal(x, 5) = Subtotal(x, 5) + dPT
            Subtotal(x, 6) = Subtotal(x, 6) + dDTT
            If (dN > 0) Then
                Subtotal(x, 7) = Subtotal(x, 7) + 0
                Subtotal(x, 8) = Subtotal(x, 8) + dN
            Else
                Subtotal(x, 7) = Subtotal(x, 7) + dPT - dDTT + dTT
                Subtotal(x, 8) = Subtotal(x, 8) + 0
            End If
            Subtotal(n, 9) = Subtotal(n, 9) + 1
        End If
           
        If Not dic.Exists(str) Then
            k = k + 1:  dic.Add str, k
            Result(k, 1) = k
            For j = 1 To 3
                Result(k, j + 1) = Data(i, j)
            Next j
            Result(k, 5) = dPT
            Result(k, 6) = dDTT
            If (dN > 0) Then
                Result(k, 7) = 0
                Result(k, 8) = dN
            Else
                Result(k, 7) = dPT - dDTT + dTT
                Result(k, 8) = 0
            End If
            Result(k, 9) = count
            Result(k, 10) = sMember
            Result(k, 11) = sGroup
            Result(i, c) = n & sGroup
        Else
            x = dic.item(str)
            Result(x, 5) = Result(x, 5) + dPT
            Result(x, 6) = Result(x, 6) + dDTT
            If (dN > 0) Then
                Result(x, 7) = Result(x, 7) + 0
                Result(x, 8) = Result(x, 8) + dN
            Else
                Result(x, 7) = Result(x, 7) + dPT - dDTT + dTT
                Result(x, 8) = Result(x, 8) + 0
            End If
            Result(x, 9) = Result(x, 9) + 1
        End If
    Next i
   
    Dim bookTmp As Workbook, shTmp As Worksheet
    Set bookTmp = Workbooks.Add
    Set shTmp = bookTmp.Worksheets(1)
    If (k > 0) Then shTmp.Range("A1").Resize(k, c).Value = Result
    If (n > 0) Then shTmp.Range("A" & k + 1).Resize(n, c).Value = Subtotal
    r = k + n
    If r = 0 Then GoTo End_
    With shTmp.Sort
        .SortFields.Clear
        .SortFields.Add key:=shTmp.Cells(1, c), Order:=xlAscending
        .SetRange shTmp.Range("A1").Resize(r, c)
        .Header = xlYes
        .Apply
    End With
    Subtotal = shTmp.Range("A1").Resize(r, c - 1)
    k = 0
    For i = LBound(Subtotal, 1) To UBound(Subtotal, 1)
        If Len(Subtotal(i, 1)) > 0 Then
            k = k + 1
            Subtotal(i, 1) = k
        End If
    Next i
   
End_:
    If Not bookTmp Is Nothing Then bookTmp.Close False
    Application.ScreenUpdating = True
    sheet.Range("N3").Resize(UBound(Subtotal, 1), UBound(Subtotal, 2)).Value = Subtotal
    MsgBox "Ket thuc.", vbInformation
    Exit Sub
   
Exit_:
    Application.ScreenUpdating = True
End Sub
	


Dạ trong khả năng của OT thì là vậy ạ,Code dài thế à. Bạn quả là kỳ công!
Thêm cho bạn một cách khác nhé:Chào các anh/chị,
Em đang có 1 bài toán cần tính lọc ra các giá trị duy nhất có điều kiện sau đó đếm và tính tổng các giá trị duy nhất đáp ứng điều kiện đó
Kính nhờ các anh/chị giúp đỡ em code VBA để giải quyết nó với ạ
Em cảm ơn ạ
Sub Dem_HLMT()
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;HDR=No"""
        Sheet2.Range("B10").CopyFromRecordset .Execute("Select F1, Count(F1),Sum(F2) From [Data$A3:C] Where F2>60 And F3 Like '" & Sheet1.Range("C3") & "' Group By F1")
    End With
End Sub
	
Em thật lòng xin lỗi các ac, Cảm ơn các ac đã giúp đỡ. Thực tâm em muốn kết quả như Sheet TDoi dưới đây. Vì là đang hỏi dở bài số #5, nhưng vì tiện file đang có sẵn nên gửi và ngụ ý muốn giống như vậy, chứ không có ý làm trên file bài #10 đó.Bạn kiểm tra lại:




Chít chưa mấy anh chị!Em thật lòng xin lỗi các ac, Cảm ơn các ac đã giúp đỡ. Thực tâm em muốn kết quả như Sheet TDoi dưới đây. Vì là đang hỏi dở bài số #5, nhưng vì tiện file đang có sẵn nên gửi và ngụ ý muốn giống như vậy, chứ không có ý làm trên file bài #10 đó.
Em 1 lần nữa vô cùng xin lỗi các ac vì không nói rõ ràng. Em xin chân tình cảm ơn lòng nhiệt thành của các ac. Nếu có thể được thì xin giúp đỡ cho em trên file này. Còn nếu các ac bận thì thôi vậy ạ, vì em thấy ngại quá. không dám nhờ tiếp.
Code Bài #6 chạy tốt ạ, và có ý bổ xung sắp xếp tính tổng, viên, tô màu(làm đẹp).
Cho em gửi lời cảm ơn và xin lỗi ạ.
 
E cũng theo dõi suốt nhưng không thấy ai hỏi, thế nên mải làm, công việc của em là trên đường nên không kịp trả lời. Đến khi xem lại thì thấy các ac đã giúp đỡ. Em xin cảm ơn ạ.File mới của bạn có các thông tin như:
Dạ, dạ, cho em xin lỗi ạEm đưa file đó thôi c



Cái tiện của bạn & cái file có sẵn đó với mình cũng chóng mặt lắm đóEm thật lòng xin lỗi các ac, Cảm ơn các ac đã giúp đỡ. Thực tâm em muốn kết quả như Sheet TDoi dưới đây. Vì là đang hỏi dở bài số #5, nhưng vì tiện file đang có sẵn nên gửi và ngụ ý muốn giống như vậy, chứ không có ý làm trên file bài #10 đó.
Em 1 lần nữa vô cùng xin lỗi các ac vì không nói rõ ràng. Em xin chân tình cảm ơn lòng nhiệt thành của các ac. Nếu có thể được thì xin giúp đỡ cho em trên file này. Còn nếu các ac bận thì thôi vậy ạ, vì em thấy ngại quá. không dám nhờ tiếp.
Code Bài #6 chạy tốt ạ, và có ý bổ xung sắp xếp tính tổng, viên, tô màu(làm đẹp).
Cho em gửi lời cảm ơn và xin lỗi ạ.
Option Explicit
Sub Z_Z()
    Dim sheet As Worksheet, rng As Range
    Dim dic As Object, Key As String
    Dim Data As Variant, subToltal As Variant, result As Variant
    Dim strName As String, strItem As String, dbMoney As Double, dbTotal As Double
    Dim r As Long, i As Long, j As Long, k As Long, n As Long
    Dim c As Integer
    With ThisWorkbook.Worksheets("Xuat")
        r = .Cells(.Rows.count, "D").End(xlUp).Row
        If r < 9 Then: MsgBox "Khong co du lieu.", vbCritical: Exit Sub
        Set rng = .Range("A9:L" & r):   result = rng.Value
        rng.Sort Key1:=.Range("B9"), Order1:=xlAscending, Key2:=.Range("D9"), Order2:=xlAscending, _
            Orientation:=xlTopToBottom, Header:=xlNo
        Data = .Range("B9:J" & r).Value
        rng.Value = result
    End With
 
    Set dic = CreateObject("Scripting.Dictionary")
    dic.CompareMode = vbTextCompare
    c = UBound(Data, 2) + 1
    ReDim result(1 To UBound(Data, 1), 1 To c)
    ReDim subToltal(1 To UBound(Data, 1), 1 To c)
    For i = LBound(Data, 1) To UBound(Data, 1)
        strName = Data(i, 1)
        strItem = Data(i, 3)
        dbMoney = Data(i, 9)
        Key = strName & "|" & strItem
        dbTotal = dbTotal + dbMoney
        If Not dic.Exists(Key) Then
            k = k + 1: dic.Add Key, k
            If Not dic.Exists(strName) Then
                n = n + 1: dic.Add strName, n
                subToltal(n, 1) = "C" & ChrW(7897) & "ng: "
                subToltal(n, c) = n & strName & "C" & ChrW(7897) & "ng: "
                subToltal(n, 9) = dbMoney
            Else
                r = dic.Item(strName)
                subToltal(r, 9) = subToltal(r, 9) + dbMoney
            End If
            For j = LBound(Data, 2) To UBound(Data, 2)
                result(k, j) = Data(i, j)
            Next j
            result(k, c) = n & strName & "C" & ChrW(7897) & "ng: "
        Else
            r = dic.Item(Key)
            For j = 6 To 9
                result(r, j) = result(r, j) + Data(i, j)
            Next j
            r = dic.Item(strName)
            subToltal(r, 9) = subToltal(r, 9) + dbMoney
        End If
    Next i
 
    With ThisWorkbook.Worksheets("Tdoi")
        r = .Cells(.Rows.count, "A").End(xlUp).Row
        If (r > 9) Then .Range("A9:K" & r).ClearContents
        If (k > 0) Then .Range("A9").Resize(k, UBound(result, 2)).Value = result
        If (n > 0) Then .Range("A9").Offset(k).Resize(n, UBound(subToltal, 2)).Value = subToltal
        r = 8 + k + n: Set rng = .Range("A9:K" & r)
        rng.Sort Key1:=.Range("J9"), Order1:=xlAscending, Orientation:=xlTopToBottom, Header:=xlNo
        .Range("J9:J" & r).ClearContents
        .Range("J9:J" & r).ClearContents
        .Range("A" & r + 1).Value = "T" & ChrW(7893) & "ng c" & ChrW(7897) & "ng:"
        .Range("I" & r + 1).Value = dbTotal
    End With
 
    MsgBox "Ket thuc.", vbInformation
 
End Sub
	
Dạ, cho em xin lỗi ạ.Cái tiện của bạn
Dạ, em lắp vào code chạy rất tốt ạ. E chả biết nói gì nữa, xin gửi đến ac và diễn đàn ời cảm ơn ạ. Chúc anh chị mạnh khỏe.Vụ tô màu
Mà file ac làm cho em quá hoàn chỉnh rồi ạ. em thấy hơn cả mong đợi rồi ạ. E xin cảm ơn ac.Vụ tô màu

Cho em hỏi chút. Hôm nay em nhập thêm dữ liệu vào cột I, K, L sheet Xuat, mà bên sheet Tdoi không thấy có nhỉ? Em tò mò sửa thử tên cột trong code mà thấy nó nhảy lung tung ạ. Khi nào rảnh ac xem giúp e được không? E cảm ơn ac ạ.còn sắp xếp tính tổng



Bạn kiểm tra lại :Cho em hỏi chút. Hôm nay em nhập thêm dữ liệu vào cột I, K, L sheet Xuat, mà bên sheet Tdoi không thấy có nhỉ? Em tò mò sửa thử tên cột trong code mà thấy nó nhảy lung tung ạ. Khi nào rảnh ac xem giúp e được không? E cảm ơn ac ạ.

Dạ, dạ, em giờ mới về ạ. E vừa xem thì thấy đúng ý rồi ạ. Em cảm ơn ac ạ. chúc ac buổi tối vui vẻ ạ.Bạn kiểm tra



Bạn gửi kết quả mẫu mà bạn muốn để mình kiểm tra.Dạ, dạ, em giờ mới về ạ. E vừa xem thì thấy đúng ý rồi ạ. Em cảm ơn ac ạ. chúc ac buổi tối vui vẻ ạ.
Em vừa nhập vào 1 dữ liệu mới, Tuy nhiên hình như nó có gì đó chưa hẳn đúng, ví dụ sheet Xuat, ô H113. Khi tổng hợp sang bên Doanh thu ô G91 nó khác nhau. Hay Xuat/G66 sang bên Doanhthu/F78 nó không giống nhau. Kéo theo cột tiếp theo như I78, G78 .

Dạ. Đây là file kết quả mẫu ạ, (sheet Doanhthu).Bạn gửi kết quả mẫu



...Dạ. Đây là file kết quả mẫu ạ, (sheet Doanhthu).




Diễn đàn nhiều anh chị tốt tính và có tâm quá ạ !!!Code dài thế à. Bạn quả là kỳ công!



Bài 26 mình lấy nhầm file cũ nên tưởng bạn chưa giải thích lại kết quả, sau khi xem lại thấy bạn có làm bằng công thức.Dạ. Đây là file kết quả mẫu ạ, (sheet Doanhthu).

Dạ, em vừa xem thì chưa phát hiện ra chỗ nào bất hợp lý cả ạ. Để em theo dõi thêm, nếu thấy điểm gì em alo lại ạ.Bạn kiểm tra lại:

Dạ. AloBạn kiểm tra lại:
Chị @Hoàng Nhật Phương kỳ này “lao” hơi dài!Con đường đau khổ, hic
View attachment 288679

Em cảm ơn các anh chị đã hỗ trợ. Phần đơn giá đó em sẽ nhập thủ công cũng được ạ. Lần nữa em xin cảm ơn, chúc cả nhà vui vẻ. Em xin dừng bài yêu cầu ở đây.Em vừa nhận ra