Hàm trong excel (1 người xem)

Liên hệ QC

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

thanh_nampro

Thành viên mới
Tham gia
5/10/18
Bài viết
3
Được thích
0
Hi ACE
Em có file excel, cần tìm hàm thích hợp để phân tích dữ liệu, ACE nào biết giúp em với nhe
trường hợp này như sau:
Em có 26 ngày công trong đó có những ngày nghỉ phép và những ngày đi làm.
thì dùng công thức nào để đếm ra được, ngày nào nghỉ phép nào.
Trong file đính kèm là dữ liệu em cần phần tích ạ.
Làm thế nào để dùng công thức cho ra kết quả: "02 MAL", "09 MAL" và tương tự cho các ngày phép PH, SIL còn lại.
Cảm ơn ACE rất nhiều
 

File đính kèm

Hi ACE
Em có file excel, cần tìm hàm thích hợp để phân tích dữ liệu, ACE nào biết giúp em với nhe
trường hợp này như sau:
Em có 26 ngày công trong đó có những ngày nghỉ phép và những ngày đi làm.
thì dùng công thức nào để đếm ra được, ngày nào nghỉ phép nào.
Trong file đính kèm là dữ liệu em cần phần tích ạ.
Làm thế nào để dùng công thức cho ra kết quả: "02 MAL", "09 MAL" và tương tự cho các ngày phép PH, SIL còn lại.
Cảm ơn ACE rất nhiều

Thay đổi tiêu để như bác @Lê Hồng Minh83 đi.
ý bạn muốn tìm ra những ngày nào nghỉ phép nào
Vd: nghỉ MAL(8) có ngày (02 &09)
nghỉ SIL(8) có ngày 18.
Cái này trên diễn đàn có rồi mà bạn.
File 22k dòng phái phục cách làm dư liệu.
Thân.
 
Hi ACE
Em có file excel, cần tìm hàm thích hợp để phân tích dữ liệu, ACE nào biết giúp em với nhe
trường hợp này như sau:
Em có 26 ngày công trong đó có những ngày nghỉ phép và những ngày đi làm.
thì dùng công thức nào để đếm ra được, ngày nào nghỉ phép nào.
Trong file đính kèm là dữ liệu em cần phần tích ạ.
Làm thế nào để dùng công thức cho ra kết quả: "02 MAL", "09 MAL" và tương tự cho các ngày phép PH, SIL còn lại.
Cảm ơn ACE rất nhiều
Dùng code nhe, công thức không làm được:
Mã:
Function CountD(ByVal rngdate As Range, ByVal rngdk As Range) As String
Dim arrd, arr, dic As Object, i As Long, res()
arrd = rngdate: arr = rngdk
With CreateObject("Scripting.dictionary")
    For i = 1 To UBound(arr, 2)
        If Not (IsNumeric(arr(1, i)) Or arr(1, i) = Empty) Then
            If Not .exists(arr(1, i)) Then
                .Add arr(1, i), "[" & Format(arrd(1, i), "dd/mm,")
            Else
                .Item(arr(1, i)) = .Item(arr(1, i)) & Format(arrd(1, i), "dd/mm,")
            End If
        End If
    Next
    ReDim res(0 To .Count - 1)
    For i = 0 To .Count - 1
        res(i) = .keys()(i) & ": " & Left(.items()(i), Len(.items()(i)) - 1)
    Next
    CountD = Join(res, "], ") & "]"
End With
End Function
Sau đó dùng công thức này: =CountD($D$1:$AH$1,D2:AH2)
 

File đính kèm

Lần đầu bạn viết bài, có đôi lời góp ý:
vui lòng đọc nội quy trước
https://www.giaiphapexcel.com/diendan/help/terms/
Tiêu đề có thể là Tính ngày công, không sử dụng từ viết tắt
Bạn phải diễn giải cho người khác biết những cột nào cần tính, tính cái gì...
Em cảm ơn toàn thể anh chị em đã giúp em nhe.
Em sẽ chú về phần tiêu đề cũng như nội dung trong những bài đăng tiếp theo.
Trân trọng!!!
Bài đã được tự động gộp:

Dùng code nhe, công thức không làm được:
Mã:
Function CountD(ByVal rngdate As Range, ByVal rngdk As Range) As String
Dim arrd, arr, dic As Object, i As Long, res()
arrd = rngdate: arr = rngdk
With CreateObject("Scripting.dictionary")
    For i = 1 To UBound(arr, 2)
        If Not (IsNumeric(arr(1, i)) Or arr(1, i) = Empty) Then
            If Not .exists(arr(1, i)) Then
                .Add arr(1, i), "[" & Format(arrd(1, i), "dd/mm,")
            Else
                .Item(arr(1, i)) = .Item(arr(1, i)) & Format(arrd(1, i), "dd/mm,")
            End If
        End If
    Next
    ReDim res(0 To .Count - 1)
    For i = 0 To .Count - 1
        res(i) = .keys()(i) & ": " & Left(.items()(i), Len(.items()(i)) - 1)
    Next
    CountD = Join(res, "], ") & "]"
End With
End Function
Sau đó dùng công thức này: =CountD($D$1:$AH$1,D2:AH2)
Em đã chạy thử, rất OK, Em cảm ơn nhiều ạ!
 
Web KT

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

Back
Top Bottom