em có một danh sách tiền thưởng bao gồm rất nhiều bộ phận và số lượng CBCNV trong từng bộ phận khác nhau, làm thế nào để in ra danh sách có tổng tiền của từng bộ phận ạ
Chào bạn trước tiên bạn cần lọc không trùng các bộ phận sau đó tổng hợp bằng hàm sumifs nhé bạn xem chương 13 nhé.
làm thế nào để cop nhiều sheet về 1 sheet trong excel ạ
ý bạn có phải là gom dữ liệu từ nhiều sheet (nhiều bảng giống nhau) về chung 1 bảng duy nhất trong 1 sheet? Để làm vậy thì có 2 cách:
- sử dụng VBA: bạn cần tìm hiểu trong khóa học về VBA
- sử dụng Power Query: đây là 1 add-in cần cài thêm vào excel (trừ phiên bản office từ 2016 trở đi sẽ có sẵn, không cần cài đặt).
Cả 2 cách đều là 2 hướng học nâng cao của chương trình excel. Bạn có thể chọn 1 trong 2 hướng đều giải quyết được.
- Hướng học VBA: giúp bạn làm việc trong excel theo 1 cách tự động hóa, tự sáng tạo ra quy trình. Nội dung này khá rộng và tùy vào khả năng sáng tạo của bạn nữa.
- Hướng học Power Query: chuyên sâu vào việc xử lý, phân tích dữ liệu, báo cáo biểu đồ (hẹp hơn so với VBA nhưng lại đi sâu hơn, dễ học hơn)
em có 1 danh sách chi tiết nghỉ phép của nhân viên, e muốn liệt kê ra các tháng nghỉ giống yêu cầu phía dưới. Nhờ admin hỗ trợ e với ạ
Với yêu cầu này của bạn thì dùng VBA sẽ làm dễ hơn, còn công thức excel khá là phức tạp (do phải dùng công thức mảng kết hợp dò tìm và nối chuỗi).
Bạn có thể tham khảo đoạn code dưới đây (nếu chưa biết về code bạn có thể tìm hiểu thêm trong khóa học VBAG01):
Sub GomThang()
Dim i As Long, j As Long
Dim TenThang As String
Dim from_col As Integer, to_col As Integer
Dim start_row As Integer, lr As Integer
from_col = 2
to_col = 9
start_row = 3
lr = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
For j = start_row To lr
For i = from_col To to_col
If Cells(j, i) <> "" Then
TenThang = Cells(2, i)
If Cells(j, to_col + 1).Value = "" Then
Cells(j, to_col + 1) = TenThang
Else
Cells(j, to_col + 1) = Cells(j, to_col + 1).Value & ", " & TenThang
End If
End If
Next i
Next j
End Sub
Hình ảnh file mẫu có sử dụng code:
Nguyên tắc của đoạn code:
- xét phạm vi vòng lặp: từ cột B tới cột M, từ dòng 3 tới dòng cuối có dữ liệu
- Dùng 2 biến vòng lặp: biến i đại diện cho các cột, biến j đại diện cho các dòng
- Nếu trong ô tại cột i dòng j mà không phải ô trống => ghi nhớ giá trị số tháng
Tại ô tổng hợp tháng nghỉ phép (phía sau cột cuối là cột M) => các giá trị số tháng sẽ được nối tiếp vào kết quả cũ sau từng lần lặp.
E muốn sử dụng hàm if để viết điều kiện nếu mức lương bình quân >=160,000 sẽ đc 5 điểm, >=140,000 dẽ đc 4 điểm còn lại sẽ đc 3 điểm