Hi Anh chi !
em mới làm kế toán kho, em có bảng kho mà so sánh giữa các tháng với nhau. sheet 1 la thang một, sheet 2 la tháng 2. report la file để so sánh
các tháng với nhau. sheet 1 là em xuất từ phần mềm ra . làm sao em có thể chép qua để so sánh giữa các tháng vì mỗi tháng phần mềm xuất không giống nhau. em phải dùng công thức gì.
em không lập công thức tính được. giúp em công thức với. cảm ơn các anh chị nhiều.
Nếu muốn xài VBA thì tặng bạn code này:
[GPECODE=vb]Public Sub TongHop()
Dim Dic As Object, sArr(), dArr(1 To 1000, 1 To 19), I As Long, J As Long, K As Long, Tem As String, Col As Long, Ws As Worksheet
Set Dic = CreateObject("Scripting.Dictionary")
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> "Report" Then
sArr = Ws.Range(Ws.[A14], Ws.[I65535].End(xlUp)).Value
For I = 1 To UBound(sArr, 1)
If sArr(I, 1) <> Empty Then
Tem = sArr(I, 4)
Col = Month(sArr(I, 1)) * 2 + 2
If Not Dic.Exists(Tem) Then
K = K + 1
Dic.Add Tem, K
For J = 1 To 3
dArr(K, J) = sArr(I, J + 3)
Next J
dArr(K, Col) = sArr(I, 7)
dArr(K, Col + 1) = sArr(I, 9)
dArr(K, 18) = dArr(K, 18) + sArr(I, 7)
dArr(K, 19) = dArr(K, 19) + sArr(I, 9)
Else
dArr(Dic.Item(Tem), Col) = dArr(Dic.Item(Tem), Col) + sArr(I, 7)
dArr(Dic.Item(Tem), Col + 1) = dArr(Dic.Item(Tem), Col + 1) + sArr(I, 9)
dArr(Dic.Item(Tem), 18) = dArr(Dic.Item(Tem), 18) + sArr(I, 7)
dArr(Dic.Item(Tem), 19) = dArr(Dic.Item(Tem), 19) + sArr(I, 9)
End If
End If
Next I
End If
Next Ws
With Sheets("Report")
.[B6:T1000].ClearContents
.[B6].Resize(K, 19) = dArr
End With
Set Dic = Nothing
End Sub[/GPECODE]
Điều kiện:
1/ Ngoại trừ sheet Report chỉ có thêm tối đa 7 sheet chứa dữ liệu của tháng 1 đến tháng 7 (vì sheet Report của bạn chỉ tổng hợp có 7 tháng)
2/ Không hiểu 2 cột U,V trong sheet Report bạn muốn làm gì nên không viết trong code được.
3/ Enable Macros khi mở file, Bấm nút GPE cho code chạy là xong.