leetenchin1
Thành viên chính thức


- Tham gia
- 24/6/16
- Bài viết
- 58
- Được thích
- 4
Tôi chưa xem file. Nhưng cách dễ nhất là sắp xếp cho giống nhauEm đang làm kho. Mỗi tháng lại phải khớp kho với kế toán mấy lần. Kho của kế toán với của em nó sắp xếp không giống nhau. Có phương pháp nào lọc để so sánh nhanh nhất có thể không các bác
Cụ thể hơn được không ạ? Vì nó có nhiều cột ạTôi chưa xem file. Nhưng cách dễ nhất là sắp xếp cho giống nhau
Hoặc là dùng hàm CountIf hoặc CountIfs bảng này qua bảng kia và ngược lại.
Dùng hàm sumif lấy tồn đầu kỳ ,nhập xuất và tồn cuối kỳ rồi so sánh với nhau là được.Em đang làm kho. Mỗi tháng lại phải khớp kho với kế toán mấy lần. Kho của kế toán với của em nó sắp xếp không giống nhau. Có phương pháp nào lọc để so sánh nhanh nhất có thể không các bác
Kế toán công ty này siêng, một tháng mà reconcile đến mấy lần. Tại sao không hỏi họ có phải chính xác hơn không?Em đang làm kho. Mỗi tháng lại phải khớp kho với kế toán mấy lần. Kho của kế toán với của em nó sắp xếp không giống nhau. Có phương pháp nào lọc để so sánh nhanh nhất có thể không các bác
KHông biết sh nào là của bạn, Sh nào cảu kế toán.Em đang làm kho. Mỗi tháng lại phải khớp kho với kế toán mấy lần. Kho của kế toán với của em nó sắp xếp không giống nhau. Có phương pháp nào lọc để so sánh nhanh nhất có thể không các bác
Sub MA()
Dim i&, j&, Lr&, Arr1(), Arr2(), t&, k&, KQ()
Dim Dic As Object, Key
With Sheets("TH XN")
Lr = .Cells(100000, 3).End(3).Row
Arr1 = .Range("C7:M" & Lr).Value
End With
With Sheets("KT")
Lr = .Cells(100000, 2).End(3).Row
Arr2 = .Range("A6:K" & Lr).Value
End With
Set Dic = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(Arr2)
Key = VBA.Trim(UCase(Arr2(i, 2)))
Dic(Key) = i
Next
ReDim KQ(1 To UBound(Arr1), 1 To 8)
For i = 1 To UBound(Arr1)
If Arr1(i, 1) <> Empty Then
Key = VBA.Trim(UCase(Arr1(i, 1)))
If Dic.Exists(Key) Then
For j = 4 To UBound(Arr1, 2)
If Arr1(i, j) <> Arr2(Dic(Key), j) Then
KQ(i, j - 3) = "(Khác: " & Arr1(i, j) & "|" & Arr2(Dic(Key), j) & ")"
End If
Next j
Else
KQ(i, 1) = "Không tim thây ma này"
End If
End If
Next
Sheets("TH XN").Range("P7").Resize(10000, 8).ClearContents
Sheets("TH XN").Range("P7").Resize(i - 1, 8) = KQ
End Sub
em cảm ơn bác rất nhiềuKHông biết sh nào là của bạn, Sh nào cảu kế toán.
Thôi thì cứ làm tạm thế này.
1/Bạn copy cột B đến cột L sheet Báo cáo của File tổng hợp và paste vào sheet mới của file Kho Thành... đặt tên sh mới paste là KT, Trên Workbook Kho Thanh... bạn đổi tên sheet TH Xuất nhập Thành TH XN.
2/ sau khi xong các bước trên bạn "bấm 1 phát" vào mặt cười trên Sh TH XN và xem kết quả ở vùng P7:Wxx: Giá trị cột Tển hàng không tìm thấy trên sh KT sẽ được chỉ ra ở cột P, các giá trị khác nhau cũng sẽ được chỉ rõ ở các cột tương ứng.
Code củ chuối làm theo ý hiểu, mong mọi người vào xem góp ý(không ném đá) để hoàn thiện hơn. Trân trọng cảm ơn.Mã:Sub MA() Dim i&, j&, Lr&, Arr1(), Arr2(), t&, k&, KQ() Dim Dic As Object, Key With Sheets("TH XN") Lr = .Cells(100000, 3).End(3).Row Arr1 = .Range("C7:M" & Lr).Value End With With Sheets("KT") Lr = .Cells(100000, 2).End(3).Row Arr2 = .Range("A6:K" & Lr).Value End With Set Dic = CreateObject("Scripting.Dictionary") For i = 1 To UBound(Arr2) Key = VBA.Trim(UCase(Arr2(i, 2))) Dic(Key) = i Next ReDim KQ(1 To UBound(Arr1), 1 To 8) For i = 1 To UBound(Arr1) If Arr1(i, 1) <> Empty Then Key = VBA.Trim(UCase(Arr1(i, 1))) If Dic.Exists(Key) Then For j = 4 To UBound(Arr1, 2) If Arr1(i, j) <> Arr2(Dic(Key), j) Then KQ(i, j - 3) = "(Khác: " & Arr1(i, j) & "|" & Arr2(Dic(Key), j) & ")" End If Next j Else KQ(i, 1) = "Không tim thây ma này" End If End If Next Sheets("TH XN").Range("P7").Resize(10000, 8).ClearContents Sheets("TH XN").Range("P7").Resize(i - 1, 8) = KQ End Sub
Xem file đính kèm.