[Help] Xin hướng dẫn lập báo cáo từ bảng chi tiết Nghỉ phép (1 người xem)

Người dùng đang xem chủ đề này

vostro 1500

Thành viên mới
Tham gia
23/6/08
Bài viết
34
Được thích
17
Mình đang tạo file báo cáo ở sheet "Tong hop", mình phải nhập tay dữ liệu vào cột C rất mất thời gian và không chính xác. Mong các anh chị giúp mình tìm công thức cho "cột C ở sheet Tong hop" để làm bảng tổng hợp báo cáo nhanh gọn và chính xác.
Xin chân thành cảm ơn!

Mình có đính kèm file Excel
 

File đính kèm

Mình làm bằng hàm tự tạo

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 

File đính kèm

Lần chỉnh sửa cuối:
Mình đang tạo file báo cáo ở sheet "Tong hop", mình phải nhập tay dữ liệu vào cột C rất mất thời gian và không chính xác. Mong các anh chị giúp mình tìm công thức cho "cột C ở sheet Tong hop" để làm bảng tổng hợp báo cáo nhanh gọn và chính xác.
Xin chân thành cảm ơn!

Mình có đính kèm file Excel
Công thức thì chịu, dùng sub này xem sao
PHP:
Public Sub TH_Phep()
Dim DL, Tam, Nghi(), r As Long

DL = Sheet2.Range("A3", Sheet2.Range("K65000").End(xlUp))

With CreateObject("scripting.dictionary")
For r = 2 To UBound(DL)

If DL(r, 6) = "" Then
Tam = DL(r, 4)
Else
Tam = DL(r, 4) & "(" & DL(r, 6) & ")"
End If

If Not .exists(DL(r, 1)) Then
Nghi = Array(DL(r, 7), Tam)
.Add DL(r, 1), Nghi
Else
Nghi = .Item(DL(r, 1))
Nghi(1) = Nghi(1) & ";" & Tam
.Item(DL(r, 1)) = Nghi
End If

Next r

Tam = Application.Transpose(.keys)
ReDim Nghi(1 To .Count, 1 To 2)

For r = 1 To UBound(Tam)
Nghi(r, 1) = .Item(Tam(r, 1))(0)
Nghi(r, 2) = .Item(Tam(r, 1))(1)
Next r
End With

Sheet1.Range("A2").Resize(UBound(Tam), 1).Value = Tam
Sheet1.Range("B2").Resize(UBound(Nghi), 2).Value = Nghi

End Sub
 

File đính kèm

Mong bạn cho mình hàm tự tạo, mình mở file bạn gửi có công thức DGFep nhưng nó ra kết quả #NAME?

Mình đang thử. Cảm ơn bạn!

Bạn fải cho fép macro hoạt động trong file của bạn, thì hàm tự tạo mới thỏa cho bạn được.
Nội dung của nó có trong file & đây nè:

PHP:
Option Explicit
Function DGFep(Ma As Long, Rng As Range)
 Dim sRng As Range, Cls As Range, Rg0 As Range
 Dim J As Long, Rws As Long
 Const Nua As String = "(0,5)"
 Const KN As String = "; "
 
 Set sRng = Rng.Find(Ma, , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
    Set Rg0 = sRng.Resize(Rng.Rows.Count)
    For Each Cls In Rg0
        If Cls.Value = "" Then Exit For
        If Ma = Cls.Value Then
            DGFep = DGFep & KN & CStr(Cls.Offset(, 1).Value) & IIf(Cls.Offset(, 5).Value = 0.5, Nua, "")
        End If
    Next Cls
 End If
 DGFep = Mid(DGFep, 2, 99)
End Function
 
Cảm ơn bạn @ ChanhTQ@ nhiều. Mình không biết việc viết code nên đành nhờ các bạn giúp thêm tí nữa là mình có thể cộng thêm điều kiện kiểu ngày nghỉ: có phép; không phép, thai sản; ...... vào công thức được không?

Xin chân thành cảm ơn!
 

File đính kèm

Bỏ xài hàm mảng rồi! Bạn xem cú fáp hàm trong file

[Thongbao]Cảm ơn bạn @ ChanhTQ@ nhiều. Mình không biết việc viết code nên đành nhờ các bạn giúp thêm tí nữa là mình có thể cộng thêm điều kiện kiểu ngày nghỉ: có phép; không phép, thai sản; ...... vào công thức được không?

Xin chân thành cảm ơn![/Thongbao]
 

File đính kèm

Cảm ơn bạn @ ChanhTQ@ nhiều. Mình không biết việc viết code nên đành nhờ các bạn giúp thêm tí nữa là mình có thể cộng thêm điều kiện kiểu ngày nghỉ: có phép; không phép, thai sản; ...... vào công thức được không?
Xin chân thành cảm ơn!
Thêm một hàm tự tạo:
 

File đính kèm

Bài viết mới nhất

Back
Top Bottom