Bạn Trung Đức lưu ý: Data của bạn từ năm 2007 trở về sau khác cấu trúc với data từ 2006 trở về trước. Mình đã chỉnh lại data bắt đầu từ dòng thứ 5 và giá trị năm nằm ở ô G3. Và mình chuyển sheet "Ket qua" lên đầu tiên.
Về VBA thì chủ yếu dùng vòng lặp để xử lý số liệu từng sheet thôi:
Sub xuatketqua()
Set ws = Worksheets("Ket qua")
ws.Range("2:65536").Delete
l = 2
For i = 2 To Worksheets.Count
Set ws1 = Worksheets(i)
For j = 2 To 13
For k = 5 To 35
ws.Range("A" & l).Value = ws1.Cells(k, 1).Value
ws.Range("B" & l).Value = j - 1
ws.Range("C" & l).Value = ws1.Cells(3, 7).Value
ws.Range("D" & l).Value = ws1.Cells(k, j).Value
l = l + 1
Next
Next
Next
End Sub