Sub LayDL()
   Dim sArr, dArr, I As Long, k As Long, n As Long, eR As Long
   sArr = Sheets("Data").Range("A4").CurrentRegion.Value
   ReDim dArr(1 To UBound(sArr), 1 To 30)
   Application.ScreenUpdating = False
   For I = 4 To UBound(sArr)
    If sArr(I, 19) <> "" Then
        k = k + 1
        dArr(k, 1) = k
        dArr(k, 1) = sArr(I, 27)
        dArr(k, 2) = sArr(I, 28)
        dArr(k, 3) = sArr(I, 29)
        dArr(k, 4) = sArr(I, 9)
        dArr(k, 5) = "Khach le"
        dArr(k, 6) = ""
        dArr(k, 7) = "Phi dich vu"
        dArr(k, 8) = sArr(I, 21)
        dArr(k, 9) = sArr(I, 19)
        dArr(k, 10) = sArr(I, 22)
        dArr(k, 11) = sArr(I, 30)
        dArr(k, 12) = sArr(I, 7)
        dArr(k, 13) = sArr(I, 5)
     End If
    Next
    Sheet3.Activate
    Range("A2:M" & Range("A" & Rows.Count).End(xlDown).Row).Clear
    If k > 0 Then Range("A2").Resize(k, 17).Value = dArr
    Application.ScreenUpdating = True
 
    For I = 4 To UBound(sArr)
     If sArr(I, 26) <> 0 Then
        n = n + 1
        dArr(n, 1) = n
        dArr(n, 1) = sArr(I, 27)
        dArr(n, 2) = sArr(I, 28)
        dArr(n, 3) = sArr(I, 29)
        dArr(n, 4) = sArr(I, 9)
        dArr(n, 5) = "Khach le"
        dArr(n, 6) = ""
        dArr(n, 7) = "Service Charge"
        dArr(n, 8) = sArr(I, 25)
        dArr(n, 9) = sArr(I, 23)
        dArr(n, 10) = sArr(I, 26)
        dArr(n, 11) = sArr(I, 30)
        dArr(n, 12) = sArr(I, 7)
        dArr(n, 13) = sArr(I, 5)
     End If
    Next
    Sheet3.Activate
    eR = Range("A" & Rows.Count).End(xlUp).Row + 1
    If n > 0 Then Range("A" & eR).Resize(n, 17).Value = dArr
    Application.ScreenUpdating = True
      With Sheet3
            [I:I].Replace What:=" VAT", Replacement:=""
            Sheet3.Activate
            ActiveWindow.DisplayGridlines = False
            [D:D].NumberFormat = "mm/dd/yyyy"
            [H:H,J:J].NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""_);_(@_)"
            eR = Range("A" & Rows.Count).End(xlUp).Row
            [N1] = "Site"
            [N2].Formula = "= M2 & ""_"" & text(month(D2),""0#"")& ""_"" &right(year(D2),2)& ""_"" &Right(A2, 3)"
            Range("N2:N" & eR).FillDown
            With Range("N2:N" & eR)
                .Value = .Value
                [M:M].Delete
                [A1].Select
            End With
        End With
End Sub