Option Explicit
Sub Tinhtoan()
Dim dongcuoi As Long
Dim shThoi As String, shCat As String, shDinhMuc As String
Dim shTonghopThoi As String, shTonghopCat As String, shTongHop As String
shThoi = "TH" & ChrW(7892) & "I"
shCat = "C" & ChrW(7854) & "T"
shDinhMuc = ChrW(273) & ".m" & ChrW(7913) & "c d" & ChrW(7883) & "ch"
shTonghopThoi = "TH TH" & ChrW(7892) & "I"
shTonghopCat = "TH C" & ChrW(7854) & "T"
shTongHop = "T" & ChrW(7893) & "ng h" & ChrW(7907) & "p"
Application.ScreenUpdating = False
On Error GoTo Loi
With Sheets(shTongHop)
dongcuoi = .Cells(.Rows.Count, "A").End(xlUp).Row
If dongcuoi > 3 Then
.Range("C4:C" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$AB$3:$AB$1433,('" & shTonghopCat & "'!$A4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$B$4))"
.Range("D4:D" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$BB$3:$BB$1433,('" & shTonghopCat & "'!$A4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$B$4))"
.Range("E4:E" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$X$3:$X$1433,('" & shTonghopCat & "'!$A4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$B$4))"
.Range("C4:E" & dongcuoi).Value = .Range("C4:E" & dongcuoi).Value
.Range("H4:H" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$AS$3:$AS$1433,('" & shTonghopCat & "'!$A4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$B4))"
.Range("I4:I" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$AR$3:$AR$1433,('" & shTonghopCat & "'!$A4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$B4))"
.Range("J4:J" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$AY$3:$AY$1433,('" & shTonghopCat & "'!$A4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$B4))"
.Range("H4:J" & dongcuoi).Value = .Range("H4:J" & dongcuoi).Value
.Range("AF4:AF" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$AB$3:$AB$1433,('" & shTonghopCat & "'!$V4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$W$4))"
.Range("AG4:AG" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$BB$3:$BB$1433,('" & shTonghopCat & "'!$V4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$W$4))"
.Range("AH4:AH" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$X$3:$X$1433,('" & shTonghopCat & "'!$V4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$W$4))"
.Range("AF4:AH" & dongcuoi).Value = .Range("AF4:AH" & dongcuoi).Value
.Range("AK4:AK" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$AS$3:$AS$1433,('" & shTonghopCat & "'!$V4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$W$4))"
.Range("AL4:AL" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$AR$3:$AR$1433,('" & shTonghopCat & "'!$V4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$W$4))"
.Range("AM4:AM" & dongcuoi) = "=SUMPRODUCT('" & shCat & "'!$AY$3:$AY$1433,('" & shTonghopCat & "'!$V4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433='" & shTonghopCat & "'!$W$4))"
.Range("AK4:AM" & dongcuoi).Value = .Range("AK4:AM" & dongcuoi).Value
End If
End With
With Sheets(shCat)
dongcuoi = .Cells(.Rows.Count, "A").End(xlUp).Row
If dongcuoi > 2 Then
.Range("X3:Y" & dongcuoi).ClearContents
.Range("X3").FormulaArray = "=VLOOKUP(D3&E3,CHOOSE({1,2},'" & shDinhMuc & "'!$G$3:$G$9212&'" & shDinhMuc & "'!$B$3:$B$9212,'" & shDinhMuc & "'!$H$3:$H$9212),2,0)"
.Range("X3").Copy .Range("X4:X" & dongcuoi)
.Range("Y3").FormulaArray = "=VLOOKUP(D3&E3,CHOOSE({1,2},'" & shDinhMuc & "'!$G$3:$G$9212&'" & shDinhMuc & "'!$B$3:$B$9212,'" & shDinhMuc & "'!$O$3:$O$9212),2,0)"
.Range("Y3").Copy .Range("Y4:Y" & dongcuoi)
.Range("X3:Y" & dongcuoi).Value = .Range("X3:Y" & dongcuoi).Value
End If
End With
With Sheets(shTonghopThoi)
dongcuoi = .Cells(.Rows.Count, "A").End(xlUp).Row
With .Range("D4:D" & dongcuoi)
.Offset(, 0) = "=SUMPRODUCT('" & shThoi & "'!$AF$4:$AF$1311,($A4=DAY('" & shThoi & "'!$A$4:$A$1311))*('" & shThoi & "'!$B$4:$B$1311=$B$4))"
.Offset(, 2) = "=SUMPRODUCT('" & shThoi & "'!$AJ$4:$AJ$1942,($A4=DAY('" & shThoi & "'!$A$4:$A$1942))*('" & shThoi & "'!$B$4:$B$1942=$B$4))"
.Offset(, 3) = "=SUMPRODUCT('" & shThoi & "'!$AG$4:$AG$1942,($A4=DAY('" & shThoi & "'!$A$4:$A$1942))*('" & shThoi & "'!$B$4:$B$1942=$B$4))"
.Offset(, 4) = "=SUMPRODUCT('" & shThoi & "'!$AH$4:$AH$1942,($A4=DAY('" & shThoi & "'!$A$4:$A$1942))*('" & shThoi & "'!$B$4:$B$1942=$B$4))"
.Offset(, 5) = "=SUMPRODUCT($DK$5:$DK$19,($CK$6=DAY($DJ$5:$DJ$19))*($CL$4=$DK$3))"
.Offset(, 6) = "=SUMPRODUCT('" & shThoi & "'!$AX$4:$AX$133,($A4=DAY('" & shThoi & "'!$A$4:$A$133))*('" & shThoi & "'!$B$4:$B$133=$B$4))"
.Offset(, 14) = "=SUMPRODUCT('" & shThoi & "'!$AF$4:$AF$1311,($A4=DAY('" & shThoi & "'!$A$4:$A$1311))*('" & shThoi & "'!$B$4:$B$1311=$O$4))"
.Offset(, 16) = "=SUMPRODUCT('" & shThoi & "'!$AJ$4:$AJ$1311,($A4=DAY('" & shThoi & "'!$A$4:$A$1311))*('" & shThoi & "'!$B$4:$B$1311=$O$4))"
.Offset(, 17) = "=SUMPRODUCT('" & shThoi & "'!$AG$4:$AG$1311,($A4=DAY('" & shThoi & "'!$A$4:$A$1311))*('" & shThoi & "'!$B$4:$B$1311=$O$4))"
.Offset(, 18) = "=SUMPRODUCT('" & shThoi & "'!$AH$4:$AH$133,($A4=DAY('" & shThoi & "'!$A$4:$A$133))*('" & shThoi & "'!$B$4:$B$133=$O$4))"
.Offset(, 19) = "=SUMPRODUCT('" & shThoi & "'!$AI$4:$AI$133,($A4=DAY('" & shThoi & "'!$A$4:$A$133))*('" & shThoi & "'!$B$4:$B$133=$O$4))"
.Offset(, 20) = "=SUMPRODUCT('" & shThoi & "'!$AX$4:$AX$133,($A4=DAY('" & shThoi & "'!$A$4:$A$133))*('" & shThoi & "'!$B$4:$B$133=$O$4))"
.Offset(, 21) = "=SUMPRODUCT('" & shThoi & "'!$AP$4:$AP$628,($A4=DAY('" & shThoi & "'!$A$4:$A$628))*('" & shThoi & "'!$B$4:$B$628=$O$4))"
.Offset(, 0).Value = .Offset(, 0).Value: .Offset(, 2).Resize(, 6).Value = .Offset(, 2).Resize(, 6).Value
.Offset(, 14).Value = .Offset(, 14).Value: .Offset(, 16).Resize(, 7).Value = .Offset(, 16).Resize(, 7).Value
End With
End With
With Sheets(shTonghopCat)
dongcuoi = .Cells(.Rows.Count, "A").End(xlUp).Row
With .Range("E4:E" & dongcuoi)
.Offset(, 0) = "=SUMPRODUCT('" & shCat & "'!$AB$3:$AB$1433,($A4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433=$B$4))"
.Offset(, 4) = "=SUMPRODUCT('" & shCat & "'!$AR$3:$AR$1433,($A4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433=$B4))"
.Offset(, 5) = "=SUMPRODUCT('" & shCat & "'!$AS$3:$AS$1433,($A4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433=$B4))"
.Offset(, 6) = "=SUMPRODUCT('" & shCat & "'!$AY$3:$AY$3002,($A4=DAY('" & shCat & "'!$B$3:$B$3002))*('" & shCat & "'!$C$3:$C$3002=$B4))"
.Offset(, 7) = "=SUMPRODUCT('" & shCat & "'!$AU$3:$AU$3002,($A4=DAY('" & shCat & "'!$B$3:$B$3002))*('" & shCat & "'!$C$3:$C$3002=$B4))"
.Offset(, 8) = "=SUMPRODUCT('" & shCat & "'!$AT$3:$AT$3002,($A4=DAY('" & shCat & "'!$B$3:$B$3002))*('" & shCat & "'!$C$3:$C$3002=$B4))"
.Offset(, 20) = "=SUMPRODUCT('" & shCat & "'!$AB$3:$AB$1433,($V4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433=$W$4))"
.Offset(, 24) = "=SUMPRODUCT('" & shCat & "'!$AR$3:$AR$3002,($V4=DAY('" & shCat & "'!$B$3:$B$3002))*('" & shCat & "'!$C$3:$C$3002=$W$4))"
.Offset(, 25) = "=SUMPRODUCT('" & shCat & "'!$AS$3:$AS$1433,($V4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433=$W$4))"
.Offset(, 26) = "=SUMPRODUCT('" & shCat & "'!$AY$3:$AY$1433,($V4=DAY('" & shCat & "'!$B$3:$B$1433))*('" & shCat & "'!$C$3:$C$1433=$W$4))"
.Offset(, 0).Value = .Offset(, 0).Value: .Offset(, 4).Resize(, 5).Value = .Offset(, 4).Resize(, 5).Value
.Offset(, 20).Value = .Offset(, 20).Value: .Offset(, 24).Resize(, 3).Value = .Offset(, 24).Resize(, 3).Value
End With
End With
Loi:
Application.ScreenUpdating = True
If Err Then MsgBox Err.Description, vbCritical + vbOKOnly
End Sub